diff --git a/SOURCES/0001-compositor-sync-ring-Allow-the-gpu_fence-to-be-moved.patch b/SOURCES/0001-compositor-sync-ring-Allow-the-gpu_fence-to-be-moved.patch new file mode 100644 index 0000000..510d01a --- /dev/null +++ b/SOURCES/0001-compositor-sync-ring-Allow-the-gpu_fence-to-be-moved.patch @@ -0,0 +1,56 @@ +From 22689d722ab4e13ab272c3534f5d18a55c94084f Mon Sep 17 00:00:00 2001 +From: Daniel van Vugt +Date: Wed, 3 Apr 2024 16:58:13 +0800 +Subject: [PATCH] compositor/sync-ring: Allow the gpu_fence to be moved + +When the compositor inserts two waits in a frame, such as f606a4424a5afc, +the second insertion shouldn't break the ring's state machine as easily +as it does. We can instead merge the two GL waits into one by simply moving +the GL fence to the latest insertion. Each insertion still does its own X11 +sync though. + +Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3384 +Part-of: +--- + src/compositor/meta-sync-ring.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c +index 8f5d1a0465..1267dd4f2c 100644 +--- a/src/compositor/meta-sync-ring.c ++++ b/src/compositor/meta-sync-ring.c +@@ -544,20 +544,29 @@ gboolean + meta_sync_ring_insert_wait (void) + { + MetaSyncRing *ring = meta_sync_ring_get (); ++ MetaSync *sync; + + if (!ring) + return FALSE; + + g_return_val_if_fail (ring->xdisplay != NULL, FALSE); + +- if (ring->current_sync->state != META_SYNC_STATE_READY) ++ sync = ring->current_sync; ++ ++ if (sync->state == META_SYNC_STATE_WAITING) ++ { ++ meta_gl_delete_sync (sync->gpu_fence); ++ sync->gpu_fence = 0; ++ sync->state = META_SYNC_STATE_READY; ++ } ++ else if (sync->state != META_SYNC_STATE_READY) + { + meta_warning ("MetaSyncRing: Sync object is not ready -- were events handled properly?"); + if (!meta_sync_ring_reboot (ring->xdisplay)) + return FALSE; + } + +- meta_sync_insert (ring->current_sync); ++ meta_sync_insert (sync); + + return TRUE; + } +-- +2.50.1 + diff --git a/SPECS/mutter.spec b/SPECS/mutter.spec index 7eebc7e..3e3a4be 100644 --- a/SPECS/mutter.spec +++ b/SPECS/mutter.spec @@ -10,7 +10,7 @@ Name: mutter Version: 40.9 -Release: 25%{?dist}.1 +Release: 26%{?dist} Summary: Window and compositing manager based on Clutter License: GPLv2+ @@ -154,6 +154,8 @@ Patch67: double-key-event-handling.patch # RHEL-101894 Patch68: 0001-compositor-x11-sync-again-at-the-end-of-before_paint.patch +# RHEL-117097 +Patch69: 0001-compositor-sync-ring-Allow-the-gpu_fence-to-be-moved.patch BuildRequires: chrpath BuildRequires: pango-devel @@ -302,7 +304,11 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop %{_datadir}/mutter-%{mutter_api_version}/tests %changelog -* Fri Jul 08 2025 Tomas Pelka - 40.9-25 +* Mon Sep 29 2025 Jonas Ã…dahl - 40.9-26 +- Fix input latency regression + Resolves: RHEL-117097 + +* Tue Jul 08 2025 Tomas Pelka - 40.9-25 - Bumping the release and rebuilding in correct build target - Backport fix for screen not refreshing properly Resolves: RHEL-101894