Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Slowroll:Build:2
mutter
mutter-fix-front-buffer-lock.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mutter-fix-front-buffer-lock.patch of Package mutter
From 6fd0a273b669414aa1fcfd4cf193d8e6c9cd2773 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com> 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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor