From 612d82b440fc8c770f5b36a02c3492bf222d7f0c70a7b7b24075b8401d5694c5 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Tue, 9 Apr 2024 09:30:40 +0000 Subject: [PATCH] Accepting request 1166313 from home:AZhou:branches:GNOME:Factory - Add mutter-fix-front-buffer-lock.patch: Fix front buffer lock error by an unnecessary ensure_fb_id call (glgo#gnome/mutter!3674, bsc#1222409). OBS-URL: https://build.opensuse.org/request/show/1166313 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=499 --- mutter-fix-front-buffer-lock.patch | 53 ++++++++++++++++++++++++++++++ mutter.changes | 7 ++++ mutter.spec | 3 ++ 3 files changed, 63 insertions(+) create mode 100644 mutter-fix-front-buffer-lock.patch diff --git a/mutter-fix-front-buffer-lock.patch b/mutter-fix-front-buffer-lock.patch new file mode 100644 index 0000000..3574078 --- /dev/null +++ b/mutter-fix-front-buffer-lock.patch @@ -0,0 +1,53 @@ +From 6fd0a273b669414aa1fcfd4cf193d8e6c9cd2773 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michel=20D=C3=A4nzer?= +Date: Wed, 27 Mar 2024 18:16:17 +0100 +Subject: [PATCH] drm-buffer-gbm: Do not call ensure_fb_id from lock_front + +When preparing a frame for scanout on a secondary GPU, calling +meta_drm_buffer_gbm_ensure_fb_id for the primary GPU device is +unnecessary and potentially harmful. + +Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3389 +--- + src/backends/native/meta-drm-buffer-gbm.c | 2 +- + src/backends/native/meta-onscreen-native.c | 11 +++++++++++ + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/src/backends/native/meta-drm-buffer-gbm.c b/src/backends/native/meta-drm-buffer-gbm.c +index 161d43957d4..4ca8fb0f462 100644 +--- a/src/backends/native/meta-drm-buffer-gbm.c ++++ b/src/backends/native/meta-drm-buffer-gbm.c +@@ -186,7 +186,7 @@ lock_front_buffer (MetaDrmBufferGbm *buffer_gbm, + return FALSE; + } + +- return meta_drm_buffer_gbm_ensure_fb_id (META_DRM_BUFFER (buffer_gbm), error); ++ return TRUE; + } + + MetaDrmBufferGbm * +diff --git a/src/backends/native/meta-onscreen-native.c b/src/backends/native/meta-onscreen-native.c +index e40b03f3eaf..f2bae4f00d6 100644 +--- a/src/backends/native/meta-onscreen-native.c ++++ b/src/backends/native/meta-onscreen-native.c +@@ -1373,6 +1373,17 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen, + #endif + } + ++ if (!meta_drm_buffer_ensure_fb_id (onscreen_native->gbm.next_fb, &error)) ++ { ++ g_warning ("Failed to ensure KMS FB ID on %s: %s", ++ meta_device_file_get_path (render_device_file), ++ error->message); ++ ++ frame_info->flags |= COGL_FRAME_INFO_FLAG_SYMBOLIC; ++ meta_onscreen_native_notify_frame_complete (onscreen); ++ return; ++ } ++ + /* + * If we changed EGL context, cogl will have the wrong idea about what is + * current, making it fail to set it when it needs to. Avoid that by making +-- +GitLab + diff --git a/mutter.changes b/mutter.changes index 5a997ae..343a24d 100644 --- a/mutter.changes +++ b/mutter.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Apr 8 06:11:23 UTC 2024 - Alynx Zhou + +- Add mutter-fix-front-buffer-lock.patch: Fix front buffer lock + error by an unnecessary ensure_fb_id call + (glgo#gnome/mutter!3674, bsc#1222409). + ------------------------------------------------------------------- Tue Mar 19 09:30:13 UTC 2024 - Dominique Leuenberger diff --git a/mutter.spec b/mutter.spec index 2b3516d..4eec267 100644 --- a/mutter.spec +++ b/mutter.spec @@ -38,6 +38,8 @@ Patch2: mutter-window-actor-Special-case-shaped-Java-windows.patch Patch3: mutter-fix-x11-restart.patch # PATCH-FIX-OPENSUSE 0001-Revert-clutter-actor-Cache-stage-relative-instead-of.patch glgo#GNOME/mutter#3302 bsc#1219546 alynx.zhou@suse.com -- Fix partial update on VT switch Patch4: 0001-Revert-clutter-actor-Cache-stage-relative-instead-of.patch +# PATCH-FIX-UPSTREAM mutter-fix-front-buffer-lock.patch glgo#gnome/mutter!3674 bsc#1222409 alynx.zhou@suse.com -- Fix front buffer lock error +Patch5: mutter-fix-front-buffer-lock.patch ## SLE-only patches start at 1000 # PATCH-FEATURE-SLE mutter-SLE-bell.patch FATE#316042 bnc#889218 idonmez@suse.com -- make audible bell work out of the box. @@ -149,6 +151,7 @@ applications that want to make use of the mutter library. %patch -P 2 -p1 %patch -P 3 -p1 %patch -P 4 -p1 +%patch -P 5 -p1 %endif # SLE-only patches and translations. %if 0%{?sle_version}