renderer/native: Clear old pending mode sets when unsetting all modes

If we queued a mode set, but didn't end up compositing all frames, we'll
have pending mode sets in a hash table waiting to be applied. If we
before all monitors again try to reconfigure things we should drop the
old pending mode sets and start fresh.

We already do this when we're doing so when generating views, but when
just unsetting modes, we didn't, so fix that.

Related: https://bugzilla.redhat.com/show_bug.cgi?id=2242612
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3318>
This commit is contained in:
Jonas Ådahl 2023-10-09 16:13:01 +08:00 committed by Marge Bot
parent a4e1afc648
commit 23876efad3

View File

@ -2007,6 +2007,8 @@ meta_renderer_native_unset_modes (MetaRendererNative *renderer_native)
meta_topic (META_DEBUG_KMS, "Unsetting all CRTC modes");
g_hash_table_remove_all (renderer_native->mode_set_updates);
for (l = meta_backend_get_gpus (backend); l; l = l->next)
{
MetaGpu *gpu = l->data;