From 8b9a80453d6c1c77a55680ada38a231d78161453 Mon Sep 17 00:00:00 2001 From: Mingi Sung Date: Mon, 8 Apr 2024 19:54:49 +0900 Subject: [PATCH] Sync to main & Add mr3674 Signed-off-by: Mingi Sung --- .SRCINFO | 13 ++++++++++--- PKGBUILD | 29 +++++++++++++++++++++------- mr3674.patch | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 10 deletions(-) create mode 100644 mr3674.patch diff --git a/.SRCINFO b/.SRCINFO index 2f36136..7ad5933 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,6 +1,6 @@ pkgbase = mutter-performance pkgdesc = A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync - pkgver = 46.0+r19+gc0ae617b3 + pkgver = 46.0+r20+g34d79b9dd pkgrel = 1 epoch = 1 url = https://gitlab.gnome.org/GNOME/mutter @@ -72,14 +72,21 @@ pkgbase = mutter-performance depends = systemd-libs depends = wayland depends = xorg-xwayland - source = git+https://gitlab.gnome.org/GNOME/mutter.git#commit=c0ae617b3ff86f5a4ad773d606e7bcdd7672139e + source = git+https://gitlab.gnome.org/GNOME/mutter.git#commit=34d79b9ddf2b2455dbde78372e7355e8b6f95e96 source = mr1441.patch source = mr3304.patch source = mr3373.patch - b2sums = 118cb0ba40f1a14163ea848c49487869bccfaa8f1cdb0423005e22ecea53c90154ff4512c2a885af7eaca0b170819ea19aeca1b03a34c1e2ae04dce702ce83e7 + source = mr3674.patch + sha256sums = d7cac80530a925413d6f69139fa0aa77468d547e5a71de4d04fbb5e69cf09a70 + sha256sums = e5b85a47436cfac47f76f53e540f3e36886e65a991b1dbecbf5756eb062a8ea6 + sha256sums = 90261cf4b2133ed3bf8c9c9e37c72ce816e5b0d75b55ae0c3899f7ef5809d593 + sha256sums = 3e1f07b696ad37b1c639a524c092cd9259444bc6156542901ccaec936bea240f + sha256sums = 414e1dad3e527fc6f9ef6e5006700d97738bef6de9b087af9e232a2084b0ac88 + b2sums = c3b55a34d1abd3a3e381593741ee0ffc14feebcb8725da92e99829452638abbe596e5149f9ac1460b01b8e5f40c84848ca8b8cedbfe28c8359208ccf7cbb9f74 b2sums = 75fb3ae1d4149c1cd82ae5cc23335e6d517665ba0527c6cbe112585706fa5191fb67e3264402527229185c0f6fc6638bb604243bb7c8123b7acc0b0a4379ba7e b2sums = f53c0a7cf5fe400e83379be5e3694dba0668e0917b5bf29c485cef802660e38176ab856118a030ddc87bd49b75d0dd6f9e0d8f32d2b2ef27ebb1737f8914bf21 b2sums = 71f10db4ebe04a787940c7048131eac67cffd3ec8e415cfc961b8041b881f272650581e9df273e2a8da23a50ec9151c790dc2d5ecc0309ab2847a22f8c922c9c + b2sums = 12b128e46f47c077b504f2707a8b0ba407617b50c267f785982dc62ab3045202abe1cce3dfbb49b80fb27b70c2ff5dc188155c93cf7131bebda2e4f1f77077f6 pkgname = mutter-performance groups = gnome diff --git a/PKGBUILD b/PKGBUILD index efeb0e4..4c3cd96 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -11,8 +11,8 @@ ### PACKAGE OPTIONS ## MERGE REQUESTS SELECTION -# Merge Requests List: ('579' '1441' '3304' '3373') -_merge_requests_to_use=('1441' '3304' '3373') +# Merge Requests List: ('579' '1441' '3304' '3373' '3674') +_merge_requests_to_use=('1441' '3304' '3373' '3674') ## Disable building the DOCS package (Enabled if not set) # Remember to unset this variable when producing .SRCINFO @@ -32,7 +32,7 @@ else pkgname=(mutter-performance mutter-performance-docs) fi epoch=1 -pkgver=46.0+r19+gc0ae617b3 +pkgver=46.0+r20+g34d79b9dd pkgrel=1 pkgdesc="A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync" url="https://gitlab.gnome.org/GNOME/mutter" @@ -111,15 +111,22 @@ makedepends=( if [ -n "$_enable_check" ]; then checkdepends=(gnome-session xorg-server-xvfb pipewire-session-manager python-dbusmock zenity) fi -_commit=c0ae617b3ff86f5a4ad773d606e7bcdd7672139e # tags/46.0^19 +_commit=34d79b9ddf2b2455dbde78372e7355e8b6f95e96 # tags/46.0^20 source=("git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit" 'mr1441.patch' 'mr3304.patch' - 'mr3373.patch') -b2sums=('118cb0ba40f1a14163ea848c49487869bccfaa8f1cdb0423005e22ecea53c90154ff4512c2a885af7eaca0b170819ea19aeca1b03a34c1e2ae04dce702ce83e7' + 'mr3373.patch' + 'mr3674.patch') +sha256sums=('d7cac80530a925413d6f69139fa0aa77468d547e5a71de4d04fbb5e69cf09a70' + 'e5b85a47436cfac47f76f53e540f3e36886e65a991b1dbecbf5756eb062a8ea6' + '90261cf4b2133ed3bf8c9c9e37c72ce816e5b0d75b55ae0c3899f7ef5809d593' + '3e1f07b696ad37b1c639a524c092cd9259444bc6156542901ccaec936bea240f' + '414e1dad3e527fc6f9ef6e5006700d97738bef6de9b087af9e232a2084b0ac88') +b2sums=('c3b55a34d1abd3a3e381593741ee0ffc14feebcb8725da92e99829452638abbe596e5149f9ac1460b01b8e5f40c84848ca8b8cedbfe28c8359208ccf7cbb9f74' '75fb3ae1d4149c1cd82ae5cc23335e6d517665ba0527c6cbe112585706fa5191fb67e3264402527229185c0f6fc6638bb604243bb7c8123b7acc0b0a4379ba7e' 'f53c0a7cf5fe400e83379be5e3694dba0668e0917b5bf29c485cef802660e38176ab856118a030ddc87bd49b75d0dd6f9e0d8f32d2b2ef27ebb1737f8914bf21' - '71f10db4ebe04a787940c7048131eac67cffd3ec8e415cfc961b8041b881f272650581e9df273e2a8da23a50ec9151c790dc2d5ecc0309ab2847a22f8c922c9c') + '71f10db4ebe04a787940c7048131eac67cffd3ec8e415cfc961b8041b881f272650581e9df273e2a8da23a50ec9151c790dc2d5ecc0309ab2847a22f8c922c9c' + '12b128e46f47c077b504f2707a8b0ba407617b50c267f785982dc62ab3045202abe1cce3dfbb49b80fb27b70c2ff5dc188155c93cf7131bebda2e4f1f77077f6') pkgver() { cd $_pkgname @@ -218,6 +225,14 @@ prepare() { # Comment: This fix cursor stutter. pick_mr '3373' 'mr3373.patch' 'patch' + # Title: drm-buffer-gbm: Do not call ensure_fb_id from lock_front + # Author: Michel Dänzer + # URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3674 + # Type: 3 + # Status: Reviewed and to be merged. + # Comment: This closes #3389 + pick_mr '3674' 'mr3674.patch' 'patch' + # Title: Draft: Dynamic triple/double buffering (v4) # Author: Daniel van Vugt # URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441 diff --git a/mr3674.patch b/mr3674.patch new file mode 100644 index 0000000..8fdc654 --- /dev/null +++ b/mr3674.patch @@ -0,0 +1,53 @@ +From 6fd0a273b669414aa1fcfd4cf193d8e6c9cd2773 Mon Sep 17 00:00:00 2001 +From: Michel Dänzer +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 +