kms/impl-device: Treat handling update as flushing
Primary plane updates were forgetting to do this in OnscreenNative, but rather than do it for each post there we should simply do it for each post. This fixes cursor stutter in the fallback path (not using deadline timers) where needs_flush_crtcs would remain populated but CRTC_NEEDS_FLUSH would never be emitted, because handle_flush hadn't been called for the last post. This is safe as the current use of scheduled flushing is only for cursor updates, and since cursor updates happen on the same thread as processing, and due to the fact that we always use the most up to date cursor position when flushing, we never risk leaving an old cursor state unflushed. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3138>
This commit is contained in:
parent
7493ed39ce
commit
b516b009fa
@ -1515,6 +1515,8 @@ meta_kms_impl_device_handle_update (MetaKmsImplDevice *impl_device,
|
|||||||
disarm_crtc_frame_deadline_timer (crtc_frame);
|
disarm_crtc_frame_deadline_timer (crtc_frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
meta_kms_device_handle_flush (priv->device, latch_crtc);
|
||||||
|
|
||||||
feedback = do_process (impl_device, latch_crtc, update, flags);
|
feedback = do_process (impl_device, latch_crtc, update, flags);
|
||||||
meta_kms_feedback_unref (feedback);
|
meta_kms_feedback_unref (feedback);
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user