diff --git a/src/backend/drm/surface/atomic.rs b/src/backend/drm/surface/atomic.rs index c0f64e9..f381b20 100644 --- a/src/backend/drm/surface/atomic.rs +++ b/src/backend/drm/surface/atomic.rs @@ -354,7 +354,7 @@ impl AtomicDrmSurface { source, })?; - let test_fb = self.create_test_buffer(pending.mode.size())?; + let test_fb = self.create_test_buffer(mode.size())?; let req = self.build_request( &mut pending.connectors.iter(), &mut [].iter(), diff --git a/src/backend/drm/surface/gbm.rs b/src/backend/drm/surface/gbm.rs index 3bc5be0..c587dd2 100644 --- a/src/backend/drm/surface/gbm.rs +++ b/src/backend/drm/surface/gbm.rs @@ -309,8 +309,11 @@ where /// Fails if the mode is not compatible with the underlying /// [`crtc`](drm::control::crtc) or any of the /// pending [`connector`](drm::control::connector)s. - pub fn use_mode(&self, mode: Mode) -> Result<(), Error> { - self.drm.use_mode(mode).map_err(Error::DrmError) + pub fn use_mode(&mut self, mode: Mode) -> Result<(), Error> { + self.drm.use_mode(mode).map_err(Error::DrmError)?; + let (w, h) = mode.size(); + self.swapchain.resize(w as _, h as _); + Ok(()) } }