1
0
Fork 0

Sync to gnome-46 & Refresh patches

Signed-off-by: Mingi Sung <sungmg@saltyming.net>
This commit is contained in:
Mingi Sung 2024-08-05 12:39:17 +09:00
parent da1363f444
commit a0ae40539e
Signed by: sungmg
GPG key ID: 41BAFD6FFD8036C5
7 changed files with 1081 additions and 318 deletions

View file

@ -1,7 +1,7 @@
pkgbase = mutter-performance pkgbase = mutter-performance
pkgdesc = A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync 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 pkgver = 46.4
pkgrel = 2 pkgrel = 1
epoch = 1 epoch = 1
url = https://gitlab.gnome.org/GNOME/mutter url = https://gitlab.gnome.org/GNOME/mutter
arch = x86_64 arch = x86_64
@ -73,24 +73,24 @@ pkgbase = mutter-performance
depends = systemd-libs depends = systemd-libs
depends = wayland depends = wayland
depends = xorg-xwayland 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 = mr1441.patch
source = mr3373.patch source = mr3373.patch
source = mr3567.patch source = mr3567.patch
source = mr3751.patch source = mr3751.patch
source = mr3912.patch source = mr3912.patch
sha256sums = 893c784ff14ab886615e7a58cd37c2409895fd73b8c95cc83fca209fbecbc1aa sha256sums = 864cce3adbb04b4213fda77b715f84fe1ed918a58adbc251c4804bbaf6e348ed
sha256sums = 7a5e1bcc90bbab100bf57b0dd052a96f34dd1673a5f43e53acd34ee648fd7b29 sha256sums = 07909ef8fc77f5527e169c31637a3bfdf080bc8040863f059db5541b35ec6ff7
sha256sums = 3e1f07b696ad37b1c639a524c092cd9259444bc6156542901ccaec936bea240f sha256sums = 1292f1dcefa0a3cfff753db942e7c974e39b1265d246634f239aad9437d45609
sha256sums = 47885ffe6c0aa06fa798cc0b9b48b4f6acf21b6f250b7003819db3854d52635a sha256sums = 2e474a574edad8dc047a53a920fc7cbe005cac0102907eef80a252fc556d0517
sha256sums = 9d925b810629074285388b5a1a9a88514a6cb45463a98ada6f66c2cba2ad9d2f sha256sums = 4c15b0e6d0001c8c3feedf05a9140f7f17d52eb36ff7b8039e0281c1373ccdfe
sha256sums = 43ea9e96f2bafaa40edc48510b1391a055ee507af82d81721fb76752c9295c6b sha256sums = f02f07abc4072118e175e8028d3ee16ff0aa9b238dd2b10155b3ae2a0534a4a0
b2sums = 3d2fccc192c53d7c80ba7f6d97e6392d8e5d6d884161b4b9d120294cc95627167e45d43737374781a8e52ca64e21caab3a07abb7bc38e3f358e593c43d9e69c6 b2sums = fc21cb8e56728873196fba12ba7a0522aeb9d6e7f6204ac21ade4c632b081fe45e0633d1c072c2416d81faa0f6b63cb69b278ef7b440e2bfccaff775501d3028
b2sums = 55bf09c286a361297952dc55670e3974ad35a91d54649892259fe423c422c6580e00e9f194bad97bebe3c53a65858a23d6e332d426c8572bd14cdc8e5cbcbbfb b2sums = 0419379cda7871c0b45b7a707948738b5a55fd81083ba325e915928aaa731cd2be23cebddf04b179bc69a26e1f4176b06fabb4d5baffba604a4980f578f5ba4d
b2sums = 71f10db4ebe04a787940c7048131eac67cffd3ec8e415cfc961b8041b881f272650581e9df273e2a8da23a50ec9151c790dc2d5ecc0309ab2847a22f8c922c9c b2sums = 38de03d5fbe7c9d1b9c41a4bc6b76b8d3acc270b93f279c5db591d79a689d9ea748f34da08ec584e49bbfc2d35a5bceeaf2f6b3fd91bc620139b4ee8b4ca6a04
b2sums = 8e57fa09e4742cf350436c5d54f3114495543151df71fbb684199d85ca9b138bcedd1dfb5df5724d0efc74aa786f6b1ebf54f3c260a48a4937a700dcb1d5b178 b2sums = 65302b1fa24a7aba26915269fb694c7a64b134ee2062ec7e649036a3a41efb2f2f4110cff6194808af34985855ade641c5fb01f0b97536cd3c912892ea3a0d4c
b2sums = f720718049c1f9d0f338c203a5ae4520b5e7079b57e692ec95d8183705d7b7627ccd7d3d350d0010d0b225226641afccd699b65a81bd044fd32c441d413a0779 b2sums = f9f2284d7236d6072a818de3784a339c2d934490da8870876f49d4effd59ce807593ce8b8a3c5e06586fd5fd7e81fb31fedca84115acf1e71cfe23d4a5e727b3
b2sums = f7a7ef368d2d15cc7edcb1d2def23ed9a349410620aeebe83d8ca0e612dad868e7a2fe731323bd4382fb4cef71d65a15c849df0b4ff0f8da972261728fdf6f6f b2sums = 14ed5e8fe9844739903150bf69de03b7136e74eb4b080d2e0264ba9bf5f2ba2c826cb45b78f8c38b2e80c223dd7926aa8e756e9bee23b75ced16ba5af45c2d8d
pkgname = mutter-performance pkgname = mutter-performance
groups = gnome groups = gnome

View file

@ -12,7 +12,7 @@
### PACKAGE OPTIONS ### PACKAGE OPTIONS
## MERGE REQUESTS SELECTION ## MERGE REQUESTS SELECTION
# Merge Requests List: ('579' '1441' '3373' '3567' '3751' '3912') # 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) ## Disable building the DOCS package (Enabled if not set)
# Remember to unset this variable when producing .SRCINFO # Remember to unset this variable when producing .SRCINFO
@ -32,8 +32,8 @@ else
pkgname=(mutter-performance mutter-performance-docs) pkgname=(mutter-performance mutter-performance-docs)
fi fi
epoch=1 epoch=1
pkgver=46.3.1+r5+g1ccf2cfb5 pkgver=46.4
pkgrel=2 pkgrel=1
pkgdesc="A window manager for GNOME | Attempts to improve performances with non-upstreamed merge-requests and frequent stable branch resync" 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" url="https://gitlab.gnome.org/GNOME/mutter"
arch=(x86_64 aarch64) arch=(x86_64 aarch64)
@ -112,25 +112,25 @@ makedepends=(
if [ -n "$_enable_check" ]; then if [ -n "$_enable_check" ]; then
checkdepends=(gnome-session xorg-server-xvfb pipewire-session-manager python-dbusmock zenity) checkdepends=(gnome-session xorg-server-xvfb pipewire-session-manager python-dbusmock zenity)
fi fi
_commit=1ccf2cfb568d4f9aeee2d23e5ededca21927d133 # tags/46.3.1^5 _commit=04995f56641012d71b5b226782e63d82c3ca3081 # tags/46.4^0
source=("git+$url.git#commit=$_commit" source=("git+$url.git#commit=$_commit"
'mr1441.patch' 'mr1441.patch'
'mr3373.patch' 'mr3373.patch'
'mr3567.patch' 'mr3567.patch'
'mr3751.patch' 'mr3751.patch'
'mr3912.patch') 'mr3912.patch')
sha256sums=('893c784ff14ab886615e7a58cd37c2409895fd73b8c95cc83fca209fbecbc1aa' sha256sums=('864cce3adbb04b4213fda77b715f84fe1ed918a58adbc251c4804bbaf6e348ed'
'7a5e1bcc90bbab100bf57b0dd052a96f34dd1673a5f43e53acd34ee648fd7b29' '07909ef8fc77f5527e169c31637a3bfdf080bc8040863f059db5541b35ec6ff7'
'3e1f07b696ad37b1c639a524c092cd9259444bc6156542901ccaec936bea240f' '1292f1dcefa0a3cfff753db942e7c974e39b1265d246634f239aad9437d45609'
'47885ffe6c0aa06fa798cc0b9b48b4f6acf21b6f250b7003819db3854d52635a' '2e474a574edad8dc047a53a920fc7cbe005cac0102907eef80a252fc556d0517'
'9d925b810629074285388b5a1a9a88514a6cb45463a98ada6f66c2cba2ad9d2f' '4c15b0e6d0001c8c3feedf05a9140f7f17d52eb36ff7b8039e0281c1373ccdfe'
'43ea9e96f2bafaa40edc48510b1391a055ee507af82d81721fb76752c9295c6b') 'f02f07abc4072118e175e8028d3ee16ff0aa9b238dd2b10155b3ae2a0534a4a0')
b2sums=('3d2fccc192c53d7c80ba7f6d97e6392d8e5d6d884161b4b9d120294cc95627167e45d43737374781a8e52ca64e21caab3a07abb7bc38e3f358e593c43d9e69c6' b2sums=('fc21cb8e56728873196fba12ba7a0522aeb9d6e7f6204ac21ade4c632b081fe45e0633d1c072c2416d81faa0f6b63cb69b278ef7b440e2bfccaff775501d3028'
'55bf09c286a361297952dc55670e3974ad35a91d54649892259fe423c422c6580e00e9f194bad97bebe3c53a65858a23d6e332d426c8572bd14cdc8e5cbcbbfb' '0419379cda7871c0b45b7a707948738b5a55fd81083ba325e915928aaa731cd2be23cebddf04b179bc69a26e1f4176b06fabb4d5baffba604a4980f578f5ba4d'
'71f10db4ebe04a787940c7048131eac67cffd3ec8e415cfc961b8041b881f272650581e9df273e2a8da23a50ec9151c790dc2d5ecc0309ab2847a22f8c922c9c' '38de03d5fbe7c9d1b9c41a4bc6b76b8d3acc270b93f279c5db591d79a689d9ea748f34da08ec584e49bbfc2d35a5bceeaf2f6b3fd91bc620139b4ee8b4ca6a04'
'8e57fa09e4742cf350436c5d54f3114495543151df71fbb684199d85ca9b138bcedd1dfb5df5724d0efc74aa786f6b1ebf54f3c260a48a4937a700dcb1d5b178' '65302b1fa24a7aba26915269fb694c7a64b134ee2062ec7e649036a3a41efb2f2f4110cff6194808af34985855ade641c5fb01f0b97536cd3c912892ea3a0d4c'
'f720718049c1f9d0f338c203a5ae4520b5e7079b57e692ec95d8183705d7b7627ccd7d3d350d0010d0b225226641afccd699b65a81bd044fd32c441d413a0779' 'f9f2284d7236d6072a818de3784a339c2d934490da8870876f49d4effd59ce807593ce8b8a3c5e06586fd5fd7e81fb31fedca84115acf1e71cfe23d4a5e727b3'
'f7a7ef368d2d15cc7edcb1d2def23ed9a349410620aeebe83d8ca0e612dad868e7a2fe731323bd4382fb4cef71d65a15c849df0b4ff0f8da972261728fdf6f6f') '14ed5e8fe9844739903150bf69de03b7136e74eb4b080d2e0264ba9bf5f2ba2c826cb45b78f8c38b2e80c223dd7926aa8e756e9bee23b75ced16ba5af45c2d8d')
for mr in "${_merge_requests_to_use[@]}"; do for mr in "${_merge_requests_to_use[@]}"; do
if [ '3567' = "$mr" ]; then if [ '3567' = "$mr" ]; then
@ -250,6 +250,7 @@ prepare() {
# URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3912 # URL: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3912
# Type: 1 # Type: 1
# Status: 2 # Status: 2
# Comment: Cannot be used with mr1441 as it already includes mr3912.
pick_mr '3912' 'mr3912.patch' 'patch' pick_mr '3912' 'mr3912.patch' 'patch'
# Title: Draft: Dynamic triple/double buffering (v4) # Title: Draft: Dynamic triple/double buffering (v4)

File diff suppressed because it is too large Load diff

View file

@ -1,20 +1,25 @@
From d99a0017e66bdd0e1a278e6b08126f5b04cac096 Mon Sep 17 00:00:00 2001
From: Daniel van Vugt <daniel.van.vugt@canonical.com> From: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Tue, 7 Nov 2023 16:30:01 +0200 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) This seems to be enough to fix cursor stutter on X1 Carbon 10 (OLED)
where the display is 90Hz and the touchpad ~145Hz. where the display is 90Hz and the touchpad ~145Hz.
Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/3146 Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/3146
Bug-Ubuntu: https://launchpad.net/bugs/2040977 Bug-Ubuntu: https://launchpad.net/bugs/2040977
Origin: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3373 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 +- src/backends/native/meta-kms-crtc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 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 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 --- a/src/backends/native/meta-kms-crtc.c
+++ b/src/backends/native/meta-kms-crtc.c +++ b/src/backends/native/meta-kms-crtc.c
@@ -28,7 +28,7 @@ @@ -28,7 +28,7 @@
@ -25,4 +30,7 @@ index b17e846..d6a8228 100644
+#define DEADLINE_EVASION_US 1000 +#define DEADLINE_EVASION_US 1000
#define DEADLINE_EVASION_WITH_KMS_TOPIC_US 1000 #define DEADLINE_EVASION_WITH_KMS_TOPIC_US 1000
typedef struct _MetaKmsCrtcPropTable #define MINIMUM_REFRESH_RATE 30.f
--
2.46.0

View file

@ -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> From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Tue, 12 Dec 2023 22:41:20 +0100 Date: Tue, 12 Dec 2023 22:41:20 +0100
Subject: [PATCH 1/5] x11-display: Expose UI scaling factor via D-Bus 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 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 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 --- a/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml
+++ b/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml +++ b/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml
@@ -426,10 +426,6 @@ @@ -426,10 +426,6 @@
@ -34,7 +34,7 @@ index b05337d74..7294c57a8 100644
<arg name="serial" direction="out" type="u" /> <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 diff --git a/data/dbus-interfaces/org.gnome.Mutter.X11.xml b/data/dbus-interfaces/org.gnome.Mutter.X11.xml
new file mode 100644 new file mode 100644
index 000000000..3d3c8a42f index 0000000000..3d3c8a42f8
--- /dev/null --- /dev/null
+++ b/data/dbus-interfaces/org.gnome.Mutter.X11.xml +++ b/data/dbus-interfaces/org.gnome.Mutter.X11.xml
@@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
@ -47,7 +47,7 @@ index 000000000..3d3c8a42f
+ </interface> + </interface>
+</node> +</node>
diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c 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 --- a/src/backends/meta-monitor-manager.c
+++ b/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, @@ -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_width,
&max_screen_height)) &max_screen_height))
diff --git a/src/meson.build b/src/meson.build diff --git a/src/meson.build b/src/meson.build
index 05df3bfd2..e658f98ca 100644 index 05df3bfd28..e658f98caa 100644
--- a/src/meson.build --- a/src/meson.build
+++ b/src/meson.build +++ b/src/meson.build
@@ -949,6 +949,11 @@ dbus_interfaces = [ @@ -949,6 +949,11 @@ dbus_interfaces = [
@ -94,7 +94,7 @@ index 05df3bfd2..e658f98ca 100644
if have_profiler if have_profiler
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c 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 --- a/src/x11/meta-x11-display.c
+++ b/src/x11/meta-x11-display.c +++ b/src/x11/meta-x11-display.c
@@ -70,7 +70,7 @@ @@ -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_pointer (&x11_display->alarm_filters, g_ptr_array_unref);
g_clear_list (&x11_display->event_funcs, 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); on_frames_client_died, x11_display);
} }
@ -192,7 +192,7 @@ index 3cbf82844..fe152d20b 100644
/** /**
* meta_x11_display_new: * 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 = g_object_new (META_TYPE_X11_DISPLAY, NULL);
x11_display->display = display; x11_display->display = display;
@ -201,7 +201,7 @@ index 3cbf82844..fe152d20b 100644
/* here we use XDisplayName which is what the user /* here we use XDisplayName which is what the user
* probably put in, vs. DisplayString(display) which is * probably put in, vs. DisplayString(display) which is
* canonicalized by XOpenDisplay() * 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; x11_display->has_xinerama_indices = FALSE;
@ -211,10 +211,10 @@ index 3cbf82844..fe152d20b 100644
static Bool 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> From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
Date: Tue, 20 Feb 2024 23:51:48 +0100 Date: Tue, 20 Feb 2024 23:51:48 +0100
Subject: [PATCH 2/5] Add an experimental feature for letting Xwayland clients 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(+) 3 files changed, 10 insertions(+)
diff --git a/data/org.gnome.mutter.gschema.xml.in b/data/org.gnome.mutter.gschema.xml.in 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 --- a/data/org.gnome.mutter.gschema.xml.in
+++ b/data/org.gnome.mutter.gschema.xml.in +++ b/data/org.gnome.mutter.gschema.xml.in
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
@ -257,7 +257,7 @@ index 92c97b12e..6751a8d7a 100644
</key> </key>
diff --git a/src/backends/meta-settings-private.h b/src/backends/meta-settings-private.h 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 --- a/src/backends/meta-settings-private.h
+++ b/src/backends/meta-settings-private.h +++ b/src/backends/meta-settings-private.h
@@ -32,6 +32,7 @@ typedef enum _MetaExperimentalFeature @@ -32,6 +32,7 @@ typedef enum _MetaExperimentalFeature
@ -269,7 +269,7 @@ index afbba054a..2081a81b1 100644
typedef enum _MetaXwaylandExtension typedef enum _MetaXwaylandExtension
diff --git a/src/backends/meta-settings.c b/src/backends/meta-settings.c 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 --- a/src/backends/meta-settings.c
+++ b/src/backends/meta-settings.c +++ b/src/backends/meta-settings.c
@@ -296,6 +296,8 @@ experimental_features_handler (GVariant *features_variant, @@ -296,6 +296,8 @@ experimental_features_handler (GVariant *features_variant,
@ -282,10 +282,10 @@ index 3703b23b0..1ae59d636 100644
if (feature) if (feature)
g_message ("Enabling experimental feature '%s'", feature_str); 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> From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Tue, 12 Dec 2023 22:42:46 +0100 Date: Tue, 12 Dec 2023 22:42:46 +0100
Subject: [PATCH 3/5] context: Put Wayland compositor getter in the context 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(-) 3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/meta/meta-context.h b/src/meta/meta-context.h 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 --- a/src/meta/meta-context.h
+++ b/src/meta/meta-context.h +++ b/src/meta/meta-context.h
@@ -101,3 +101,8 @@ gboolean meta_context_raise_rlimit_nofile (MetaContext *context, @@ -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); +MetaWaylandCompositor * meta_context_get_wayland_compositor (MetaContext *context);
+#endif +#endif
diff --git a/src/meta/meta-wayland-compositor.h b/src/meta/meta-wayland-compositor.h 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 --- a/src/meta/meta-wayland-compositor.h
+++ b/src/meta/meta-wayland-compositor.h +++ b/src/meta/meta-wayland-compositor.h
@@ -31,9 +31,6 @@ G_DECLARE_FINAL_TYPE (MetaWaylandCompositor, @@ -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); struct wl_display *meta_wayland_compositor_get_wayland_display (MetaWaylandCompositor *compositor);
diff --git a/src/meta/types.h b/src/meta/types.h 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 --- a/src/meta/types.h
+++ b/src/meta/types.h +++ b/src/meta/types.h
@@ -38,3 +38,7 @@ typedef struct _MetaSettings MetaSettings; @@ -38,3 +38,7 @@ typedef struct _MetaSettings MetaSettings;
@ -338,10 +338,10 @@ index cbe2a9a3d..8fba4a839 100644
+typedef struct _MetaWaylandCompositor MetaWaylandCompositor; +typedef struct _MetaWaylandCompositor MetaWaylandCompositor;
+#endif +#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> From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Tue, 12 Dec 2023 22:52:44 +0100 Date: Tue, 12 Dec 2023 22:52:44 +0100
Subject: [PATCH 4/5] Add experimental mode to use native scaling of Xwayland 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(-) 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 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 --- a/src/backends/meta-monitor-manager-private.h
+++ b/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 * @@ -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); +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 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 --- a/src/backends/meta-monitor-manager.c
+++ b/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) @@ -4116,3 +4116,9 @@ meta_monitor_manager_get_virtual_monitors (MetaMonitorManager *manager)
@ -411,7 +411,7 @@ index 7f98c2d98..45033d966 100644
+ return manager->layout_mode; + return manager->layout_mode;
+} +}
diff --git a/src/compositor/meta-window-actor-x11.c b/src/compositor/meta-window-actor-x11.c 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 --- a/src/compositor/meta-window-actor-x11.c
+++ b/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, @@ -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)); meta_window_actor_notify_damaged (META_WINDOW_ACTOR (actor_x11));
} }
diff --git a/src/core/frame.c b/src/core/frame.c 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 --- a/src/core/frame.c
+++ b/src/core/frame.c +++ b/src/core/frame.c
@@ -77,6 +77,7 @@ meta_window_x11_set_frame_xwindow (MetaWindow *window, @@ -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.above = None;
event.xconfigure.override_redirect = False; event.xconfigure.override_redirect = False;
diff --git a/src/wayland/meta-wayland-cursor-surface.c b/src/wayland/meta-wayland-cursor-surface.c 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 --- a/src/wayland/meta-wayland-cursor-surface.c
+++ b/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, @@ -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); meta_wayland_surface_update_outputs (surface);
diff --git a/src/wayland/meta-wayland-outputs.c b/src/wayland/meta-wayland-outputs.c 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 --- a/src/wayland/meta-wayland-outputs.c
+++ b/src/wayland/meta-wayland-outputs.c +++ b/src/wayland/meta-wayland-outputs.c
@@ -31,6 +31,10 @@ @@ -31,6 +31,10 @@
@ -802,7 +802,7 @@ index 89ae86445..f957bc339 100644
compositor->outputs = compositor->outputs =
diff --git a/src/wayland/meta-wayland-pointer.c b/src/wayland/meta-wayland-pointer.c 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 --- a/src/wayland/meta-wayland-pointer.c
+++ b/src/wayland/meta-wayland-pointer.c +++ b/src/wayland/meta-wayland-pointer.c
@@ -1247,6 +1247,20 @@ pointer_set_cursor (struct wl_client *client, @@ -1247,6 +1247,20 @@ pointer_set_cursor (struct wl_client *client,
@ -827,7 +827,7 @@ index cf6008064..b8c49849a 100644
hot_x, hot_y); hot_x, hot_y);
diff --git a/src/wayland/meta-wayland-private.h b/src/wayland/meta-wayland-private.h 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 --- a/src/wayland/meta-wayland-private.h
+++ b/src/wayland/meta-wayland-private.h +++ b/src/wayland/meta-wayland-private.h
@@ -77,6 +77,8 @@ struct _MetaXWaylandManager @@ -77,6 +77,8 @@ struct _MetaXWaylandManager
@ -840,7 +840,7 @@ index e8d442c03..834753ffd 100644
struct _MetaWaylandCompositor struct _MetaWaylandCompositor
diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c 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 --- a/src/wayland/meta-wayland-surface.c
+++ b/src/wayland/meta-wayland-surface.c +++ b/src/wayland/meta-wayland-surface.c
@@ -782,8 +782,19 @@ meta_wayland_surface_apply_state (MetaWaylandSurface *surface, @@ -782,8 +782,19 @@ meta_wayland_surface_apply_state (MetaWaylandSurface *surface,
@ -895,7 +895,7 @@ index d8b36ff92..4ad95cd9d 100644
void void
diff --git a/src/wayland/meta-window-xwayland.c b/src/wayland/meta-window-xwayland.c 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 --- a/src/wayland/meta-window-xwayland.c
+++ b/src/wayland/meta-window-xwayland.c +++ b/src/wayland/meta-window-xwayland.c
@@ -27,8 +27,9 @@ @@ -27,8 +27,9 @@
@ -992,7 +992,7 @@ index 1299a351c..5fb006962 100644
gobject_class->get_property = meta_window_xwayland_get_property; gobject_class->get_property = meta_window_xwayland_get_property;
gobject_class->set_property = meta_window_xwayland_set_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 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 --- a/src/wayland/meta-xwayland-private.h
+++ b/src/wayland/meta-xwayland-private.h +++ b/src/wayland/meta-xwayland-private.h
@@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
@ -1004,7 +1004,7 @@ index 7a9cb73fd..9e06f0315 100644
gboolean gboolean
meta_xwayland_init (MetaXWaylandManager *manager, meta_xwayland_init (MetaXWaylandManager *manager,
diff --git a/src/wayland/meta-xwayland-surface.c b/src/wayland/meta-xwayland-surface.c 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 --- a/src/wayland/meta-xwayland-surface.c
+++ b/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_ @@ -163,13 +163,19 @@ meta_xwayland_surface_get_relative_coordinates (MetaWaylandSurfaceRole *surface_
@ -1030,7 +1030,7 @@ index 8fa1c72a9..c6daf9b26 100644
static MetaWaylandSurface * static MetaWaylandSurface *
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c 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 --- a/src/wayland/meta-xwayland.c
+++ b/src/wayland/meta-xwayland.c +++ b/src/wayland/meta-xwayland.c
@@ -1051,6 +1051,29 @@ meta_xwayland_shutdown (MetaWaylandCompositor *compositor) @@ -1051,6 +1051,29 @@ meta_xwayland_shutdown (MetaWaylandCompositor *compositor)
@ -1084,7 +1084,7 @@ index ea9c27d74..828e6f64e 100644
return TRUE; 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; manager->should_enable_ei_portal = should_enable_ei_portal;
} }
@ -1115,7 +1115,7 @@ index ea9c27d74..828e6f64e 100644
+ return 1; + return 1;
+} +}
diff --git a/src/wayland/meta-xwayland.h b/src/wayland/meta-xwayland.h 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 --- a/src/wayland/meta-xwayland.h
+++ b/src/wayland/meta-xwayland.h +++ b/src/wayland/meta-xwayland.h
@@ -48,3 +48,5 @@ META_EXPORT_TEST @@ -48,3 +48,5 @@ META_EXPORT_TEST
@ -1125,7 +1125,7 @@ index daf9d1abb..ae7a06977 100644
+ +
+int meta_xwayland_get_effective_scale (MetaXWaylandManager *manager); +int meta_xwayland_get_effective_scale (MetaXWaylandManager *manager);
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c 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 --- a/src/x11/meta-x11-display.c
+++ b/src/x11/meta-x11-display.c +++ b/src/x11/meta-x11-display.c
@@ -130,6 +130,42 @@ backend_from_x11_display (MetaX11Display *x11_display) @@ -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); 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; return;
meta_display_get_size (x11_display->display, &monitor_width, &monitor_height); meta_display_get_size (x11_display->display, &monitor_width, &monitor_height);
@ -1217,7 +1217,7 @@ index fe152d20b..602879aac 100644
data[0] = monitor_width; data[0] = monitor_width;
data[1] = monitor_height; 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) for (l = logical_monitors; l; l = l->next)
{ {
@ -1246,7 +1246,7 @@ index fe152d20b..602879aac 100644
tmp += 4; 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; int num_workspaces;
GList *l; GList *l;
unsigned long *data, *tmp; unsigned long *data, *tmp;
@ -1254,7 +1254,7 @@ index fe152d20b..602879aac 100644
num_workspaces = meta_workspace_manager_get_n_workspaces (workspace_manager); num_workspaces = meta_workspace_manager_get_n_workspaces (workspace_manager);
data = g_new (unsigned long, num_workspaces * 4); 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) for (l = workspace_manager->workspaces; l; l = l->next)
{ {
MetaWorkspace *workspace = l->data; MetaWorkspace *workspace = l->data;
@ -1282,7 +1282,7 @@ index fe152d20b..602879aac 100644
tmp += 4; 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); update_ui_scaling_factor (x11_display);
} }
@ -1324,7 +1324,7 @@ index fe152d20b..602879aac 100644
/** /**
* meta_x11_display_new: * 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); MetaBackend *backend = meta_context_get_backend (context);
MetaMonitorManager *monitor_manager = MetaMonitorManager *monitor_manager =
meta_backend_get_monitor_manager (backend); meta_backend_get_monitor_manager (backend);
@ -1332,7 +1332,7 @@ index fe152d20b..602879aac 100644
g_autoptr (MetaX11Display) x11_display = NULL; g_autoptr (MetaX11Display) x11_display = NULL;
Display *xdisplay; Display *xdisplay;
Screen *xscreen; 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", "monitors-changed-internal",
G_CALLBACK (on_monitors_changed_internal), G_CALLBACK (on_monitors_changed_internal),
x11_display, x11_display,
@ -1341,7 +1341,7 @@ index fe152d20b..602879aac 100644
init_leader_window (x11_display, &timestamp); init_leader_window (x11_display, &timestamp);
x11_display->timestamp = timestamp; 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); meta_prefs_add_listener (prefs_changed_callback, x11_display);
@ -1353,7 +1353,7 @@ index fe152d20b..602879aac 100644
set_work_area_hint (display, x11_display); set_work_area_hint (display, x11_display);
g_signal_connect_object (display, "workareas-changed", 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 static void
@ -1375,7 +1375,7 @@ index fe152d20b..602879aac 100644
} }
static void static void
@@ -1809,8 +1922,37 @@ static void @@ -1833,8 +1946,37 @@ static void
update_cursor_theme (MetaX11Display *x11_display) update_cursor_theme (MetaX11Display *x11_display)
{ {
MetaBackend *backend = backend_from_x11_display (x11_display); MetaBackend *backend = backend_from_x11_display (x11_display);
@ -1414,7 +1414,7 @@ index fe152d20b..602879aac 100644
schedule_reload_x11_cursor (x11_display); schedule_reload_x11_cursor (x11_display);
if (META_IS_BACKEND_X11 (backend)) 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); MetaBackendX11 *backend_x11 = META_BACKEND_X11 (backend);
Display *xdisplay = meta_backend_x11_get_xdisplay (backend_x11); 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 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 --- a/src/x11/window-props.c
+++ b/src/x11/window-props.c +++ b/src/x11/window-props.c
@@ -305,10 +305,15 @@ reload_icon_geometry (MetaWindow *window, @@ -305,10 +305,15 @@ reload_icon_geometry (MetaWindow *window,
@ -1566,7 +1566,7 @@ index c18b3eab5..494fbe843 100644
/* Put back saved ConfigureRequest. */ /* Put back saved ConfigureRequest. */
window->size_hints.x = x; window->size_hints.x = x;
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c 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 --- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c +++ b/src/x11/window-x11.c
@@ -110,6 +110,113 @@ meta_window_x11_get_private (MetaWindowX11 *window_x11) @@ -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; priv->client_rect = window->rect;
window->buffer_rect = window->rect; window->buffer_rect = window->rect;
diff --git a/src/x11/window-x11.h b/src/x11/window-x11.h 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 --- a/src/x11/window-x11.h
+++ b/src/x11/window-x11.h +++ b/src/x11/window-x11.h
@@ -45,6 +45,24 @@ struct _MetaWindowX11Class @@ -45,6 +45,24 @@ struct _MetaWindowX11Class
@ -2091,10 +2091,10 @@ index 205eaaa63..fa3fbea6a 100644
+ int *stage_width, + int *stage_width,
+ int *stage_heigth); + 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> From: HydroH <ixlesis@gmail.com>
Date: Tue, 21 May 2024 19:15:36 +0800 Date: Tue, 21 May 2024 19:15:36 +0800
Subject: [PATCH 5/5] Correctly set bounding region for undecorated windows 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(-) 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c 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 --- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c +++ b/src/x11/window-x11.c
@@ -2573,8 +2573,13 @@ meta_window_x11_update_input_region (MetaWindow *window) @@ -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)) if (META_X11_DISPLAY_HAS_SHAPE (x11_display))
-- --
2.45.2 2.46.0

View file

@ -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> From: Alynx Zhou <alynx.zhou@gmail.com>
Date: Wed, 15 May 2024 00:07:41 +0800 Date: Wed, 15 May 2024 00:07:41 +0800
Subject: [PATCH] wayland/text-input-v1: Implement basic text-input-v1 support 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>. 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> Signed-off-by: Mingi Sung <sungmg@saltyming.net>
--- ---
clutter/clutter/clutter-enums.h | 3 + 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 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 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 --- a/clutter/clutter/clutter-enums.h
+++ b/clutter/clutter/clutter-enums.h +++ b/clutter/clutter/clutter-enums.h
@@ -1183,6 +1183,9 @@ typedef enum @@ -1183,6 +1183,9 @@ typedef enum
@ -41,7 +44,7 @@ index 45956bf57..8198e7351 100644
typedef enum typedef enum
diff --git a/src/core/events.c b/src/core/events.c 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 --- a/src/core/events.c
+++ b/src/core/events.c +++ b/src/core/events.c
@@ -238,6 +238,7 @@ meta_display_handle_event (MetaDisplay *display, @@ -238,6 +238,7 @@ meta_display_handle_event (MetaDisplay *display,
@ -77,7 +80,7 @@ index 1f36d2feb..a1874d673 100644
if (wayland_compositor) if (wayland_compositor)
diff --git a/src/meson.build b/src/meson.build diff --git a/src/meson.build b/src/meson.build
index 05df3bfd2..fad08706a 100644 index 05df3bfd28..fad08706a6 100644
--- a/src/meson.build --- a/src/meson.build
+++ b/src/meson.build +++ b/src/meson.build
@@ -688,6 +688,8 @@ if have_wayland @@ -688,6 +688,8 @@ if have_wayland
@ -98,7 +101,7 @@ index 05df3bfd2..fad08706a 100644
['xdg-activation', 'staging', 'v1', ], ['xdg-activation', 'staging', 'v1', ],
['xdg-foreign', 'unstable', 'v1', ], ['xdg-foreign', 'unstable', 'v1', ],
diff --git a/src/wayland/meta-wayland-seat.c b/src/wayland/meta-wayland-seat.c 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 --- a/src/wayland/meta-wayland-seat.c
+++ b/src/wayland/meta-wayland-seat.c +++ b/src/wayland/meta-wayland-seat.c
@@ -229,6 +229,7 @@ default_focus (MetaWaylandEventHandler *handler, @@ -229,6 +229,7 @@ default_focus (MetaWaylandEventHandler *handler,
@ -149,7 +152,7 @@ index 2301e0068..d0f888084 100644
break; break;
diff --git a/src/wayland/meta-wayland-seat.h b/src/wayland/meta-wayland-seat.h 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 --- a/src/wayland/meta-wayland-seat.h
+++ b/src/wayland/meta-wayland-seat.h +++ b/src/wayland/meta-wayland-seat.h
@@ -30,6 +30,7 @@ @@ -30,6 +30,7 @@
@ -170,7 +173,7 @@ index 83fd7de1e..37704cf5a 100644
MetaWaylandEventHandler *default_handler; MetaWaylandEventHandler *default_handler;
diff --git a/src/wayland/meta-wayland-text-input-v1.c b/src/wayland/meta-wayland-text-input-v1.c diff --git a/src/wayland/meta-wayland-text-input-v1.c b/src/wayland/meta-wayland-text-input-v1.c
new file mode 100644 new file mode 100644
index 000000000..1826a4ff4 index 0000000000..1826a4ff43
--- /dev/null --- /dev/null
+++ b/src/wayland/meta-wayland-text-input-v1.c +++ b/src/wayland/meta-wayland-text-input-v1.c
@@ -0,0 +1,859 @@ @@ -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 diff --git a/src/wayland/meta-wayland-text-input-v1.h b/src/wayland/meta-wayland-text-input-v1.h
new file mode 100644 new file mode 100644
index 000000000..79b1c0a54 index 0000000000..79b1c0a541
--- /dev/null --- /dev/null
+++ b/src/wayland/meta-wayland-text-input-v1.h +++ b/src/wayland/meta-wayland-text-input-v1.h
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
@ -1078,7 +1081,7 @@ index 000000000..79b1c0a54
+gboolean meta_wayland_text_input_v1_handle_event (MetaWaylandTextInputV1 *text_input, +gboolean meta_wayland_text_input_v1_handle_event (MetaWaylandTextInputV1 *text_input,
+ const ClutterEvent *event); + const ClutterEvent *event);
diff --git a/src/wayland/meta-wayland-versions.h b/src/wayland/meta-wayland-versions.h 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 --- a/src/wayland/meta-wayland-versions.h
+++ b/src/wayland/meta-wayland-versions.h +++ b/src/wayland/meta-wayland-versions.h
@@ -49,6 +49,7 @@ @@ -49,6 +49,7 @@
@ -1090,7 +1093,7 @@ index 900f30d78..a77b81461 100644
#define META_ZWP_PRIMARY_SELECTION_V1_VERSION 1 #define META_ZWP_PRIMARY_SELECTION_V1_VERSION 1
#define META_WP_PRESENTATION_VERSION 1 #define META_WP_PRESENTATION_VERSION 1
diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c 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 --- a/src/wayland/meta-wayland.c
+++ b/src/wayland/meta-wayland.c +++ b/src/wayland/meta-wayland.c
@@ -865,6 +865,7 @@ meta_wayland_compositor_new (MetaContext *context) @@ -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, meta_wayland_compositor_update_focus (MetaWaylandCompositor *compositor,
MetaWindow *window) MetaWindow *window)
diff --git a/src/wayland/meta-wayland.h b/src/wayland/meta-wayland.h 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 --- a/src/wayland/meta-wayland.h
+++ b/src/wayland/meta-wayland.h +++ b/src/wayland/meta-wayland.h
@@ -26,6 +26,7 @@ @@ -26,6 +26,7 @@
@ -1135,5 +1138,5 @@ index 0a0476eba..c23e82cdc 100644
#ifdef HAVE_XWAYLAND #ifdef HAVE_XWAYLAND
void meta_wayland_compositor_notify_surface_id (MetaWaylandCompositor *compositor, void meta_wayland_compositor_notify_surface_id (MetaWaylandCompositor *compositor,
-- --
2.45.2 2.46.0

View file

@ -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> From: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Mon, 29 Jul 2024 17:44:53 +0800 Date: Mon, 29 Jul 2024 17:44:53 +0800
Subject: [PATCH] backends/native: Avoid duplicating or losing KMS property 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 wouldn't get attached to a KMS update, and would be forgotten when
`notify_view_crtc_presented` resets the flags to FALSE. `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> Signed-off-by: Mingi Sung <sungmg@saltyming.net>
--- ---
src/backends/native/meta-onscreen-native.c | 10 ++++------ src/backends/native/meta-onscreen-native.c | 104 +++++++++++++--------
1 file changed, 4 insertions(+), 6 deletions(-) 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 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 --- a/src/backends/native/meta-onscreen-native.c
+++ b/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, @@ -84,6 +84,13 @@ typedef struct _MetaOnscreenNativeSecondaryGpuState
CoglFramebuffer *framebuffer = MetaSharedFramebufferImportStatus import_status;
clutter_stage_view_get_onscreen (stage_view); } MetaOnscreenNativeSecondaryGpuState;
CoglOnscreen *onscreen = COGL_ONSCREEN (framebuffer);
- MetaOnscreenNative *onscreen_native = META_ONSCREEN_NATIVE (onscreen);
CoglFrameInfo *frame_info;
MetaCrtc *crtc;
@@ -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); 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_privacy_screen_invalid = FALSE;
- onscreen_native->is_color_space_invalid = FALSE; - onscreen_native->is_color_space_invalid = FALSE;
- onscreen_native->is_hdr_metadata_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)); crtc = META_CRTC (meta_crtc_kms_from_kms_crtc (kms_crtc));
maybe_update_frame_info (crtc, frame_info, time_us, flags, sequence); 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); gamma = meta_crtc_kms_peek_gamma_lut (crtc_kms);
meta_kms_update_set_crtc_gamma (kms_update, kms_crtc, gamma); 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) - if (onscreen_native->is_privacy_screen_invalid)
@@ -1800,6 +1795,7 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen, + 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); enabled = meta_output_is_privacy_screen_enabled (onscreen_native->output);
meta_kms_update_set_privacy_screen (kms_update, kms_connector, enabled); 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) - if (onscreen_native->is_color_space_invalid)
@@ -1814,6 +1810,7 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen, + 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); color_space = meta_output_peek_color_space (onscreen_native->output);
meta_kms_update_set_color_space (kms_update, kms_connector, color_space); 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) - if (onscreen_native->is_hdr_metadata_invalid)
@@ -1828,6 +1825,7 @@ meta_onscreen_native_prepare_frame (CoglOnscreen *onscreen, + 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); metadata = meta_output_peek_hdr_metadata (onscreen_native->output);
meta_kms_update_set_hdr_metadata (kms_update, kms_connector, metadata); 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