diff --git a/src/backend/drm/surface/atomic.rs b/src/backend/drm/surface/atomic.rs index 318aa9fef7ee..aed32f227404 100644 --- a/src/backend/drm/surface/atomic.rs +++ b/src/backend/drm/surface/atomic.rs @@ -994,6 +994,7 @@ impl AtomicDrmSurface { if res.is_ok() { self.used_planes.lock().unwrap().clear(); self.state.write().unwrap().clear(); + self.pending.write().unwrap().clear(); } res @@ -1008,6 +1009,7 @@ impl AtomicDrmSurface { } else { State::current_state(&*self.fd, self.crtc, &mut self.prop_mapping.write().unwrap())? }; + *self.pending.write().unwrap() = self.state.read().unwrap().clone(); Ok(()) } diff --git a/src/backend/drm/surface/legacy.rs b/src/backend/drm/surface/legacy.rs index 8184acb6b61f..31b024038244 100644 --- a/src/backend/drm/surface/legacy.rs +++ b/src/backend/drm/surface/legacy.rs @@ -462,6 +462,7 @@ impl LegacyDrmSurface { } else { State::current_state(&*self.fd, self.crtc)? }; + *self.pending.write().unwrap() = self.state.read().unwrap().clone(); Ok(()) }