kms/cursor-manager: Only update cursor plane relevant device on mode set

When we see a mode set, the cursor manager will update all the cursor
planes so they are set correctly as part of the mode set. KMS updates
are always per-device, and what was wrong was that it didn't filter out
CRTCs on devices that wasn't part of the mode set.

Reported-by: Michel Dänzer <mdaenzer@redhat.com>
Tested-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3130>
This commit is contained in:
Jonas Ådahl 2023-07-20 11:29:49 +02:00 committed by Marge Bot
parent cf3a5da1d5
commit 358c10de14

View File

@ -458,6 +458,10 @@ update_filter_cb (MetaKmsImpl *impl,
MetaKmsCrtc *crtc = crtc_state_impl->crtc; MetaKmsCrtc *crtc = crtc_state_impl->crtc;
MetaDrmBuffer *old_buffer = NULL; MetaDrmBuffer *old_buffer = NULL;
if (meta_kms_crtc_get_device (crtc) !=
meta_kms_update_get_device (update))
continue;
update = maybe_update_cursor_plane (cursor_manager_impl, update = maybe_update_cursor_plane (cursor_manager_impl,
crtc, update, &old_buffer); crtc, update, &old_buffer);
if (old_buffer) if (old_buffer)