Sync to gnome-46 & Refresh patches
Signed-off-by: Mingi Sung <sungmg@saltyming.net>
This commit is contained in:
parent
da1363f444
commit
a0ae40539e
7 changed files with 1081 additions and 318 deletions
30
.SRCINFO
30
.SRCINFO
|
@ -1,7 +1,7 @@
|
|||
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.3.1+r5+g1ccf2cfb5
|
||||
pkgrel = 2
|
||||
pkgver = 46.4
|
||||
pkgrel = 1
|
||||
epoch = 1
|
||||
url = https://gitlab.gnome.org/GNOME/mutter
|
||||
arch = x86_64
|
||||
|
@ -73,24 +73,24 @@ pkgbase = mutter-performance
|
|||
depends = systemd-libs
|
||||
depends = wayland
|
||||
depends = xorg-xwayland
|
||||
source = git+https://gitlab.gnome.org/GNOME/mutter.git#commit=1ccf2cfb568d4f9aeee2d23e5ededca21927d133
|
||||
source = git+https://gitlab.gnome.org/GNOME/mutter.git#commit=04995f56641012d71b5b226782e63d82c3ca3081
|
||||
source = mr1441.patch
|
||||
source = mr3373.patch
|
||||
source = mr3567.patch
|
||||
source = mr3751.patch
|
||||
source = mr3912.patch
|
||||
sha256sums = 893c784ff14ab886615e7a58cd37c2409895fd73b8c95cc83fca209fbecbc1aa
|
||||
sha256sums = 7a5e1bcc90bbab100bf57b0dd052a96f34dd1673a5f43e53acd34ee648fd7b29
|
||||
sha256sums = 3e1f07b696ad37b1c639a524c092cd9259444bc6156542901ccaec936bea240f
|
||||
sha256sums = 47885ffe6c0aa06fa798cc0b9b48b4f6acf21b6f250b7003819db3854d52635a
|
||||
sha256sums = 9d925b810629074285388b5a1a9a88514a6cb45463a98ada6f66c2cba2ad9d2f
|
||||
sha256sums = 43ea9e96f2bafaa40edc48510b1391a055ee507af82d81721fb76752c9295c6b
|
||||
b2sums = 3d2fccc192c53d7c80ba7f6d97e6392d8e5d6d884161b4b9d120294cc95627167e45d43737374781a8e52ca64e21caab3a07abb7bc38e3f358e593c43d9e69c6
|
||||
b2sums = 55bf09c286a361297952dc55670e3974ad35a91d54649892259fe423c422c6580e00e9f194bad97bebe3c53a65858a23d6e332d426c8572bd14cdc8e5cbcbbfb
|
||||
b2sums = 71f10db4ebe04a787940c7048131eac67cffd3ec8e415cfc961b8041b881f272650581e9df273e2a8da23a50ec9151c790dc2d5ecc0309ab2847a22f8c922c9c
|
||||
b2sums = 8e57fa09e4742cf350436c5d54f3114495543151df71fbb684199d85ca9b138bcedd1dfb5df5724d0efc74aa786f6b1ebf54f3c260a48a4937a700dcb1d5b178
|
||||
b2sums = f720718049c1f9d0f338c203a5ae4520b5e7079b57e692ec95d8183705d7b7627ccd7d3d350d0010d0b225226641afccd699b65a81bd044fd32c441d413a0779
|
||||
b2sums = f7a7ef368d2d15cc7edcb1d2def23ed9a349410620aeebe83d8ca0e612dad868e7a2fe731323bd4382fb4cef71d65a15c849df0b4ff0f8da972261728fdf6f6f
|
||||
sha256sums = 864cce3adbb04b4213fda77b715f84fe1ed918a58adbc251c4804bbaf6e348ed
|
||||
sha256sums = 07909ef8fc77f5527e169c31637a3bfdf080bc8040863f059db5541b35ec6ff7
|
||||
sha256sums = 1292f1dcefa0a3cfff753db942e7c974e39b1265d246634f239aad9437d45609
|
||||
sha256sums = 2e474a574edad8dc047a53a920fc7cbe005cac0102907eef80a252fc556d0517
|
||||
sha256sums = 4c15b0e6d0001c8c3feedf05a9140f7f17d52eb36ff7b8039e0281c1373ccdfe
|
||||
sha256sums = f02f07abc4072118e175e8028d3ee16ff0aa9b238dd2b10155b3ae2a0534a4a0
|
||||
b2sums = fc21cb8e56728873196fba12ba7a0522aeb9d6e7f6204ac21ade4c632b081fe45e0633d1c072c2416d81faa0f6b63cb69b278ef7b440e2bfccaff775501d3028
|
||||
b2sums = 0419379cda7871c0b45b7a707948738b5a55fd81083ba325e915928aaa731cd2be23cebddf04b179bc69a26e1f4176b06fabb4d5baffba604a4980f578f5ba4d
|
||||
b2sums = 38de03d5fbe7c9d1b9c41a4bc6b76b8d3acc270b93f279c5db591d79a689d9ea748f34da08ec584e49bbfc2d35a5bceeaf2f6b3fd91bc620139b4ee8b4ca6a04
|
||||
b2sums = 65302b1fa24a7aba26915269fb694c7a64b134ee2062ec7e649036a3a41efb2f2f4110cff6194808af34985855ade641c5fb01f0b97536cd3c912892ea3a0d4c
|
||||
b2sums = f9f2284d7236d6072a818de3784a339c2d934490da8870876f49d4effd59ce807593ce8b8a3c5e06586fd5fd7e81fb31fedca84115acf1e71cfe23d4a5e727b3
|
||||
b2sums = 14ed5e8fe9844739903150bf69de03b7136e74eb4b080d2e0264ba9bf5f2ba2c826cb45b78f8c38b2e80c223dd7926aa8e756e9bee23b75ced16ba5af45c2d8d
|
||||
|
||||
pkgname = mutter-performance
|
||||
groups = gnome
|
||||
|
|
33
PKGBUILD
33
PKGBUILD
|
@ -12,7 +12,7 @@
|
|||
### PACKAGE OPTIONS
|
||||
## MERGE REQUESTS SELECTION
|
||||
# Merge Requests List: ('579' '1441' '3373' '3567' '3751' '3912')
|
||||
_merge_requests_to_use=('1441' '3751' '3912')
|
||||
_merge_requests_to_use=('1441' '3751')
|
||||
|
||||
## Disable building the DOCS package (Enabled if not set)
|
||||
# Remember to unset this variable when producing .SRCINFO
|
||||
|
@ -32,8 +32,8 @@ else
|
|||
pkgname=(mutter-performance mutter-performance-docs)
|
||||
fi
|
||||
epoch=1
|
||||
pkgver=46.3.1+r5+g1ccf2cfb5
|
||||
pkgrel=2
|
||||
pkgver=46.4
|
||||
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"
|
||||
arch=(x86_64 aarch64)
|
||||
|
@ -112,25 +112,25 @@ makedepends=(
|
|||
if [ -n "$_enable_check" ]; then
|
||||
checkdepends=(gnome-session xorg-server-xvfb pipewire-session-manager python-dbusmock zenity)
|
||||
fi
|
||||
_commit=1ccf2cfb568d4f9aeee2d23e5ededca21927d133 # tags/46.3.1^5
|
||||
_commit=04995f56641012d71b5b226782e63d82c3ca3081 # tags/46.4^0
|
||||
source=("git+$url.git#commit=$_commit"
|
||||
'mr1441.patch'
|
||||
'mr3373.patch'
|
||||
'mr3567.patch'
|
||||
'mr3751.patch'
|
||||
'mr3912.patch')
|
||||
sha256sums=('893c784ff14ab886615e7a58cd37c2409895fd73b8c95cc83fca209fbecbc1aa'
|
||||
'7a5e1bcc90bbab100bf57b0dd052a96f34dd1673a5f43e53acd34ee648fd7b29'
|
||||
'3e1f07b696ad37b1c639a524c092cd9259444bc6156542901ccaec936bea240f'
|
||||
'47885ffe6c0aa06fa798cc0b9b48b4f6acf21b6f250b7003819db3854d52635a'
|
||||
'9d925b810629074285388b5a1a9a88514a6cb45463a98ada6f66c2cba2ad9d2f'
|
||||
'43ea9e96f2bafaa40edc48510b1391a055ee507af82d81721fb76752c9295c6b')
|
||||
b2sums=('3d2fccc192c53d7c80ba7f6d97e6392d8e5d6d884161b4b9d120294cc95627167e45d43737374781a8e52ca64e21caab3a07abb7bc38e3f358e593c43d9e69c6'
|
||||
'55bf09c286a361297952dc55670e3974ad35a91d54649892259fe423c422c6580e00e9f194bad97bebe3c53a65858a23d6e332d426c8572bd14cdc8e5cbcbbfb'
|
||||
'71f10db4ebe04a787940c7048131eac67cffd3ec8e415cfc961b8041b881f272650581e9df273e2a8da23a50ec9151c790dc2d5ecc0309ab2847a22f8c922c9c'
|
||||
'8e57fa09e4742cf350436c5d54f3114495543151df71fbb684199d85ca9b138bcedd1dfb5df5724d0efc74aa786f6b1ebf54f3c260a48a4937a700dcb1d5b178'
|
||||
'f720718049c1f9d0f338c203a5ae4520b5e7079b57e692ec95d8183705d7b7627ccd7d3d350d0010d0b225226641afccd699b65a81bd044fd32c441d413a0779'
|
||||
'f7a7ef368d2d15cc7edcb1d2def23ed9a349410620aeebe83d8ca0e612dad868e7a2fe731323bd4382fb4cef71d65a15c849df0b4ff0f8da972261728fdf6f6f')
|
||||
sha256sums=('864cce3adbb04b4213fda77b715f84fe1ed918a58adbc251c4804bbaf6e348ed'
|
||||
'07909ef8fc77f5527e169c31637a3bfdf080bc8040863f059db5541b35ec6ff7'
|
||||
'1292f1dcefa0a3cfff753db942e7c974e39b1265d246634f239aad9437d45609'
|
||||
'2e474a574edad8dc047a53a920fc7cbe005cac0102907eef80a252fc556d0517'
|
||||
'4c15b0e6d0001c8c3feedf05a9140f7f17d52eb36ff7b8039e0281c1373ccdfe'
|
||||
'f02f07abc4072118e175e8028d3ee16ff0aa9b238dd2b10155b3ae2a0534a4a0')
|
||||
b2sums=('fc21cb8e56728873196fba12ba7a0522aeb9d6e7f6204ac21ade4c632b081fe45e0633d1c072c2416d81faa0f6b63cb69b278ef7b440e2bfccaff775501d3028'
|
||||
'0419379cda7871c0b45b7a707948738b5a55fd81083ba325e915928aaa731cd2be23cebddf04b179bc69a26e1f4176b06fabb4d5baffba604a4980f578f5ba4d'
|
||||
'38de03d5fbe7c9d1b9c41a4bc6b76b8d3acc270b93f279c5db591d79a689d9ea748f34da08ec584e49bbfc2d35a5bceeaf2f6b3fd91bc620139b4ee8b4ca6a04'
|
||||
'65302b1fa24a7aba26915269fb694c7a64b134ee2062ec7e649036a3a41efb2f2f4110cff6194808af34985855ade641c5fb01f0b97536cd3c912892ea3a0d4c'
|
||||
'f9f2284d7236d6072a818de3784a339c2d934490da8870876f49d4effd59ce807593ce8b8a3c5e06586fd5fd7e81fb31fedca84115acf1e71cfe23d4a5e727b3'
|
||||
'14ed5e8fe9844739903150bf69de03b7136e74eb4b080d2e0264ba9bf5f2ba2c826cb45b78f8c38b2e80c223dd7926aa8e756e9bee23b75ced16ba5af45c2d8d')
|
||||
|
||||
for mr in "${_merge_requests_to_use[@]}"; do
|
||||
if [ '3567' = "$mr" ]; then
|
||||
|
@ -250,6 +250,7 @@ prepare() {
|
|||
# URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3912
|
||||
# Type: 1
|
||||
# Status: 2
|
||||
# Comment: Cannot be used with mr1441 as it already includes mr3912.
|
||||
pick_mr '3912' 'mr3912.patch' 'patch'
|
||||
|
||||
# Title: Draft: Dynamic triple/double buffering (v4)
|
||||
|
|
919
mr1441.patch
919
mr1441.patch
File diff suppressed because it is too large
Load diff
16
mr3373.patch
16
mr3373.patch
|
@ -1,20 +1,25 @@
|
|||
From d99a0017e66bdd0e1a278e6b08126f5b04cac096 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
|
||||
Date: Tue, 7 Nov 2023 16:30:01 +0200
|
||||
Subject: kms/crtc: Increase default deadline evasion to 1000 microseconds
|
||||
Subject: [PATCH] kms/crtc: Increase default deadline evasion to 1000
|
||||
microseconds
|
||||
|
||||
This seems to be enough to fix cursor stutter on X1 Carbon 10 (OLED)
|
||||
where the display is 90Hz and the touchpad ~145Hz.
|
||||
|
||||
Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/3146
|
||||
Bug-Ubuntu: https://launchpad.net/bugs/2040977
|
||||
|
||||
Origin: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3373
|
||||
Forwarded: yes
|
||||
Commit: 83de83513cbe6904e744ed4b495d835128f27434
|
||||
|
||||
Signed-off-by: Mingi Sung <sungmg@saltyming.net>
|
||||
---
|
||||
src/backends/native/meta-kms-crtc.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/backends/native/meta-kms-crtc.c b/src/backends/native/meta-kms-crtc.c
|
||||
index b17e846..d6a8228 100644
|
||||
index a0872089a0..8fcb2d9495 100644
|
||||
--- a/src/backends/native/meta-kms-crtc.c
|
||||
+++ b/src/backends/native/meta-kms-crtc.c
|
||||
@@ -28,7 +28,7 @@
|
||||
|
@ -25,4 +30,7 @@ index b17e846..d6a8228 100644
|
|||
+#define DEADLINE_EVASION_US 1000
|
||||
#define DEADLINE_EVASION_WITH_KMS_TOPIC_US 1000
|
||||
|
||||
typedef struct _MetaKmsCrtcPropTable
|
||||
#define MINIMUM_REFRESH_RATE 30.f
|
||||
--
|
||||
2.46.0
|
||||
|
||||
|
|
110
mr3567.patch
110
mr3567.patch
|
@ -1,4 +1,4 @@
|
|||
From e59a419987c8ff7207f0cadd4f59aae9cb0e8f71 Mon Sep 17 00:00:00 2001
|
||||
From 1a482cbbea109406e48962669a89465f3f8bb98d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Tue, 12 Dec 2023 22:41:20 +0100
|
||||
Subject: [PATCH 1/5] x11-display: Expose UI scaling factor via D-Bus
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Mingi Sung <sungmg@saltyming.net>
|
|||
create mode 100644 data/dbus-interfaces/org.gnome.Mutter.X11.xml
|
||||
|
||||
diff --git a/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml b/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml
|
||||
index b05337d74..7294c57a8 100644
|
||||
index b05337d74f..7294c57a84 100644
|
||||
--- a/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml
|
||||
+++ b/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml
|
||||
@@ -426,10 +426,6 @@
|
||||
|
@ -34,7 +34,7 @@ index b05337d74..7294c57a8 100644
|
|||
<arg name="serial" direction="out" type="u" />
|
||||
diff --git a/data/dbus-interfaces/org.gnome.Mutter.X11.xml b/data/dbus-interfaces/org.gnome.Mutter.X11.xml
|
||||
new file mode 100644
|
||||
index 000000000..3d3c8a42f
|
||||
index 0000000000..3d3c8a42f8
|
||||
--- /dev/null
|
||||
+++ b/data/dbus-interfaces/org.gnome.Mutter.X11.xml
|
||||
@@ -0,0 +1,8 @@
|
||||
|
@ -47,7 +47,7 @@ index 000000000..3d3c8a42f
|
|||
+ </interface>
|
||||
+</node>
|
||||
diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c
|
||||
index 77743bc72..7f98c2d98 100644
|
||||
index 77743bc722..7f98c2d983 100644
|
||||
--- a/src/backends/meta-monitor-manager.c
|
||||
+++ b/src/backends/meta-monitor-manager.c
|
||||
@@ -2051,14 +2051,12 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton,
|
||||
|
@ -78,7 +78,7 @@ index 77743bc72..7f98c2d98 100644
|
|||
&max_screen_width,
|
||||
&max_screen_height))
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index 05df3bfd2..e658f98ca 100644
|
||||
index 05df3bfd28..e658f98caa 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -949,6 +949,11 @@ dbus_interfaces = [
|
||||
|
@ -94,7 +94,7 @@ index 05df3bfd2..e658f98ca 100644
|
|||
|
||||
if have_profiler
|
||||
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c
|
||||
index 3cbf82844..fe152d20b 100644
|
||||
index 65eb217aaf..8768e14dac 100644
|
||||
--- a/src/x11/meta-x11-display.c
|
||||
+++ b/src/x11/meta-x11-display.c
|
||||
@@ -70,7 +70,7 @@
|
||||
|
@ -168,7 +168,7 @@ index 3cbf82844..fe152d20b 100644
|
|||
g_clear_pointer (&x11_display->alarm_filters, g_ptr_array_unref);
|
||||
|
||||
g_clear_list (&x11_display->event_funcs,
|
||||
@@ -1196,6 +1237,23 @@ meta_x11_display_init_frames_client (MetaX11Display *x11_display)
|
||||
@@ -1220,6 +1261,23 @@ meta_x11_display_init_frames_client (MetaX11Display *x11_display)
|
||||
on_frames_client_died, x11_display);
|
||||
}
|
||||
|
||||
|
@ -192,7 +192,7 @@ index 3cbf82844..fe152d20b 100644
|
|||
/**
|
||||
* meta_x11_display_new:
|
||||
*
|
||||
@@ -1290,6 +1348,8 @@ meta_x11_display_new (MetaDisplay *display,
|
||||
@@ -1314,6 +1372,8 @@ meta_x11_display_new (MetaDisplay *display,
|
||||
x11_display = g_object_new (META_TYPE_X11_DISPLAY, NULL);
|
||||
x11_display->display = display;
|
||||
|
||||
|
@ -201,7 +201,7 @@ index 3cbf82844..fe152d20b 100644
|
|||
/* here we use XDisplayName which is what the user
|
||||
* probably put in, vs. DisplayString(display) which is
|
||||
* canonicalized by XOpenDisplay()
|
||||
@@ -1951,6 +2011,8 @@ on_monitors_changed_internal (MetaMonitorManager *monitor_manager,
|
||||
@@ -1975,6 +2035,8 @@ on_monitors_changed_internal (MetaMonitorManager *monitor_manager,
|
||||
}
|
||||
|
||||
x11_display->has_xinerama_indices = FALSE;
|
||||
|
@ -211,10 +211,10 @@ index 3cbf82844..fe152d20b 100644
|
|||
|
||||
static Bool
|
||||
--
|
||||
2.45.2
|
||||
2.46.0
|
||||
|
||||
|
||||
From 42ece5f5f528fb44f63772826fe928f88327a7dc Mon Sep 17 00:00:00 2001
|
||||
From dd50b8639bcab08fceb5d3af206e2c41aa6f2f02 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
||||
Date: Tue, 20 Feb 2024 23:51:48 +0100
|
||||
Subject: [PATCH 2/5] Add an experimental feature for letting Xwayland clients
|
||||
|
@ -232,7 +232,7 @@ Signed-off-by: Mingi Sung <sungmg@saltyming.net>
|
|||
3 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/data/org.gnome.mutter.gschema.xml.in b/data/org.gnome.mutter.gschema.xml.in
|
||||
index 92c97b12e..6751a8d7a 100644
|
||||
index 92c97b12e3..6751a8d7a9 100644
|
||||
--- a/data/org.gnome.mutter.gschema.xml.in
|
||||
+++ b/data/org.gnome.mutter.gschema.xml.in
|
||||
@@ -5,6 +5,7 @@
|
||||
|
@ -257,7 +257,7 @@ index 92c97b12e..6751a8d7a 100644
|
|||
</key>
|
||||
|
||||
diff --git a/src/backends/meta-settings-private.h b/src/backends/meta-settings-private.h
|
||||
index afbba054a..2081a81b1 100644
|
||||
index afbba054af..2081a81b1a 100644
|
||||
--- a/src/backends/meta-settings-private.h
|
||||
+++ b/src/backends/meta-settings-private.h
|
||||
@@ -32,6 +32,7 @@ typedef enum _MetaExperimentalFeature
|
||||
|
@ -269,7 +269,7 @@ index afbba054a..2081a81b1 100644
|
|||
|
||||
typedef enum _MetaXwaylandExtension
|
||||
diff --git a/src/backends/meta-settings.c b/src/backends/meta-settings.c
|
||||
index 3703b23b0..1ae59d636 100644
|
||||
index 3703b23b07..1ae59d6360 100644
|
||||
--- a/src/backends/meta-settings.c
|
||||
+++ b/src/backends/meta-settings.c
|
||||
@@ -296,6 +296,8 @@ experimental_features_handler (GVariant *features_variant,
|
||||
|
@ -282,10 +282,10 @@ index 3703b23b0..1ae59d636 100644
|
|||
if (feature)
|
||||
g_message ("Enabling experimental feature '%s'", feature_str);
|
||||
--
|
||||
2.45.2
|
||||
2.46.0
|
||||
|
||||
|
||||
From e518927c779f8498f50fe2087efcd3ee88d75c12 Mon Sep 17 00:00:00 2001
|
||||
From 398a04f2558877e4876ea1551907719031b5adc1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Tue, 12 Dec 2023 22:42:46 +0100
|
||||
Subject: [PATCH 3/5] context: Put Wayland compositor getter in the context
|
||||
|
@ -299,7 +299,7 @@ Signed-off-by: Mingi Sung <sungmg@saltyming.net>
|
|||
3 files changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/meta/meta-context.h b/src/meta/meta-context.h
|
||||
index ef36bd2c3..2adb9b07e 100644
|
||||
index ef36bd2c30..2adb9b07e0 100644
|
||||
--- a/src/meta/meta-context.h
|
||||
+++ b/src/meta/meta-context.h
|
||||
@@ -101,3 +101,8 @@ gboolean meta_context_raise_rlimit_nofile (MetaContext *context,
|
||||
|
@ -312,7 +312,7 @@ index ef36bd2c3..2adb9b07e 100644
|
|||
+MetaWaylandCompositor * meta_context_get_wayland_compositor (MetaContext *context);
|
||||
+#endif
|
||||
diff --git a/src/meta/meta-wayland-compositor.h b/src/meta/meta-wayland-compositor.h
|
||||
index 7f4a50705..3df92fda5 100644
|
||||
index 7f4a507057..3df92fda57 100644
|
||||
--- a/src/meta/meta-wayland-compositor.h
|
||||
+++ b/src/meta/meta-wayland-compositor.h
|
||||
@@ -31,9 +31,6 @@ G_DECLARE_FINAL_TYPE (MetaWaylandCompositor,
|
||||
|
@ -326,7 +326,7 @@ index 7f4a50705..3df92fda5 100644
|
|||
struct wl_display *meta_wayland_compositor_get_wayland_display (MetaWaylandCompositor *compositor);
|
||||
|
||||
diff --git a/src/meta/types.h b/src/meta/types.h
|
||||
index cbe2a9a3d..8fba4a839 100644
|
||||
index cbe2a9a3d7..8fba4a839e 100644
|
||||
--- a/src/meta/types.h
|
||||
+++ b/src/meta/types.h
|
||||
@@ -38,3 +38,7 @@ typedef struct _MetaSettings MetaSettings;
|
||||
|
@ -338,10 +338,10 @@ index cbe2a9a3d..8fba4a839 100644
|
|||
+typedef struct _MetaWaylandCompositor MetaWaylandCompositor;
|
||||
+#endif
|
||||
--
|
||||
2.45.2
|
||||
2.46.0
|
||||
|
||||
|
||||
From 8f5fe12656db5a0488cbeb73298520b7d859b7fc Mon Sep 17 00:00:00 2001
|
||||
From 3b799a9250aa0d1df0ab8f611a730c140dfc9017 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Tue, 12 Dec 2023 22:52:44 +0100
|
||||
Subject: [PATCH 4/5] Add experimental mode to use native scaling of Xwayland
|
||||
|
@ -387,7 +387,7 @@ Signed-off-by: Mingi Sung <sungmg@saltyming.net>
|
|||
18 files changed, 896 insertions(+), 166 deletions(-)
|
||||
|
||||
diff --git a/src/backends/meta-monitor-manager-private.h b/src/backends/meta-monitor-manager-private.h
|
||||
index 0760a341a..6ed3fc2c3 100644
|
||||
index 0760a341a8..6ed3fc2c3f 100644
|
||||
--- a/src/backends/meta-monitor-manager-private.h
|
||||
+++ b/src/backends/meta-monitor-manager-private.h
|
||||
@@ -436,3 +436,5 @@ gboolean meta_monitor_manager_apply_monitors_config (MetaMonitorManager *
|
||||
|
@ -397,7 +397,7 @@ index 0760a341a..6ed3fc2c3 100644
|
|||
+
|
||||
+MetaLogicalMonitorLayoutMode meta_monitor_manager_get_layout_mode (MetaMonitorManager *manager);
|
||||
diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c
|
||||
index 7f98c2d98..45033d966 100644
|
||||
index 7f98c2d983..45033d966e 100644
|
||||
--- a/src/backends/meta-monitor-manager.c
|
||||
+++ b/src/backends/meta-monitor-manager.c
|
||||
@@ -4116,3 +4116,9 @@ meta_monitor_manager_get_virtual_monitors (MetaMonitorManager *manager)
|
||||
|
@ -411,7 +411,7 @@ index 7f98c2d98..45033d966 100644
|
|||
+ return manager->layout_mode;
|
||||
+}
|
||||
diff --git a/src/compositor/meta-window-actor-x11.c b/src/compositor/meta-window-actor-x11.c
|
||||
index 19827af33..7df10e6c1 100644
|
||||
index 19827af331..7df10e6c15 100644
|
||||
--- a/src/compositor/meta-window-actor-x11.c
|
||||
+++ b/src/compositor/meta-window-actor-x11.c
|
||||
@@ -688,11 +688,23 @@ meta_window_actor_x11_process_damage (MetaWindowActorX11 *actor_x11,
|
||||
|
@ -444,7 +444,7 @@ index 19827af33..7df10e6c1 100644
|
|||
meta_window_actor_notify_damaged (META_WINDOW_ACTOR (actor_x11));
|
||||
}
|
||||
diff --git a/src/core/frame.c b/src/core/frame.c
|
||||
index 7a09f89f1..57daf00ee 100644
|
||||
index 7a09f89f14..57daf00ee5 100644
|
||||
--- a/src/core/frame.c
|
||||
+++ b/src/core/frame.c
|
||||
@@ -77,6 +77,7 @@ meta_window_x11_set_frame_xwindow (MetaWindow *window,
|
||||
|
@ -643,7 +643,7 @@ index 7a09f89f1..57daf00ee 100644
|
|||
event.xconfigure.above = None;
|
||||
event.xconfigure.override_redirect = False;
|
||||
diff --git a/src/wayland/meta-wayland-cursor-surface.c b/src/wayland/meta-wayland-cursor-surface.c
|
||||
index 87a8895c8..5a16ce7d8 100644
|
||||
index 87a8895c88..5a16ce7d87 100644
|
||||
--- a/src/wayland/meta-wayland-cursor-surface.c
|
||||
+++ b/src/wayland/meta-wayland-cursor-surface.c
|
||||
@@ -92,37 +92,29 @@ cursor_sprite_prepare_at (MetaCursorSprite *cursor_sprite,
|
||||
|
@ -707,7 +707,7 @@ index 87a8895c8..5a16ce7d8 100644
|
|||
|
||||
meta_wayland_surface_update_outputs (surface);
|
||||
diff --git a/src/wayland/meta-wayland-outputs.c b/src/wayland/meta-wayland-outputs.c
|
||||
index 89ae86445..f957bc339 100644
|
||||
index 89ae864450..f957bc339d 100644
|
||||
--- a/src/wayland/meta-wayland-outputs.c
|
||||
+++ b/src/wayland/meta-wayland-outputs.c
|
||||
@@ -31,6 +31,10 @@
|
||||
|
@ -802,7 +802,7 @@ index 89ae86445..f957bc339 100644
|
|||
|
||||
compositor->outputs =
|
||||
diff --git a/src/wayland/meta-wayland-pointer.c b/src/wayland/meta-wayland-pointer.c
|
||||
index cf6008064..b8c49849a 100644
|
||||
index cf6008064a..b8c49849ad 100644
|
||||
--- a/src/wayland/meta-wayland-pointer.c
|
||||
+++ b/src/wayland/meta-wayland-pointer.c
|
||||
@@ -1247,6 +1247,20 @@ pointer_set_cursor (struct wl_client *client,
|
||||
|
@ -827,7 +827,7 @@ index cf6008064..b8c49849a 100644
|
|||
hot_x, hot_y);
|
||||
|
||||
diff --git a/src/wayland/meta-wayland-private.h b/src/wayland/meta-wayland-private.h
|
||||
index e8d442c03..834753ffd 100644
|
||||
index e8d442c039..834753ffdd 100644
|
||||
--- a/src/wayland/meta-wayland-private.h
|
||||
+++ b/src/wayland/meta-wayland-private.h
|
||||
@@ -77,6 +77,8 @@ struct _MetaXWaylandManager
|
||||
|
@ -840,7 +840,7 @@ index e8d442c03..834753ffd 100644
|
|||
|
||||
struct _MetaWaylandCompositor
|
||||
diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c
|
||||
index d8b36ff92..4ad95cd9d 100644
|
||||
index d8b36ff92b..4ad95cd9d5 100644
|
||||
--- a/src/wayland/meta-wayland-surface.c
|
||||
+++ b/src/wayland/meta-wayland-surface.c
|
||||
@@ -782,8 +782,19 @@ meta_wayland_surface_apply_state (MetaWaylandSurface *surface,
|
||||
|
@ -895,7 +895,7 @@ index d8b36ff92..4ad95cd9d 100644
|
|||
|
||||
void
|
||||
diff --git a/src/wayland/meta-window-xwayland.c b/src/wayland/meta-window-xwayland.c
|
||||
index 1299a351c..5fb006962 100644
|
||||
index 1299a351ca..5fb0069626 100644
|
||||
--- a/src/wayland/meta-window-xwayland.c
|
||||
+++ b/src/wayland/meta-window-xwayland.c
|
||||
@@ -27,8 +27,9 @@
|
||||
|
@ -992,7 +992,7 @@ index 1299a351c..5fb006962 100644
|
|||
gobject_class->get_property = meta_window_xwayland_get_property;
|
||||
gobject_class->set_property = meta_window_xwayland_set_property;
|
||||
diff --git a/src/wayland/meta-xwayland-private.h b/src/wayland/meta-xwayland-private.h
|
||||
index 7a9cb73fd..9e06f0315 100644
|
||||
index 7a9cb73fdf..9e06f03155 100644
|
||||
--- a/src/wayland/meta-xwayland-private.h
|
||||
+++ b/src/wayland/meta-xwayland-private.h
|
||||
@@ -20,6 +20,7 @@
|
||||
|
@ -1004,7 +1004,7 @@ index 7a9cb73fd..9e06f0315 100644
|
|||
gboolean
|
||||
meta_xwayland_init (MetaXWaylandManager *manager,
|
||||
diff --git a/src/wayland/meta-xwayland-surface.c b/src/wayland/meta-xwayland-surface.c
|
||||
index 8fa1c72a9..c6daf9b26 100644
|
||||
index 8fa1c72a96..c6daf9b267 100644
|
||||
--- a/src/wayland/meta-xwayland-surface.c
|
||||
+++ b/src/wayland/meta-xwayland-surface.c
|
||||
@@ -163,13 +163,19 @@ meta_xwayland_surface_get_relative_coordinates (MetaWaylandSurfaceRole *surface_
|
||||
|
@ -1030,7 +1030,7 @@ index 8fa1c72a9..c6daf9b26 100644
|
|||
|
||||
static MetaWaylandSurface *
|
||||
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c
|
||||
index ea9c27d74..828e6f64e 100644
|
||||
index 7f2915cfeb..f6f9d01ff4 100644
|
||||
--- a/src/wayland/meta-xwayland.c
|
||||
+++ b/src/wayland/meta-xwayland.c
|
||||
@@ -1051,6 +1051,29 @@ meta_xwayland_shutdown (MetaWaylandCompositor *compositor)
|
||||
|
@ -1084,7 +1084,7 @@ index ea9c27d74..828e6f64e 100644
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -1312,3 +1342,29 @@ meta_xwayland_set_should_enable_ei_portal (MetaXWaylandManager *manager,
|
||||
@@ -1313,3 +1343,29 @@ meta_xwayland_set_should_enable_ei_portal (MetaXWaylandManager *manager,
|
||||
{
|
||||
manager->should_enable_ei_portal = should_enable_ei_portal;
|
||||
}
|
||||
|
@ -1115,7 +1115,7 @@ index ea9c27d74..828e6f64e 100644
|
|||
+ return 1;
|
||||
+}
|
||||
diff --git a/src/wayland/meta-xwayland.h b/src/wayland/meta-xwayland.h
|
||||
index daf9d1abb..ae7a06977 100644
|
||||
index daf9d1abb0..ae7a06977e 100644
|
||||
--- a/src/wayland/meta-xwayland.h
|
||||
+++ b/src/wayland/meta-xwayland.h
|
||||
@@ -48,3 +48,5 @@ META_EXPORT_TEST
|
||||
|
@ -1125,7 +1125,7 @@ index daf9d1abb..ae7a06977 100644
|
|||
+
|
||||
+int meta_xwayland_get_effective_scale (MetaXWaylandManager *manager);
|
||||
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c
|
||||
index fe152d20b..602879aac 100644
|
||||
index 8768e14dac..024374e7ef 100644
|
||||
--- a/src/x11/meta-x11-display.c
|
||||
+++ b/src/x11/meta-x11-display.c
|
||||
@@ -130,6 +130,42 @@ backend_from_x11_display (MetaX11Display *x11_display)
|
||||
|
@ -1207,7 +1207,7 @@ index fe152d20b..602879aac 100644
|
|||
meta_dbus_x11_set_ui_scaling_factor (priv->dbus_api, ui_scaling_factor);
|
||||
}
|
||||
|
||||
@@ -613,6 +671,9 @@ set_desktop_geometry_hint (MetaX11Display *x11_display)
|
||||
@@ -637,6 +695,9 @@ set_desktop_geometry_hint (MetaX11Display *x11_display)
|
||||
return;
|
||||
|
||||
meta_display_get_size (x11_display->display, &monitor_width, &monitor_height);
|
||||
|
@ -1217,7 +1217,7 @@ index fe152d20b..602879aac 100644
|
|||
|
||||
data[0] = monitor_width;
|
||||
data[1] = monitor_height;
|
||||
@@ -1022,14 +1083,22 @@ set_workspace_work_area_hint (MetaWorkspace *workspace,
|
||||
@@ -1046,14 +1107,22 @@ set_workspace_work_area_hint (MetaWorkspace *workspace,
|
||||
|
||||
for (l = logical_monitors; l; l = l->next)
|
||||
{
|
||||
|
@ -1246,7 +1246,7 @@ index fe152d20b..602879aac 100644
|
|||
|
||||
tmp += 4;
|
||||
}
|
||||
@@ -1058,7 +1127,6 @@ set_work_area_hint (MetaDisplay *display,
|
||||
@@ -1082,7 +1151,6 @@ set_work_area_hint (MetaDisplay *display,
|
||||
int num_workspaces;
|
||||
GList *l;
|
||||
unsigned long *data, *tmp;
|
||||
|
@ -1254,7 +1254,7 @@ index fe152d20b..602879aac 100644
|
|||
|
||||
num_workspaces = meta_workspace_manager_get_n_workspaces (workspace_manager);
|
||||
data = g_new (unsigned long, num_workspaces * 4);
|
||||
@@ -1067,14 +1135,22 @@ set_work_area_hint (MetaDisplay *display,
|
||||
@@ -1091,14 +1159,22 @@ set_work_area_hint (MetaDisplay *display,
|
||||
for (l = workspace_manager->workspaces; l; l = l->next)
|
||||
{
|
||||
MetaWorkspace *workspace = l->data;
|
||||
|
@ -1282,7 +1282,7 @@ index fe152d20b..602879aac 100644
|
|||
|
||||
tmp += 4;
|
||||
}
|
||||
@@ -1254,6 +1330,41 @@ initialize_dbus_interface (MetaX11Display *x11_display)
|
||||
@@ -1278,6 +1354,41 @@ initialize_dbus_interface (MetaX11Display *x11_display)
|
||||
update_ui_scaling_factor (x11_display);
|
||||
}
|
||||
|
||||
|
@ -1324,7 +1324,7 @@ index fe152d20b..602879aac 100644
|
|||
/**
|
||||
* meta_x11_display_new:
|
||||
*
|
||||
@@ -1272,6 +1383,7 @@ meta_x11_display_new (MetaDisplay *display,
|
||||
@@ -1296,6 +1407,7 @@ meta_x11_display_new (MetaDisplay *display,
|
||||
MetaBackend *backend = meta_context_get_backend (context);
|
||||
MetaMonitorManager *monitor_manager =
|
||||
meta_backend_get_monitor_manager (backend);
|
||||
|
@ -1332,7 +1332,7 @@ index fe152d20b..602879aac 100644
|
|||
g_autoptr (MetaX11Display) x11_display = NULL;
|
||||
Display *xdisplay;
|
||||
Screen *xscreen;
|
||||
@@ -1442,7 +1554,7 @@ meta_x11_display_new (MetaDisplay *display,
|
||||
@@ -1466,7 +1578,7 @@ meta_x11_display_new (MetaDisplay *display,
|
||||
"monitors-changed-internal",
|
||||
G_CALLBACK (on_monitors_changed_internal),
|
||||
x11_display,
|
||||
|
@ -1341,7 +1341,7 @@ index fe152d20b..602879aac 100644
|
|||
|
||||
init_leader_window (x11_display, ×tamp);
|
||||
x11_display->timestamp = timestamp;
|
||||
@@ -1535,6 +1647,11 @@ meta_x11_display_new (MetaDisplay *display,
|
||||
@@ -1559,6 +1671,11 @@ meta_x11_display_new (MetaDisplay *display,
|
||||
|
||||
meta_prefs_add_listener (prefs_changed_callback, x11_display);
|
||||
|
||||
|
@ -1353,7 +1353,7 @@ index fe152d20b..602879aac 100644
|
|||
set_work_area_hint (display, x11_display);
|
||||
|
||||
g_signal_connect_object (display, "workareas-changed",
|
||||
@@ -1748,16 +1865,12 @@ meta_x11_display_reload_cursor (MetaX11Display *x11_display)
|
||||
@@ -1772,16 +1889,12 @@ meta_x11_display_reload_cursor (MetaX11Display *x11_display)
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1375,7 +1375,7 @@ index fe152d20b..602879aac 100644
|
|||
}
|
||||
|
||||
static void
|
||||
@@ -1809,8 +1922,37 @@ static void
|
||||
@@ -1833,8 +1946,37 @@ static void
|
||||
update_cursor_theme (MetaX11Display *x11_display)
|
||||
{
|
||||
MetaBackend *backend = backend_from_x11_display (x11_display);
|
||||
|
@ -1414,7 +1414,7 @@ index fe152d20b..602879aac 100644
|
|||
schedule_reload_x11_cursor (x11_display);
|
||||
|
||||
if (META_IS_BACKEND_X11 (backend))
|
||||
@@ -1818,7 +1960,7 @@ update_cursor_theme (MetaX11Display *x11_display)
|
||||
@@ -1842,7 +1984,7 @@ update_cursor_theme (MetaX11Display *x11_display)
|
||||
MetaBackendX11 *backend_x11 = META_BACKEND_X11 (backend);
|
||||
Display *xdisplay = meta_backend_x11_get_xdisplay (backend_x11);
|
||||
|
||||
|
@ -1424,7 +1424,7 @@ index fe152d20b..602879aac 100644
|
|||
}
|
||||
}
|
||||
diff --git a/src/x11/window-props.c b/src/x11/window-props.c
|
||||
index c18b3eab5..494fbe843 100644
|
||||
index c18b3eab59..494fbe8431 100644
|
||||
--- a/src/x11/window-props.c
|
||||
+++ b/src/x11/window-props.c
|
||||
@@ -305,10 +305,15 @@ reload_icon_geometry (MetaWindow *window,
|
||||
|
@ -1566,7 +1566,7 @@ index c18b3eab5..494fbe843 100644
|
|||
/* Put back saved ConfigureRequest. */
|
||||
window->size_hints.x = x;
|
||||
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
|
||||
index 443f40f28..ccbd75d1a 100644
|
||||
index 443f40f284..ccbd75d1a9 100644
|
||||
--- a/src/x11/window-x11.c
|
||||
+++ b/src/x11/window-x11.c
|
||||
@@ -110,6 +110,113 @@ meta_window_x11_get_private (MetaWindowX11 *window_x11)
|
||||
|
@ -2038,7 +2038,7 @@ index 443f40f28..ccbd75d1a 100644
|
|||
priv->client_rect = window->rect;
|
||||
window->buffer_rect = window->rect;
|
||||
diff --git a/src/x11/window-x11.h b/src/x11/window-x11.h
|
||||
index 205eaaa63..fa3fbea6a 100644
|
||||
index 205eaaa632..fa3fbea6a8 100644
|
||||
--- a/src/x11/window-x11.h
|
||||
+++ b/src/x11/window-x11.h
|
||||
@@ -45,6 +45,24 @@ struct _MetaWindowX11Class
|
||||
|
@ -2091,10 +2091,10 @@ index 205eaaa63..fa3fbea6a 100644
|
|||
+ int *stage_width,
|
||||
+ int *stage_heigth);
|
||||
--
|
||||
2.45.2
|
||||
2.46.0
|
||||
|
||||
|
||||
From 26bac17fc06d840006c86935b6e9486ccf033082 Mon Sep 17 00:00:00 2001
|
||||
From 6f35aed57a4a98ef878e483958e930840a6667ae Mon Sep 17 00:00:00 2001
|
||||
From: HydroH <ixlesis@gmail.com>
|
||||
Date: Tue, 21 May 2024 19:15:36 +0800
|
||||
Subject: [PATCH 5/5] Correctly set bounding region for undecorated windows
|
||||
|
@ -2105,7 +2105,7 @@ Signed-off-by: Mingi Sung <sungmg@saltyming.net>
|
|||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
|
||||
index ccbd75d1a..5f37c634a 100644
|
||||
index ccbd75d1a9..5f37c634ac 100644
|
||||
--- a/src/x11/window-x11.c
|
||||
+++ b/src/x11/window-x11.c
|
||||
@@ -2573,8 +2573,13 @@ meta_window_x11_update_input_region (MetaWindow *window)
|
||||
|
@ -2125,5 +2125,5 @@ index ccbd75d1a..5f37c634a 100644
|
|||
|
||||
if (META_X11_DISPLAY_HAS_SHAPE (x11_display))
|
||||
--
|
||||
2.45.2
|
||||
2.46.0
|
||||
|
||||
|
|
27
mr3751.patch
27
mr3751.patch
|
@ -1,4 +1,4 @@
|
|||
From 033b1b83a8484247519bc98eee70add380d1e3fc Mon Sep 17 00:00:00 2001
|
||||
From 0bcbfa0ae68bac604b6922c236a2dc42e535e994 Mon Sep 17 00:00:00 2001
|
||||
From: Alynx Zhou <alynx.zhou@gmail.com>
|
||||
Date: Wed, 15 May 2024 00:07:41 +0800
|
||||
Subject: [PATCH] wayland/text-input-v1: Implement basic text-input-v1 support
|
||||
|
@ -10,6 +10,9 @@ Japanese or Korean.
|
|||
|
||||
Closes <https://gitlab.gnome.org/GNOME/mutter/-/issues/3200>.
|
||||
|
||||
Origin: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3751
|
||||
Commit: 2a94e19b00434fe4d7ab858a6cdcff6364f6e408
|
||||
|
||||
Signed-off-by: Mingi Sung <sungmg@saltyming.net>
|
||||
---
|
||||
clutter/clutter/clutter-enums.h | 3 +
|
||||
|
@ -27,7 +30,7 @@ Signed-off-by: Mingi Sung <sungmg@saltyming.net>
|
|||
create mode 100644 src/wayland/meta-wayland-text-input-v1.h
|
||||
|
||||
diff --git a/clutter/clutter/clutter-enums.h b/clutter/clutter/clutter-enums.h
|
||||
index 45956bf57..8198e7351 100644
|
||||
index 45956bf57b..8198e73516 100644
|
||||
--- a/clutter/clutter/clutter-enums.h
|
||||
+++ b/clutter/clutter/clutter-enums.h
|
||||
@@ -1183,6 +1183,9 @@ typedef enum
|
||||
|
@ -41,7 +44,7 @@ index 45956bf57..8198e7351 100644
|
|||
|
||||
typedef enum
|
||||
diff --git a/src/core/events.c b/src/core/events.c
|
||||
index 1f36d2feb..a1874d673 100644
|
||||
index 1f36d2feb6..a1874d6737 100644
|
||||
--- a/src/core/events.c
|
||||
+++ b/src/core/events.c
|
||||
@@ -238,6 +238,7 @@ meta_display_handle_event (MetaDisplay *display,
|
||||
|
@ -77,7 +80,7 @@ index 1f36d2feb..a1874d673 100644
|
|||
|
||||
if (wayland_compositor)
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index 05df3bfd2..fad08706a 100644
|
||||
index 05df3bfd28..fad08706a6 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -688,6 +688,8 @@ if have_wayland
|
||||
|
@ -98,7 +101,7 @@ index 05df3bfd2..fad08706a 100644
|
|||
['xdg-activation', 'staging', 'v1', ],
|
||||
['xdg-foreign', 'unstable', 'v1', ],
|
||||
diff --git a/src/wayland/meta-wayland-seat.c b/src/wayland/meta-wayland-seat.c
|
||||
index 2301e0068..d0f888084 100644
|
||||
index 2301e00685..d0f8880840 100644
|
||||
--- a/src/wayland/meta-wayland-seat.c
|
||||
+++ b/src/wayland/meta-wayland-seat.c
|
||||
@@ -229,6 +229,7 @@ default_focus (MetaWaylandEventHandler *handler,
|
||||
|
@ -149,7 +152,7 @@ index 2301e0068..d0f888084 100644
|
|||
|
||||
break;
|
||||
diff --git a/src/wayland/meta-wayland-seat.h b/src/wayland/meta-wayland-seat.h
|
||||
index 83fd7de1e..37704cf5a 100644
|
||||
index 83fd7de1ed..37704cf5a1 100644
|
||||
--- a/src/wayland/meta-wayland-seat.h
|
||||
+++ b/src/wayland/meta-wayland-seat.h
|
||||
@@ -30,6 +30,7 @@
|
||||
|
@ -170,7 +173,7 @@ index 83fd7de1e..37704cf5a 100644
|
|||
MetaWaylandEventHandler *default_handler;
|
||||
diff --git a/src/wayland/meta-wayland-text-input-v1.c b/src/wayland/meta-wayland-text-input-v1.c
|
||||
new file mode 100644
|
||||
index 000000000..1826a4ff4
|
||||
index 0000000000..1826a4ff43
|
||||
--- /dev/null
|
||||
+++ b/src/wayland/meta-wayland-text-input-v1.c
|
||||
@@ -0,0 +1,859 @@
|
||||
|
@ -1035,7 +1038,7 @@ index 000000000..1826a4ff4
|
|||
+}
|
||||
diff --git a/src/wayland/meta-wayland-text-input-v1.h b/src/wayland/meta-wayland-text-input-v1.h
|
||||
new file mode 100644
|
||||
index 000000000..79b1c0a54
|
||||
index 0000000000..79b1c0a541
|
||||
--- /dev/null
|
||||
+++ b/src/wayland/meta-wayland-text-input-v1.h
|
||||
@@ -0,0 +1,38 @@
|
||||
|
@ -1078,7 +1081,7 @@ index 000000000..79b1c0a54
|
|||
+gboolean meta_wayland_text_input_v1_handle_event (MetaWaylandTextInputV1 *text_input,
|
||||
+ const ClutterEvent *event);
|
||||
diff --git a/src/wayland/meta-wayland-versions.h b/src/wayland/meta-wayland-versions.h
|
||||
index 900f30d78..a77b81461 100644
|
||||
index 900f30d788..a77b81461b 100644
|
||||
--- a/src/wayland/meta-wayland-versions.h
|
||||
+++ b/src/wayland/meta-wayland-versions.h
|
||||
@@ -49,6 +49,7 @@
|
||||
|
@ -1090,7 +1093,7 @@ index 900f30d78..a77b81461 100644
|
|||
#define META_ZWP_PRIMARY_SELECTION_V1_VERSION 1
|
||||
#define META_WP_PRESENTATION_VERSION 1
|
||||
diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c
|
||||
index 501b69a91..0114823c1 100644
|
||||
index 501b69a91c..0114823c14 100644
|
||||
--- a/src/wayland/meta-wayland.c
|
||||
+++ b/src/wayland/meta-wayland.c
|
||||
@@ -865,6 +865,7 @@ meta_wayland_compositor_new (MetaContext *context)
|
||||
|
@ -1115,7 +1118,7 @@ index 501b69a91..0114823c1 100644
|
|||
meta_wayland_compositor_update_focus (MetaWaylandCompositor *compositor,
|
||||
MetaWindow *window)
|
||||
diff --git a/src/wayland/meta-wayland.h b/src/wayland/meta-wayland.h
|
||||
index 0a0476eba..c23e82cdc 100644
|
||||
index 0a0476eba0..c23e82cdca 100644
|
||||
--- a/src/wayland/meta-wayland.h
|
||||
+++ b/src/wayland/meta-wayland.h
|
||||
@@ -26,6 +26,7 @@
|
||||
|
@ -1135,5 +1138,5 @@ index 0a0476eba..c23e82cdc 100644
|
|||
#ifdef HAVE_XWAYLAND
|
||||
void meta_wayland_compositor_notify_surface_id (MetaWaylandCompositor *compositor,
|
||||
--
|
||||
2.45.2
|
||||
2.46.0
|
||||
|
||||
|
|
264
mr3912.patch
264
mr3912.patch
|
@ -1,4 +1,4 @@
|
|||
From cd9e973930c5a93c7dc752a9b041a4ab649165ee Mon Sep 17 00:00:00 2001
|
||||
From 9cc50ce03e29614740a1e524866f113dbf7fe27c Mon Sep 17 00:00:00 2001
|
||||
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
|
||||
Date: Mon, 29 Jul 2024 17:44:53 +0800
|
||||
Subject: [PATCH] backends/native: Avoid duplicating or losing KMS property
|
||||
|
@ -15,24 +15,63 @@ meant that property updates signalled between the swap and presentation
|
|||
wouldn't get attached to a KMS update, and would be forgotten when
|
||||
`notify_view_crtc_presented` resets the flags to FALSE.
|
||||
|
||||
To solve these we now keep a separate flag and counter per property,
|
||||
tracking invalidation and pending updates respectively. The latter is a
|
||||
counter rather than a boolean in support of triple buffering where two
|
||||
updates may be pending concurrently (next and posted).
|
||||
|
||||
Origin: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3912
|
||||
Commit: f7b59445e437aa84ec00b372cd26f3b35ece7c8b
|
||||
|
||||
Signed-off-by: Mingi Sung <sungmg@saltyming.net>
|
||||
---
|
||||
src/backends/native/meta-onscreen-native.c | 10 ++++------
|
||||
1 file changed, 4 insertions(+), 6 deletions(-)
|
||||
src/backends/native/meta-onscreen-native.c | 104 +++++++++++++--------
|
||||
1 file changed, 67 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/src/backends/native/meta-onscreen-native.c b/src/backends/native/meta-onscreen-native.c
|
||||
index 1a31f04a16..43a7d186a4 100644
|
||||
index 1a31f04a16..60b7d877a5 100644
|
||||
--- a/src/backends/native/meta-onscreen-native.c
|
||||
+++ b/src/backends/native/meta-onscreen-native.c
|
||||
@@ -225,7 +225,6 @@ notify_view_crtc_presented (MetaRendererView *view,
|
||||
CoglFramebuffer *framebuffer =
|
||||
clutter_stage_view_get_onscreen (stage_view);
|
||||
CoglOnscreen *onscreen = COGL_ONSCREEN (framebuffer);
|
||||
- MetaOnscreenNative *onscreen_native = META_ONSCREEN_NATIVE (onscreen);
|
||||
CoglFrameInfo *frame_info;
|
||||
MetaCrtc *crtc;
|
||||
@@ -84,6 +84,13 @@ typedef struct _MetaOnscreenNativeSecondaryGpuState
|
||||
MetaSharedFramebufferImportStatus import_status;
|
||||
} MetaOnscreenNativeSecondaryGpuState;
|
||||
|
||||
@@ -233,11 +232,6 @@ notify_view_crtc_presented (MetaRendererView *view,
|
||||
+typedef struct _KmsProperty
|
||||
+{
|
||||
+ gboolean invalidated;
|
||||
+ int updates_pending;
|
||||
+ gulong signal_handler_id;
|
||||
+} KmsProperty;
|
||||
+
|
||||
struct _MetaOnscreenNative
|
||||
{
|
||||
CoglOnscreenEgl parent;
|
||||
@@ -116,15 +123,15 @@ struct _MetaOnscreenNative
|
||||
|
||||
MetaRendererView *view;
|
||||
|
||||
- gboolean is_gamma_lut_invalid;
|
||||
- gboolean is_privacy_screen_invalid;
|
||||
- gboolean is_color_space_invalid;
|
||||
- gboolean is_hdr_metadata_invalid;
|
||||
-
|
||||
- gulong gamma_lut_changed_handler_id;
|
||||
- gulong privacy_screen_changed_handler_id;
|
||||
- gulong color_space_changed_handler_id;
|
||||
- gulong hdr_metadata_changed_handler_id;
|
||||
+ union {
|
||||
+ struct {
|
||||
+ KmsProperty gamma_lut;
|
||||
+ KmsProperty privacy_screen;
|
||||
+ KmsProperty color_space;
|
||||
+ KmsProperty hdr_metadata;
|
||||
+ } property;
|
||||
+ KmsProperty properties[4];
|
||||
+ };
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (MetaOnscreenNative, meta_onscreen_native,
|
||||
@@ -233,10 +240,13 @@ notify_view_crtc_presented (MetaRendererView *view,
|
||||
|
||||
g_return_if_fail (frame_info != NULL);
|
||||
|
||||
|
@ -40,42 +79,217 @@ index 1a31f04a16..43a7d186a4 100644
|
|||
- onscreen_native->is_privacy_screen_invalid = FALSE;
|
||||
- onscreen_native->is_color_space_invalid = FALSE;
|
||||
- onscreen_native->is_hdr_metadata_invalid = FALSE;
|
||||
-
|
||||
+ for (int i = 0; i < G_N_ELEMENTS (onscreen_native->properties); i++)
|
||||
+ {
|
||||
+ KmsProperty *prop = &onscreen_native->properties[i];
|
||||
+
|
||||
+ if (prop->updates_pending > 0)
|
||||
+ prop->updates_pending--;
|
||||
+ }
|
||||
|
||||
crtc = META_CRTC (meta_crtc_kms_from_kms_crtc (kms_crtc));
|
||||
maybe_update_frame_info (crtc, frame_info, time_us, flags, sequence);
|
||||
@@ -333,6 +343,7 @@ page_flip_feedback_discarded (MetaKmsCrtc *kms_crtc,
|
||||
CoglFramebuffer *framebuffer =
|
||||
clutter_stage_view_get_onscreen (CLUTTER_STAGE_VIEW (view));
|
||||
CoglOnscreen *onscreen = COGL_ONSCREEN (framebuffer);
|
||||
+ MetaOnscreenNative *onscreen_native = META_ONSCREEN_NATIVE (onscreen);
|
||||
CoglFrameInfo *frame_info;
|
||||
|
||||
@@ -1786,6 +1780,7 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen,
|
||||
/*
|
||||
@@ -346,6 +357,17 @@ page_flip_feedback_discarded (MetaKmsCrtc *kms_crtc,
|
||||
G_IO_ERROR_PERMISSION_DENIED))
|
||||
g_warning ("Page flip discarded: %s", error->message);
|
||||
|
||||
+ for (int i = 0; i < G_N_ELEMENTS (onscreen_native->properties); i++)
|
||||
+ {
|
||||
+ KmsProperty *prop = &onscreen_native->properties[i];
|
||||
+
|
||||
+ if (prop->updates_pending > 0)
|
||||
+ {
|
||||
+ prop->invalidated = TRUE;
|
||||
+ prop->updates_pending--;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
frame_info = cogl_onscreen_peek_head_frame_info (onscreen);
|
||||
frame_info->flags |= COGL_FRAME_INFO_FLAG_SYMBOLIC;
|
||||
|
||||
@@ -1776,7 +1798,7 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen,
|
||||
MetaKmsDevice *kms_device = meta_kms_crtc_get_device (kms_crtc);;
|
||||
MetaFrameNative *frame_native = meta_frame_native_from_frame (frame);
|
||||
|
||||
- if (onscreen_native->is_gamma_lut_invalid)
|
||||
+ if (onscreen_native->property.gamma_lut.invalidated)
|
||||
{
|
||||
const MetaGammaLut *gamma;
|
||||
MetaKmsUpdate *kms_update;
|
||||
@@ -1786,9 +1808,11 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen,
|
||||
|
||||
gamma = meta_crtc_kms_peek_gamma_lut (crtc_kms);
|
||||
meta_kms_update_set_crtc_gamma (kms_update, kms_crtc, gamma);
|
||||
+ onscreen_native->is_gamma_lut_invalid = FALSE;
|
||||
+ onscreen_native->property.gamma_lut.invalidated = FALSE;
|
||||
+ onscreen_native->property.gamma_lut.updates_pending++;
|
||||
}
|
||||
|
||||
if (onscreen_native->is_privacy_screen_invalid)
|
||||
@@ -1800,6 +1795,7 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen,
|
||||
- if (onscreen_native->is_privacy_screen_invalid)
|
||||
+ if (onscreen_native->property.privacy_screen.invalidated)
|
||||
{
|
||||
MetaKmsConnector *kms_connector =
|
||||
meta_output_kms_get_kms_connector (output_kms);
|
||||
@@ -1800,9 +1824,11 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen,
|
||||
|
||||
enabled = meta_output_is_privacy_screen_enabled (onscreen_native->output);
|
||||
meta_kms_update_set_privacy_screen (kms_update, kms_connector, enabled);
|
||||
+ onscreen_native->is_privacy_screen_invalid = FALSE;
|
||||
+ onscreen_native->property.privacy_screen.invalidated = FALSE;
|
||||
+ onscreen_native->property.privacy_screen.updates_pending++;
|
||||
}
|
||||
|
||||
if (onscreen_native->is_color_space_invalid)
|
||||
@@ -1814,6 +1810,7 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen,
|
||||
- if (onscreen_native->is_color_space_invalid)
|
||||
+ if (onscreen_native->property.color_space.invalidated)
|
||||
{
|
||||
MetaKmsConnector *kms_connector =
|
||||
meta_output_kms_get_kms_connector (output_kms);
|
||||
@@ -1814,9 +1840,11 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen,
|
||||
|
||||
color_space = meta_output_peek_color_space (onscreen_native->output);
|
||||
meta_kms_update_set_color_space (kms_update, kms_connector, color_space);
|
||||
+ onscreen_native->is_color_space_invalid = FALSE;
|
||||
+ onscreen_native->property.color_space.invalidated = FALSE;
|
||||
+ onscreen_native->property.color_space.updates_pending++;
|
||||
}
|
||||
|
||||
if (onscreen_native->is_hdr_metadata_invalid)
|
||||
@@ -1828,6 +1825,7 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen,
|
||||
- if (onscreen_native->is_hdr_metadata_invalid)
|
||||
+ if (onscreen_native->property.hdr_metadata.invalidated)
|
||||
{
|
||||
MetaKmsConnector *kms_connector =
|
||||
meta_output_kms_get_kms_connector (output_kms);
|
||||
@@ -1828,6 +1856,8 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen,
|
||||
|
||||
metadata = meta_output_peek_hdr_metadata (onscreen_native->output);
|
||||
meta_kms_update_set_hdr_metadata (kms_update, kms_connector, metadata);
|
||||
+ onscreen_native->is_hdr_metadata_invalid = FALSE;
|
||||
+ onscreen_native->property.hdr_metadata.invalidated = FALSE;
|
||||
+ onscreen_native->property.hdr_metadata.updates_pending++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2677,15 +2707,15 @@ meta_onscreen_native_invalidate (MetaOnscreenNative *onscreen_native)
|
||||
meta_output_get_info (onscreen_native->output);
|
||||
|
||||
if (meta_crtc_get_gamma_lut_size (onscreen_native->crtc) > 0)
|
||||
- onscreen_native->is_gamma_lut_invalid = TRUE;
|
||||
+ onscreen_native->property.gamma_lut.invalidated = TRUE;
|
||||
if (output_info->supports_privacy_screen)
|
||||
- onscreen_native->is_privacy_screen_invalid = TRUE;
|
||||
+ onscreen_native->property.privacy_screen.invalidated = TRUE;
|
||||
if (output_info->supported_color_spaces &
|
||||
(1 << META_OUTPUT_COLORSPACE_DEFAULT))
|
||||
- onscreen_native->is_color_space_invalid = TRUE;
|
||||
+ onscreen_native->property.color_space.invalidated = TRUE;
|
||||
if (output_info->supported_hdr_eotfs &
|
||||
(1 << META_OUTPUT_HDR_METADATA_EOTF_TRADITIONAL_GAMMA_SDR))
|
||||
- onscreen_native->is_hdr_metadata_invalid = TRUE;
|
||||
+ onscreen_native->property.hdr_metadata.invalidated = TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2694,7 +2724,7 @@ on_gamma_lut_changed (MetaCrtc *crtc,
|
||||
{
|
||||
ClutterStageView *stage_view = CLUTTER_STAGE_VIEW (onscreen_native->view);
|
||||
|
||||
- onscreen_native->is_gamma_lut_invalid = TRUE;
|
||||
+ onscreen_native->property.gamma_lut.invalidated = TRUE;
|
||||
clutter_stage_view_schedule_update (stage_view);
|
||||
}
|
||||
|
||||
@@ -2705,7 +2735,7 @@ on_privacy_screen_enabled_changed (MetaOutput *output,
|
||||
{
|
||||
ClutterStageView *stage_view = CLUTTER_STAGE_VIEW (onscreen_native->view);
|
||||
|
||||
- onscreen_native->is_privacy_screen_invalid = TRUE;
|
||||
+ onscreen_native->property.privacy_screen.invalidated = TRUE;
|
||||
clutter_stage_view_schedule_update (stage_view);
|
||||
}
|
||||
|
||||
@@ -2715,7 +2745,7 @@ on_color_space_changed (MetaOutput *output,
|
||||
{
|
||||
ClutterStageView *stage_view = CLUTTER_STAGE_VIEW (onscreen_native->view);
|
||||
|
||||
- onscreen_native->is_color_space_invalid = TRUE;
|
||||
+ onscreen_native->property.color_space.invalidated = TRUE;
|
||||
clutter_stage_view_schedule_update (stage_view);
|
||||
}
|
||||
|
||||
@@ -2725,7 +2755,7 @@ on_hdr_metadata_changed (MetaOutput *output,
|
||||
{
|
||||
ClutterStageView *stage_view = CLUTTER_STAGE_VIEW (onscreen_native->view);
|
||||
|
||||
- onscreen_native->is_hdr_metadata_invalid = TRUE;
|
||||
+ onscreen_native->property.hdr_metadata.invalidated = TRUE;
|
||||
clutter_stage_view_schedule_update (stage_view);
|
||||
}
|
||||
|
||||
@@ -2760,8 +2790,8 @@ meta_onscreen_native_new (MetaRendererNative *renderer_native,
|
||||
|
||||
if (meta_crtc_get_gamma_lut_size (crtc) > 0)
|
||||
{
|
||||
- onscreen_native->is_gamma_lut_invalid = TRUE;
|
||||
- onscreen_native->gamma_lut_changed_handler_id =
|
||||
+ onscreen_native->property.gamma_lut.invalidated = TRUE;
|
||||
+ onscreen_native->property.gamma_lut.signal_handler_id =
|
||||
g_signal_connect (crtc, "gamma-lut-changed",
|
||||
G_CALLBACK (on_gamma_lut_changed),
|
||||
onscreen_native);
|
||||
@@ -2769,8 +2799,8 @@ meta_onscreen_native_new (MetaRendererNative *renderer_native,
|
||||
|
||||
if (output_info->supports_privacy_screen)
|
||||
{
|
||||
- onscreen_native->is_privacy_screen_invalid = TRUE;
|
||||
- onscreen_native->privacy_screen_changed_handler_id =
|
||||
+ onscreen_native->property.privacy_screen.invalidated = TRUE;
|
||||
+ onscreen_native->property.privacy_screen.signal_handler_id =
|
||||
g_signal_connect (output, "notify::is-privacy-screen-enabled",
|
||||
G_CALLBACK (on_privacy_screen_enabled_changed),
|
||||
onscreen_native);
|
||||
@@ -2779,8 +2809,8 @@ meta_onscreen_native_new (MetaRendererNative *renderer_native,
|
||||
if (output_info->supported_color_spaces &
|
||||
(1 << META_OUTPUT_COLORSPACE_DEFAULT))
|
||||
{
|
||||
- onscreen_native->is_color_space_invalid = TRUE;
|
||||
- onscreen_native->color_space_changed_handler_id =
|
||||
+ onscreen_native->property.color_space.invalidated = TRUE;
|
||||
+ onscreen_native->property.color_space.signal_handler_id =
|
||||
g_signal_connect (output, "color-space-changed",
|
||||
G_CALLBACK (on_color_space_changed),
|
||||
onscreen_native);
|
||||
@@ -2789,8 +2819,8 @@ meta_onscreen_native_new (MetaRendererNative *renderer_native,
|
||||
if (output_info->supported_hdr_eotfs &
|
||||
(1 << META_OUTPUT_HDR_METADATA_EOTF_TRADITIONAL_GAMMA_SDR))
|
||||
{
|
||||
- onscreen_native->is_hdr_metadata_invalid = TRUE;
|
||||
- onscreen_native->hdr_metadata_changed_handler_id =
|
||||
+ onscreen_native->property.hdr_metadata.invalidated = TRUE;
|
||||
+ onscreen_native->property.hdr_metadata.signal_handler_id =
|
||||
g_signal_connect (output, "hdr-metadata-changed",
|
||||
G_CALLBACK (on_hdr_metadata_changed),
|
||||
onscreen_native);
|
||||
@@ -2802,13 +2832,13 @@ meta_onscreen_native_new (MetaRendererNative *renderer_native,
|
||||
static void
|
||||
clear_invalidation_handlers (MetaOnscreenNative *onscreen_native)
|
||||
{
|
||||
- g_clear_signal_handler (&onscreen_native->gamma_lut_changed_handler_id,
|
||||
+ g_clear_signal_handler (&onscreen_native->property.gamma_lut.signal_handler_id,
|
||||
onscreen_native->crtc);
|
||||
- g_clear_signal_handler (&onscreen_native->privacy_screen_changed_handler_id,
|
||||
+ g_clear_signal_handler (&onscreen_native->property.privacy_screen.signal_handler_id,
|
||||
onscreen_native->output);
|
||||
- g_clear_signal_handler (&onscreen_native->color_space_changed_handler_id,
|
||||
+ g_clear_signal_handler (&onscreen_native->property.color_space.signal_handler_id,
|
||||
onscreen_native->output);
|
||||
- g_clear_signal_handler (&onscreen_native->hdr_metadata_changed_handler_id,
|
||||
+ g_clear_signal_handler (&onscreen_native->property.hdr_metadata.signal_handler_id,
|
||||
onscreen_native->output);
|
||||
}
|
||||
|
||||
--
|
||||
2.45.2
|
||||
2.46.0
|
||||
|
||||
|
|
Loading…
Reference in a new issue