Skip to content
Commits on Source (13)
mutter (43.2-6ubuntu1) lunar; urgency=medium
* Merge with Debian. Remaining change:
- Add x11-Add-support-for-fractional-scaling-using-Randr.patch
-- Jeremy Bicha <jbicha@ubuntu.com> Mon, 30 Jan 2023 08:55:56 -0500
mutter (43.2-6) unstable; urgency=medium
* Team upload
* d/patches: Update to upstream gnome-43 branch commit 43.2-29-g35763ca0cc
- Avoid lag while altering the split point between edge-tiled windows
on the left and right halves of the screen (mutter#2246)
- Disable direct scanout optimization during drag-and-drop to ensure
the dragged content is visible (mutter#2470)
- Performance improvements (mutter!2671)
- Enable the direct scanout optimization for fullscreen mpv in Wayland
(mutter#2550)
- Revert an optimization which caused some extensions to regress
- Prevent mouse cursor disappearing for windows that appeared while a
menu was open (mutter#2553)
- Make pointer confinement compatible with subsurfaces (mutter#2223)
- Report width and height of rotated screens consistently with the spec
and other compositors (mutter#2519)
- Avoid unintended focus change on secondary display when switching
workspace on primary display (mutter#2548)
- Make workspace-switching more resilient against crashes (mutter!2707)
- Fix a crash during screen recording at certain resolution/scale
combinations (mutter#2542)
- Fix cursor position scaling while recording a single window
(mutter#1541)
- Avoid integer overflow during screencasting (mutter!2762)
- Ensure cursor reappears when using touchscreen and then mouse in X11
(mutter#2344)
- Ensure keyboard accessibility works at beginning of session if
previously enabled in configuration (mutter#1858)
- Fix mapping between graphics tablets and displays (mutter!2767)
- Fix a small memory leak (mutter!2799)
- Translation updates: ru
* d/patches: Sort closest-to-upstream first
* d/patches: Improve metadata
* d/control.in: Drop Multi-Arch from libmutter-test-11.
The test library is not usefully multiarch, because it depends on a
matching architecture of mutter.
* lintian-overrides: Silence a false positive for libegl1-mesa-dev
libegl1-mesa-dev is not transitional or obsolete, see lintian/lintian!452.
* d/copyright: Add a missing short name field
* d/control.in: Standards-Version: 4.6.2 (no changes required)
-- Simon McVittie <smcv@debian.org> Sun, 29 Jan 2023 15:26:48 +0000
mutter (43.2-5ubuntu1) lunar; urgency=medium
* Merge with Debian. Remaining change:
- Add x11-Add-support-for-fractional-scaling-using-Randr.patch
-- Jeremy Bicha <jbicha@ubuntu.com> Mon, 23 Jan 2023 11:44:41 -0500
mutter (43.2-5) unstable; urgency=medium
[ Daniel van Vugt ]
* Update Support-Dynamic-triple-double-buffering.patch.
Fix tearing on monitors attached to secondary GPUs (LP: #1999216)
* Add patch for cursor-renderer-native to workaround broken arm64 drivers.
By forcing cursors to use dumb buffers. At least until Mesa gets fixed
for panfrost, vc4, v3d... (LP: #1988859)
-- Jeremy Bicha <jbicha@ubuntu.com> Mon, 23 Jan 2023 11:30:06 -0500
mutter (43.2-4ubuntu1) lunar; urgency=medium
* Merge with Debian. Remaining change:
......
......@@ -86,7 +86,7 @@ Build-Depends: debhelper-compat (= 13),
xwayland [linux-any],
zenity
Rules-Requires-Root: no
Standards-Version: 4.6.1
Standards-Version: 4.6.2
XS-Debian-Vcs-Git: https://salsa.debian.org/gnome-team/mutter.git -b debian/unstable
XS-Debian-Vcs-Browser: https://salsa.debian.org/gnome-team/mutter
Vcs-Git: https://salsa.debian.org/gnome-team/mutter.git -b ubuntu/master
......@@ -240,7 +240,6 @@ Description: Development files for the Mutter window manager
Package: libmutter-test-11
Section: libs
Architecture: linux-any
Multi-Arch: same
Depends: libmutter-11-0 (= ${binary:Version}),
mutter (= ${binary:Version}),
${misc:Depends},
......
......@@ -82,7 +82,7 @@ Build-Depends: debhelper-compat (= 13),
xwayland [linux-any],
zenity
Rules-Requires-Root: no
Standards-Version: 4.6.1
Standards-Version: 4.6.2
XS-Debian-Vcs-Git: https://salsa.debian.org/gnome-team/mutter.git -b debian/unstable
XS-Debian-Vcs-Browser: https://salsa.debian.org/gnome-team/mutter
Vcs-Git: https://salsa.debian.org/gnome-team/mutter.git -b ubuntu/master
......@@ -236,7 +236,6 @@ Description: Development files for the Mutter window manager
Package: libmutter-test-11
Section: libs
Architecture: linux-any
Multi-Arch: same
Depends: libmutter-11-0 (= ${binary:Version}),
mutter (= ${binary:Version}),
${misc:Depends},
......
......@@ -106,7 +106,7 @@ License: WRF-BSD-variant
Files:
src/tests/share/icc/vx239-calibrated.icc
Copyright: none
License:
License: free-of-known-restrictions
This profile is free of known copyright restrictions
Files:
......
# https://salsa.debian.org/lintian/lintian/-/merge_requests/452
depends-on-obsolete-package Depends: libegl1-mesa-dev => libegl-dev
From: Robert Mader <robert.mader@posteo.de>
Date: Fri, 16 Dec 2022 20:27:32 +0100
Subject: Revert "clutter/actor: Stop transitions in children when removing"
This reverts commit 74dd9037dc9a9a37e4df04c6f4776296683da6a0.
It apparently caused regressions for some extensions.
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2763
Origin: upstream, 43.3, commit:099cd549a9356fd04f86605edb9ae47bf520e6c1
---
clutter/clutter/clutter-actor-private.h | 3 +--
clutter/clutter/clutter-actor.c | 11 +++--------
clutter/clutter/clutter-stage.c | 2 +-
3 files changed, 5 insertions(+), 11 deletions(-)
diff --git a/clutter/clutter/clutter-actor-private.h b/clutter/clutter/clutter-actor-private.h
index 0dd0385..7647054 100644
--- a/clutter/clutter/clutter-actor-private.h
+++ b/clutter/clutter/clutter-actor-private.h
@@ -255,8 +255,7 @@ void _clutter_actor_attach_clone
void _clutter_actor_detach_clone (ClutterActor *actor,
ClutterActor *clone);
void _clutter_actor_queue_only_relayout (ClutterActor *actor);
-void clutter_actor_clear_stage_views_recursive (ClutterActor *actor,
- gboolean stop_transitions);
+void clutter_actor_clear_stage_views_recursive (ClutterActor *actor);
float clutter_actor_get_real_resource_scale (ClutterActor *actor);
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
index e52fbb5..75f86e4 100644
--- a/clutter/clutter/clutter-actor.c
+++ b/clutter/clutter/clutter-actor.c
@@ -4256,7 +4256,7 @@ clutter_actor_remove_child_internal (ClutterActor *self,
* cleared as the child and its children leave the actor tree.
*/
if (clear_stage_views && !CLUTTER_ACTOR_IN_DESTRUCTION (child))
- clutter_actor_clear_stage_views_recursive (child, stop_transitions);
+ clutter_actor_clear_stage_views_recursive (child);
if (emit_parent_set && !CLUTTER_ACTOR_IN_DESTRUCTION (child))
g_signal_emit (child, actor_signals[PARENT_SET], 0, self);
@@ -15402,12 +15402,8 @@ clear_stage_views_cb (ClutterActor *actor,
int depth,
gpointer user_data)
{
- gboolean stop_transitions = GPOINTER_TO_INT (user_data);
g_autoptr (GList) old_stage_views = NULL;
- if (stop_transitions)
- _clutter_actor_stop_transitions (actor);
-
actor->priv->needs_update_stage_views = TRUE;
old_stage_views = g_steal_pointer (&actor->priv->stage_views);
@@ -15433,14 +15429,13 @@ maybe_emit_stage_views_changed_cb (ClutterActor *actor,
}
void
-clutter_actor_clear_stage_views_recursive (ClutterActor *self,
- gboolean stop_transitions)
+clutter_actor_clear_stage_views_recursive (ClutterActor *self)
{
_clutter_actor_traverse (self,
CLUTTER_ACTOR_TRAVERSE_DEPTH_FIRST,
clear_stage_views_cb,
NULL,
- GINT_TO_POINTER (stop_transitions));
+ NULL);
_clutter_actor_traverse (self,
CLUTTER_ACTOR_TRAVERSE_DEPTH_FIRST,
maybe_emit_stage_views_changed_cb,
diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c
index d3ef4fd..7d24cf4 100644
--- a/clutter/clutter/clutter-stage.c
+++ b/clutter/clutter/clutter-stage.c
@@ -3112,7 +3112,7 @@ clutter_stage_peek_stage_views (ClutterStage *stage)
void
clutter_stage_clear_stage_views (ClutterStage *stage)
{
- clutter_actor_clear_stage_views_recursive (CLUTTER_ACTOR (stage), FALSE);
+ clutter_actor_clear_stage_views_recursive (CLUTTER_ACTOR (stage));
}
GList *
From: Aleksandr Melman <Alexmelman88@gmail.com>
Date: Tue, 20 Dec 2022 09:28:21 +0000
Subject: Update Russian translation
Origin: upstream, 43.3, commit:97dd7fb106ea2ea2e6a1d61a2693a6ae76359688
---
po/ru.po | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/po/ru.po b/po/ru.po
index d7df018..a04e40c 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -15,8 +15,8 @@ msgid ""
msgstr ""
"Project-Id-Version: metacity ru\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n"
-"POT-Creation-Date: 2022-09-02 11:33+0000\n"
-"PO-Revision-Date: 2022-09-02 14:38+0300\n"
+"POT-Creation-Date: 2022-11-16 18:02+0000\n"
+"PO-Revision-Date: 2022-12-09 15:12+0300\n"
"Last-Translator: Aleksandr Melman <Alexmelman88@gmail.com>\n"
"Language-Team: Русский <gnome-cyr@gnome.org>\n"
"Language: ru\n"
@@ -25,7 +25,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Poedit 3.1\n"
+"X-Generator: Poedit 3.2.2\n"
#: data/50-mutter-navigation.xml:6
msgid "Navigation"
@@ -189,7 +189,7 @@ msgstr "Показать командную строку"
#: data/50-mutter-wayland.xml:8
msgid "Restore the keyboard shortcuts"
-msgstr "Восстановление сочетаний клавиш"
+msgstr "Восстановить комбинации клавиш"
#: data/50-mutter-windows.xml:6
msgid "Windows"
@@ -579,7 +579,7 @@ msgstr ""
"над списком разрешенных значений, для отзыва приложений из системного списка "
"по умолчанию. Список системы по умолчанию включает следующие приложения: "
"\"@XWAYLAND_GRAB_DEFAULT_ACCESS_RULES@\" Пользователи могут нарушить "
-"существующий захват, используя конкретное сочетание клавиш, определенное "
+"существующий захват, используя конкретную комбинацию клавиш, определенную "
"клавишей привязки \"restore-shortcuts\"."
#: data/org.gnome.mutter.wayland.gschema.xml.in:116
@@ -625,11 +625,6 @@ msgctxt ""
msgid "%s %s"
msgstr "%s %s"
-#. Translators: this string will appear in Sysprof
-#: src/backends/meta-profiler.c:79
-msgid "Compositor"
-msgstr "Композитор"
-
#. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit
#: src/compositor/compositor.c:400
@@ -725,6 +720,11 @@ msgstr "Переключить монитор"
msgid "Show on-screen help"
msgstr "Показать справку на экране"
+#. Translators: this string will appear in Sysprof
+#: src/core/meta-profiler.c:80 src/core/meta-profiler.c:217
+msgid "Compositor"
+msgstr "Композитор"
+
#: src/core/mutter.c:74
msgid "Print version"
msgstr "Вывести версию"
@@ -742,7 +742,7 @@ msgstr "Рабочий стол %d"
msgid "Mutter was compiled without support for verbose mode"
msgstr "Mutter был скомпилирован без поддержки режима verbose"
-#: src/core/workspace.c:533
+#: src/core/workspace.c:536
msgid "Workspace switched"
msgstr "Рабочий стол переключен"
@@ -751,7 +751,7 @@ msgstr "Рабочий стол переключен"
msgid "Mode Switch: Mode %d"
msgstr "Переключатель режима: режим %d"
-#: src/x11/meta-x11-display.c:659
+#: src/x11/meta-x11-display.c:657
#, c-format
msgid ""
"Display “%s” already has a window manager; try using the --replace option to "
@@ -760,16 +760,16 @@ msgstr ""
"Дисплей «%s» уже использует менеджер окон; попробуйте использовать параметр "
"--replace, чтобы заменить текущий менеджер окон."
-#: src/x11/meta-x11-display.c:1053
+#: src/x11/meta-x11-display.c:1048
msgid "Failed to initialize GDK"
msgstr "Не удалось инициализировать GDK"
-#: src/x11/meta-x11-display.c:1080
+#: src/x11/meta-x11-display.c:1074
#, c-format
msgid "Failed to open X Window System display “%s”"
msgstr "Не удалось открыть дисплей X Window System «%s»"
-#: src/x11/meta-x11-display.c:1188
+#: src/x11/meta-x11-display.c:1187
#, c-format
msgid "Screen %d on display “%s” is invalid"
msgstr "Экран %d на дисплее «%s» недействителен"
From: Carlos Garnacho <carlosg@gnome.org>
Date: Fri, 16 Dec 2022 23:12:25 +0100
Subject: backends: Distinguish "no EDID" from "any EDID" mapping tablets
Since the Wacom panel rewrite, the "output" setting is handled as
a kind of tri-state for display-integrated tablets:
- If the setting is unset, the device is automatically mapped
to an output
- If the setting is set and not empty, the device is mapped to
the output defined by the EDID data
- If the setting is ['', '', ''], the device is mapped to the
span of all displays, like opaque tablets do.
This distinction for the unset setting fell through the cracks,
so both "Automatic" and "All displays" options were handled as
the former.
Add this distinction, so that display-integrated tablets can
be used like opaque tablets of sorts with no limitations.
(cherry picked from commit d15c6953d8590f41e3e8b4a97dc5f78dcedec716)
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2767
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2763
Origin: upstream, 43.3, commit:4b97f45a5ab0883c12d0a20359b36cc8dbf9d5e0
---
src/backends/meta-input-mapper.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/backends/meta-input-mapper.c b/src/backends/meta-input-mapper.c
index c5a9ee3..d99c6e8 100644
--- a/src/backends/meta-input-mapper.c
+++ b/src/backends/meta-input-mapper.c
@@ -463,6 +463,8 @@ guess_candidates (MetaInputMapper *mapper,
GList *monitors, *l;
gboolean builtin = FALSE;
gboolean integrated = TRUE;
+ gboolean automatic;
+ g_autoptr (GVariant) user_value = NULL;
#ifdef HAVE_LIBWACOM
if (clutter_input_device_get_device_type (input->device) != CLUTTER_TOUCHSCREEN_DEVICE)
@@ -484,6 +486,9 @@ guess_candidates (MetaInputMapper *mapper,
}
#endif
+ user_value = g_settings_get_user_value (input->settings, "output");
+ automatic = user_value == NULL;
+
monitors = meta_monitor_manager_get_monitors (mapper->monitor_manager);
for (l = monitors; l; l = l->next)
@@ -493,16 +498,16 @@ guess_candidates (MetaInputMapper *mapper,
g_assert (META_IS_MONITOR (l->data));
- if (integrated && match_edid (input, l->data, &edid_match))
+ if (automatic && integrated && match_edid (input, l->data, &edid_match))
match.score |= 1 << edid_match;
- if (integrated && match_size (input, l->data))
+ if (automatic && integrated && match_size (input, l->data))
match.score |= 1 << META_MATCH_SIZE;
- if (builtin && match_builtin (mapper, l->data))
+ if (automatic && builtin && match_builtin (mapper, l->data))
match.score |= 1 << META_MATCH_IS_BUILTIN;
- if (match_config (input, l->data))
+ if (!automatic && match_config (input, l->data))
match.score |= 1 << META_MATCH_CONFIG;
if (match.score > 0)
From: Carlos Garnacho <carlosg@gnome.org>
Date: Fri, 16 Dec 2022 22:51:51 +0100
Subject: backends: Do not require a physical device to update pointer
visibility
We may also want to update pointer visibility from emulated events
emitted directly on logical devices, as those we generate from XI_RawMotion
on X11 when the pointer is not over a compositor window.
(cherry picked from commit 60e0fe776d16ec78328675fc805b272a962d05c0)
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2344
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2766
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2763
Origin: upstream, 43.3, commit:d966808873c3384667b3bb11d5f3015482752dd2
---
src/backends/meta-backend.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c
index 606c0ed..3da49cd 100644
--- a/src/backends/meta-backend.c
+++ b/src/backends/meta-backend.c
@@ -1048,9 +1048,6 @@ update_pointer_visibility_from_event (MetaBackend *backend,
uint32_t time_ms;
device = clutter_event_get_source_device (event);
- if (clutter_input_device_get_device_mode (device) != CLUTTER_INPUT_MODE_PHYSICAL)
- return;
-
device_type = clutter_input_device_get_device_type (device);
time_ms = clutter_event_get_time (event);
From: Carlos Garnacho <carlosg@gnome.org>
Date: Fri, 16 Dec 2022 23:06:33 +0100
Subject: backends: Only apply EDID-based tablet mapping heuristic on
integrated devices
These are the ones attached to a display, thus they are the ones that may need
help from this heuristic. Non-integrated tablets (e.g. Intuos) will default to
the span of all monitors.
Fixes mapping of opaque tablets if a display-integrated tablet of the same
brand is also plugged in.
(cherry picked from commit ba25271408a32a2a73a82acc6e094a611001c9f0)
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2767
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2763
Origin: upstream, 43.3, commit:933c9937f4fec0b54bf8e73033f9126f18d434e6
---
src/backends/meta-input-mapper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/backends/meta-input-mapper.c b/src/backends/meta-input-mapper.c
index 56da701..c5a9ee3 100644
--- a/src/backends/meta-input-mapper.c
+++ b/src/backends/meta-input-mapper.c
@@ -493,7 +493,7 @@ guess_candidates (MetaInputMapper *mapper,
g_assert (META_IS_MONITOR (l->data));
- if (match_edid (input, l->data, &edid_match))
+ if (integrated && match_edid (input, l->data, &edid_match))
match.score |= 1 << edid_match;
if (integrated && match_size (input, l->data))
From: Carlos Garnacho <carlosg@gnome.org>
Date: Thu, 8 Dec 2022 20:01:33 +0100
Subject: backends/native: Initialize keyboard a11y on startup
The MetaSeatImpl is tracking changes on keyboard a11y setting changes,
but missing its initialization on startup.
(cherry picked from commit 4e0ffba5c13b0cbb7501976e878db2ddbb57a86b)
Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/1858
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2750
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2763
Origin: upstream, 43.3, commit:36549b45fd8f824580668654000897c86d451147
---
src/backends/native/meta-seat-impl.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/backends/native/meta-seat-impl.c b/src/backends/native/meta-seat-impl.c
index 96a7b22..886cfc4 100644
--- a/src/backends/native/meta-seat-impl.c
+++ b/src/backends/native/meta-seat-impl.c
@@ -2818,6 +2818,8 @@ input_thread (MetaSeatImpl *seat_impl)
{
MetaSeatImplPrivate *priv = meta_seat_impl_get_instance_private (seat_impl);
struct xkb_keymap *xkb_keymap;
+ MetaKbdA11ySettings kbd_a11y_settings;
+ MetaInputDeviceNative *keyboard_native;
g_main_context_push_thread_default (seat_impl->input_context);
@@ -2865,6 +2867,12 @@ input_thread (MetaSeatImpl *seat_impl)
seat_impl->has_tablet_switch = has_tablet_switch (seat_impl);
update_touch_mode (seat_impl);
+ keyboard_native = META_INPUT_DEVICE_NATIVE (seat_impl->core_keyboard);
+ meta_input_settings_get_kbd_a11y_settings (seat_impl->input_settings,
+ &kbd_a11y_settings);
+ meta_input_device_native_apply_kbd_a11y_settings_in_impl (keyboard_native,
+ &kbd_a11y_settings);
+
g_mutex_lock (&seat_impl->init_mutex);
seat_impl->input_thread_initialized = TRUE;
g_cond_signal (&seat_impl->init_cond);
From: Carlos Garnacho <carlosg@gnome.org>
Date: Fri, 23 Dec 2022 14:51:01 +0100
Subject: backends/native: Set up keyboard a11y when keyboards are plugged
Commit 4e0ffba5c attempted to fix initialization of keyboard a11y,
but mousekeys do attempt to create a virtual input device at a
time that it is too early to try to create one.
Defer this operation until keyboard devices are added, so that
we are ensured to already have the seat input thread set up.
(cherry-picked from commit 717ee78997144e8c8497d1a4e2570cfccc1288ce)
Fixes: 4e0ffba5c - backends/native: Initialize keyboard a11y on startup
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2778
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2763
Origin: upstream, 43.3, commit:01969a77ee33519dbd6159393eb43ee40e040cda
---
src/backends/native/meta-seat-impl.c | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/src/backends/native/meta-seat-impl.c b/src/backends/native/meta-seat-impl.c
index 886cfc4..23865c9 100644
--- a/src/backends/native/meta-seat-impl.c
+++ b/src/backends/native/meta-seat-impl.c
@@ -1733,6 +1733,18 @@ evdev_add_device (MetaSeatImpl *seat_impl,
if (is_touchscreen || is_tablet_switch || is_pointer)
update_touch_mode (seat_impl);
+ if (type == CLUTTER_KEYBOARD_DEVICE)
+ {
+ MetaKbdA11ySettings kbd_a11y_settings;
+ MetaInputDeviceNative *keyboard_native;
+
+ keyboard_native = META_INPUT_DEVICE_NATIVE (seat_impl->core_keyboard);
+ meta_input_settings_get_kbd_a11y_settings (seat_impl->input_settings,
+ &kbd_a11y_settings);
+ meta_input_device_native_apply_kbd_a11y_settings_in_impl (keyboard_native,
+ &kbd_a11y_settings);
+ }
+
return device;
}
@@ -2818,8 +2830,6 @@ input_thread (MetaSeatImpl *seat_impl)
{
MetaSeatImplPrivate *priv = meta_seat_impl_get_instance_private (seat_impl);
struct xkb_keymap *xkb_keymap;
- MetaKbdA11ySettings kbd_a11y_settings;
- MetaInputDeviceNative *keyboard_native;
g_main_context_push_thread_default (seat_impl->input_context);
@@ -2867,12 +2877,6 @@ input_thread (MetaSeatImpl *seat_impl)
seat_impl->has_tablet_switch = has_tablet_switch (seat_impl);
update_touch_mode (seat_impl);
- keyboard_native = META_INPUT_DEVICE_NATIVE (seat_impl->core_keyboard);
- meta_input_settings_get_kbd_a11y_settings (seat_impl->input_settings,
- &kbd_a11y_settings);
- meta_input_device_native_apply_kbd_a11y_settings_in_impl (keyboard_native,
- &kbd_a11y_settings);
-
g_mutex_lock (&seat_impl->init_mutex);
seat_impl->input_thread_initialized = TRUE;
g_cond_signal (&seat_impl->init_cond);
From: Robert Mader <robert.mader@posteo.de>
Date: Fri, 9 Dec 2022 20:16:00 +0100
Subject: clutter/actor: Make is_effectively_on_stage_view() match
has_mapped_clones()
The clone handling did not take certain cases into consideration,
thus copy over some extra checks from `has_mapped_clones()`,
ensuring consistent behavior.
(cherry picked from commit cef925c37f30431f51799ed2e5f3e18a8f2f9c1b)
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2671
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2763
Origin: upstream, 43.3, commit:007c4c8733ab2ab41e50aeab2201572d75135b05
---
clutter/clutter/clutter-actor.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
index da5ea14..e52fbb5 100644
--- a/clutter/clutter/clutter-actor.c
+++ b/clutter/clutter/clutter-actor.c
@@ -15719,11 +15719,21 @@ clutter_actor_is_effectively_on_stage_view (ClutterActor *self,
ClutterActor *clone = key;
GList *clone_views;
+ if (!CLUTTER_ACTOR_IS_MAPPED (clone))
+ continue;
+
clone_views = clutter_actor_peek_stage_views (clone);
if (g_list_find (clone_views, view))
return TRUE;
}
}
+
+ /* Clones will force-show their own source actor but not children of
+ * it, so if we're hidden and an actor up the hierarchy has a clone,
+ * we won't be visible.
+ */
+ if (!CLUTTER_ACTOR_IS_VISIBLE (actor))
+ return FALSE;
}
return FALSE;
From: Niels De Graef <nielsdegraef@gmail.com>
Date: Sun, 22 Jan 2023 18:46:01 +0100
Subject: clutter/stage-view: Properly chain up finalize
Fix a silly copy-paste mistake. Since `GObject` is the parent class,
chaining up to `dispose()` from within your `finalize()`
implementation just leads to a little memory leak and nothing worse.
(cherry picked from commit 768ec7b0c1128c43cd3a02b17aaccb552f9626c3)
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2799
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2763
Origin: upstream, 43.3, commit:35763ca0cc961bf0c18f14f9f8779f67f1a6c453
---
clutter/clutter/clutter-stage-view.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clutter/clutter/clutter-stage-view.c b/clutter/clutter/clutter-stage-view.c
index aa98e6a..14f2102 100644
--- a/clutter/clutter/clutter-stage-view.c
+++ b/clutter/clutter/clutter-stage-view.c
@@ -1476,7 +1476,7 @@ clutter_stage_view_finalize (GObject *object)
g_clear_object (&priv->framebuffer);
- G_OBJECT_CLASS (clutter_stage_view_parent_class)->dispose (object);
+ G_OBJECT_CLASS (clutter_stage_view_parent_class)->finalize (object);
}
static void
From: Carlos Garnacho <carlosg@gnome.org>
Date: Fri, 9 Dec 2022 18:40:47 +0100
Subject: core: Consider ClutterGrabs checking whether windows are interactive
There's 2 users of this, meta_display_sync_wayland_input_focus() which
does already perform these checks on its own, and MetaCursorTracker's
update_displayed_cursor() to determine whether it should go with the
Wayland client's cursor.
This second check should also consider the existing ClutterGrabs, so
make meta_display_windows_are_interactable() handle them for both
callers.
Fixes the cursor shown over windows while e.g. there are menus opened.
(cherry picked from commit 02d4a07822de2fb0002186df62bb0c8127555085)
Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/2553
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2754
Forwarded: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2763
Origin: upstream, 43.3, commit:6975a6684dfb2acd91332540d6e51238342827fa
---
src/core/display.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/core/display.c b/src/core/display.c
index 353a4fb..470ff80 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -1277,6 +1277,12 @@ meta_grab_op_is_moving (MetaGrabOp op)
gboolean
meta_display_windows_are_interactable (MetaDisplay *display)
{
+ MetaBackend *backend = meta_get_backend ();
+ MetaStage *stage = META_STAGE (meta_backend_get_stage (backend));
+
+ if (clutter_stage_get_grab_actor (CLUTTER_STAGE (stage)))
+ return FALSE;
+
switch (display->event_route)
{
case META_EVENT_ROUTE_NORMAL:
@@ -1437,8 +1443,6 @@ meta_display_sync_wayland_input_focus (MetaDisplay *display)
focus_window = NULL;
else if (is_no_focus_xwindow)
focus_window = NULL;
- else if (clutter_stage_get_grab_actor (CLUTTER_STAGE (stage)))
- focus_window = NULL;
else if (display->focus_window && display->focus_window->surface)
focus_window = display->focus_window;
else
......@@ -5,8 +5,8 @@ Subject: cursor-renderer-native: Workaround broken arm64 drivers
By forcing cursors to use dumb buffers. At least until Mesa gets fixed
for panfrost, vc4, v3d...
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2379
Closes: https://launchpad.net/bugs/1988859
Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/2379
Bug-Ubuntu: https://launchpad.net/bugs/1988859
---
src/backends/native/meta-cursor-renderer-native.c | 4 ++++
1 file changed, 4 insertions(+)
......
......@@ -2,7 +2,8 @@ From: Simon McVittie <smcv@debian.org>
Date: Tue, 20 Dec 2022 11:53:37 +0000
Subject: Mark xwayland test case as known to be flaky on 32-bit ARM
Mitigates: #1026445
Bug-Debian: https://bugs.debian.org/1026445
Forwarded: no
---
src/tests/meson.build | 1 +
1 file changed, 1 insertion(+)
......
......@@ -20,7 +20,7 @@ git merge --squash -e vanvugt/triple-buffering-v4
And then git commit but using all this as the header instead of what
git suggests. Also add Gbp-Pq: Topic debian
---
clutter/clutter/clutter-frame-clock.c | 167 ++++++--
clutter/clutter/clutter-frame-clock.c | 167 +++++--
clutter/clutter/clutter-frame-clock.h | 11 +-
clutter/clutter/clutter-frame-private.h | 1 +
clutter/clutter/clutter-frame.c | 13 +
......@@ -30,7 +30,7 @@ git suggests. Also add Gbp-Pq: Topic debian
cogl/cogl/cogl-onscreen.c | 8 +
src/backends/meta-stage-impl.c | 2 +
src/backends/native/meta-crtc-kms.c | 2 +-
src/backends/native/meta-cursor-renderer-native.c | 144 +------
src/backends/native/meta-cursor-renderer-native.c | 144 +-----
src/backends/native/meta-kms-crtc.c | 80 ++++
src/backends/native/meta-kms-crtc.h | 9 +
src/backends/native/meta-kms-impl-device-atomic.c | 9 +-
......@@ -41,11 +41,11 @@ git suggests. Also add Gbp-Pq: Topic debian
src/backends/native/meta-kms-update.c | 51 ++-
src/backends/native/meta-kms.c | 113 ++++-
src/backends/native/meta-kms.h | 12 +
src/backends/native/meta-onscreen-native.c | 495 ++++++++++++++--------
src/backends/native/meta-onscreen-native.c | 510 ++++++++++++++--------
src/backends/native/meta-onscreen-native.h | 2 +
src/backends/native/meta-renderer-native.c | 34 +-
src/tests/native-kms-render.c | 79 +++-
25 files changed, 922 insertions(+), 376 deletions(-)
25 files changed, 932 insertions(+), 381 deletions(-)
diff --git a/clutter/clutter/clutter-frame-clock.c b/clutter/clutter/clutter-frame-clock.c
index 4d441c3..ee05b36 100644
......@@ -472,7 +472,7 @@ index d3608e8..06c5f7f 100644
+
#endif /* CLUTTER_FRAME_H */
diff --git a/clutter/clutter/clutter-stage-view.c b/clutter/clutter/clutter-stage-view.c
index aa98e6a..fada3a6 100644
index 14f2102..914b91a 100644
--- a/clutter/clutter/clutter-stage-view.c
+++ b/clutter/clutter/clutter-stage-view.c
@@ -1252,8 +1252,9 @@ handle_frame_clock_frame (ClutterFrameClock *frame_clock,
......@@ -1540,7 +1540,7 @@ index bd9fe5c..e8fe2e4 100644
MetaKmsFlags flags,
GError **error);
diff --git a/src/backends/native/meta-onscreen-native.c b/src/backends/native/meta-onscreen-native.c
index a107a99..6c8245f 100644
index a107a99..79cf789 100644
--- a/src/backends/native/meta-onscreen-native.c
+++ b/src/backends/native/meta-onscreen-native.c
@@ -67,13 +67,12 @@ typedef struct _MetaOnscreenNativeSecondaryGpuState
......@@ -1553,8 +1553,9 @@ index a107a99..6c8245f 100644
struct {
MetaDrmBufferDumb *current_dumb_fb;
MetaDrmBufferDumb *dumb_fbs[2];
+ MetaDrmBuffer *source_fbs[2];
- MetaDrmBufferDumb *dumb_fbs[2];
+ MetaDrmBufferDumb *dumb_fbs[3];
+ MetaDrmBuffer *source_fbs[3];
} cpu;
gboolean noted_primary_gpu_copy_ok;
......@@ -1942,7 +1943,7 @@ index a107a99..6c8245f 100644
}
use_modifiers = meta_renderer_native_use_modifiers (renderer_native);
@@ -717,10 +707,10 @@ copy_shared_framebuffer_gpu (CoglOnscreen *onscreen,
@@ -717,25 +707,30 @@ copy_shared_framebuffer_gpu (CoglOnscreen *onscreen,
g_warning ("meta_drm_buffer_gbm_new_lock_front failed: %s",
error->message);
g_error_free (error);
......@@ -1955,8 +1956,24 @@ index a107a99..6c8245f 100644
}
static MetaDrmBufferDumb *
@@ -735,7 +725,7 @@ secondary_gpu_get_next_dumb_buffer (MetaOnscreenNativeSecondaryGpuState *seconda
return secondary_gpu_state->cpu.dumb_fbs[0];
secondary_gpu_get_next_dumb_buffer (MetaOnscreenNativeSecondaryGpuState *secondary_gpu_state)
{
MetaDrmBufferDumb *current_dumb_fb;
+ const int n_dumb_fbs = G_N_ELEMENTS (secondary_gpu_state->cpu.dumb_fbs);
+ int i;
current_dumb_fb = secondary_gpu_state->cpu.current_dumb_fb;
- if (current_dumb_fb == secondary_gpu_state->cpu.dumb_fbs[0])
- return secondary_gpu_state->cpu.dumb_fbs[1];
- else
- return secondary_gpu_state->cpu.dumb_fbs[0];
+ for (i = 0; i < n_dumb_fbs; i++)
+ {
+ if (current_dumb_fb == secondary_gpu_state->cpu.dumb_fbs[i])
+ return secondary_gpu_state->cpu.dumb_fbs[(i + 1) % n_dumb_fbs];
+ }
+
+ return secondary_gpu_state->cpu.dumb_fbs[0];
}
-static gboolean
......@@ -1964,7 +1981,7 @@ index a107a99..6c8245f 100644
copy_shared_framebuffer_primary_gpu (CoglOnscreen *onscreen,
MetaOnscreenNativeSecondaryGpuState *secondary_gpu_state,
const int *rectangles,
@@ -761,13 +751,13 @@ copy_shared_framebuffer_primary_gpu (CoglOnscreen *onscre
@@ -761,13 +756,13 @@ copy_shared_framebuffer_primary_gpu (CoglOnscreen *onscre
if (!secondary_gpu_state ||
secondary_gpu_state->egl_surface == EGL_NO_SURFACE)
......@@ -1980,7 +1997,7 @@ index a107a99..6c8245f 100644
buffer_dumb = secondary_gpu_get_next_dumb_buffer (secondary_gpu_state);
buffer = META_DRM_BUFFER (buffer_dumb);
@@ -790,7 +780,7 @@ copy_shared_framebuffer_primary_gpu (CoglOnscreen *onscre
@@ -790,7 +785,7 @@ copy_shared_framebuffer_primary_gpu (CoglOnscreen *onscre
{
meta_topic (META_DEBUG_KMS,
"Failed to create DMA buffer: %s", error->message);
......@@ -1989,7 +2006,7 @@ index a107a99..6c8245f 100644
}
dmabuf_fb =
@@ -808,7 +798,7 @@ copy_shared_framebuffer_primary_gpu (CoglOnscreen *onscre
@@ -808,7 +803,7 @@ copy_shared_framebuffer_primary_gpu (CoglOnscreen *onscre
meta_topic (META_DEBUG_KMS,
"Failed to create DMA buffer for blitting: %s",
error->message);
......@@ -1998,7 +2015,7 @@ index a107a99..6c8245f 100644
}
/* Limit the number of individual copies to 16 */
#define MAX_RECTS 16
@@ -821,7 +811,7 @@ copy_shared_framebuffer_primary_gpu (CoglOnscreen *onscre
@@ -821,7 +816,7 @@ copy_shared_framebuffer_primary_gpu (CoglOnscreen *onscre
&error))
{
g_object_unref (dmabuf_fb);
......@@ -2007,7 +2024,7 @@ index a107a99..6c8245f 100644
}
}
else
@@ -838,20 +828,19 @@ copy_shared_framebuffer_primary_gpu (CoglOnscreen *onscre
@@ -838,20 +833,19 @@ copy_shared_framebuffer_primary_gpu (CoglOnscreen *onscre
&error))
{
g_object_unref (dmabuf_fb);
......@@ -2031,7 +2048,7 @@ index a107a99..6c8245f 100644
copy_shared_framebuffer_cpu (CoglOnscreen *onscreen,
MetaOnscreenNativeSecondaryGpuState *secondary_gpu_state,
MetaRendererNativeGpuData *renderer_gpu_data)
@@ -903,17 +892,19 @@ copy_shared_framebuffer_cpu (CoglOnscreen *onscreen,
@@ -903,17 +897,19 @@ copy_shared_framebuffer_cpu (CoglOnscreen *onscreen,
cogl_object_unref (dumb_bitmap);
......@@ -2053,7 +2070,7 @@ index a107a99..6c8245f 100644
COGL_TRACE_BEGIN_SCOPED (MetaRendererNativeGpuStatePreSwapBuffers,
"Onscreen (secondary gpu pre-swap-buffers)");
@@ -939,10 +930,11 @@ update_secondary_gpu_state_pre_swap_buffers (CoglOnscreen *onscreen,
@@ -939,10 +935,11 @@ update_secondary_gpu_state_pre_swap_buffers (CoglOnscreen *onscreen,
/* prepare fallback */
G_GNUC_FALLTHROUGH;
case META_SHARED_FRAMEBUFFER_COPY_MODE_PRIMARY:
......@@ -2069,7 +2086,7 @@ index a107a99..6c8245f 100644
{
if (!secondary_gpu_state->noted_primary_gpu_copy_failed)
{
@@ -952,9 +944,9 @@ update_secondary_gpu_state_pre_swap_buffers (CoglOnscreen *onscreen,
@@ -952,9 +949,9 @@ update_secondary_gpu_state_pre_swap_buffers (CoglOnscreen *onscreen,
secondary_gpu_state->noted_primary_gpu_copy_failed = TRUE;
}
......@@ -2082,7 +2099,7 @@ index a107a99..6c8245f 100644
}
else if (!secondary_gpu_state->noted_primary_gpu_copy_ok)
{
@@ -966,11 +958,15 @@ update_secondary_gpu_state_pre_swap_buffers (CoglOnscreen *onscreen,
@@ -966,11 +963,15 @@ update_secondary_gpu_state_pre_swap_buffers (CoglOnscreen *onscreen,
break;
}
}
......@@ -2100,7 +2117,7 @@ index a107a99..6c8245f 100644
{
MetaOnscreenNative *onscreen_native = META_ONSCREEN_NATIVE (onscreen);
MetaRendererNative *renderer_native = onscreen_native->renderer_native;
@@ -983,6 +979,7 @@ update_secondary_gpu_state_post_swap_buffers (CoglOnscreen *onscreen,
@@ -983,6 +984,7 @@ update_secondary_gpu_state_post_swap_buffers (CoglOnscreen *onscreen,
if (secondary_gpu_state)
{
MetaRendererNativeGpuData *renderer_gpu_data;
......@@ -2108,7 +2125,7 @@ index a107a99..6c8245f 100644
renderer_gpu_data =
meta_renderer_native_get_gpu_data (renderer_native,
@@ -990,23 +987,30 @@ update_secondary_gpu_state_post_swap_buffers (CoglOnscreen *onscreen,
@@ -990,23 +992,30 @@ update_secondary_gpu_state_post_swap_buffers (CoglOnscreen *onscreen,
switch (renderer_gpu_data->secondary.copy_mode)
{
case META_SHARED_FRAMEBUFFER_COPY_MODE_ZERO:
......@@ -2147,7 +2164,7 @@ index a107a99..6c8245f 100644
}
}
@@ -1040,34 +1044,39 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
@@ -1040,34 +1049,39 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
CoglRendererEGL *cogl_renderer_egl = cogl_renderer->winsys;
MetaRendererNativeGpuData *renderer_gpu_data = cogl_renderer_egl->platform;
MetaRendererNative *renderer_native = renderer_gpu_data->renderer_native;
......@@ -2202,7 +2219,7 @@ index a107a99..6c8245f 100644
parent_class = COGL_ONSCREEN_CLASS (meta_onscreen_native_parent_class);
parent_class->swap_buffers_with_damage (onscreen,
@@ -1083,9 +1092,6 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
@@ -1083,9 +1097,6 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
switch (renderer_gpu_data->mode)
{
case META_RENDERER_NATIVE_MODE_GBM:
......@@ -2212,7 +2229,7 @@ index a107a99..6c8245f 100644
buffer_flags = META_DRM_BUFFER_FLAG_NONE;
if (!meta_renderer_native_use_modifiers (renderer_native))
buffer_flags |= META_DRM_BUFFER_FLAG_DISABLE_MODIFIERS;
@@ -1103,8 +1109,7 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
@@ -1103,8 +1114,7 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
return;
}
......@@ -2222,7 +2239,7 @@ index a107a99..6c8245f 100644
break;
case META_RENDERER_NATIVE_MODE_SURFACELESS:
g_assert_not_reached ();
@@ -1115,7 +1120,46 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
@@ -1115,7 +1125,46 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
#endif
}
......@@ -2270,7 +2287,7 @@ index a107a99..6c8245f 100644
/*
* If we changed EGL context, cogl will have the wrong idea about what is
@@ -1126,23 +1170,77 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
@@ -1126,23 +1175,77 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
if (egl_context_changed)
_cogl_winsys_egl_ensure_current (cogl_display);
......@@ -2352,7 +2369,7 @@ index a107a99..6c8245f 100644
return;
}
@@ -1160,9 +1258,6 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
@@ -1160,9 +1263,6 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
"Postponing primary plane composite update for CRTC %u (%s)",
meta_kms_crtc_get_id (kms_crtc),
meta_kms_device_get_path (kms_device));
......@@ -2362,7 +2379,7 @@ index a107a99..6c8245f 100644
return;
}
else if (meta_renderer_native_has_pending_mode_set (renderer_native))
@@ -1172,8 +1267,6 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
@@ -1172,8 +1272,6 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
meta_renderer_native_notify_mode_sets_reset (renderer_native);
meta_renderer_native_post_mode_set_updates (renderer_native);
......@@ -2371,7 +2388,7 @@ index a107a99..6c8245f 100644
return;
}
break;
@@ -1186,8 +1279,6 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
@@ -1186,8 +1284,6 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
{
meta_renderer_native_notify_mode_sets_reset (renderer_native);
meta_renderer_native_post_mode_set_updates (renderer_native);
......@@ -2380,7 +2397,7 @@ index a107a99..6c8245f 100644
return;
}
break;
@@ -1200,18 +1291,16 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
@@ -1200,18 +1296,16 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
meta_kms_device_get_path (kms_device));
flags = META_KMS_UPDATE_FLAG_NONE;
......@@ -2403,7 +2420,7 @@ index a107a99..6c8245f 100644
feedback_error = meta_kms_feedback_get_error (kms_feedback);
if (!g_error_matches (feedback_error,
G_IO_ERROR,
@@ -1298,6 +1387,18 @@ meta_onscreen_native_direct_scanout (CoglOnscreen *onscreen,
@@ -1298,6 +1392,18 @@ meta_onscreen_native_direct_scanout (CoglOnscreen *onscreen,
return FALSE;
}
......@@ -2422,7 +2439,7 @@ index a107a99..6c8245f 100644
renderer_gpu_data = meta_renderer_native_get_gpu_data (renderer_native,
render_gpu);
@@ -1350,7 +1451,9 @@ meta_onscreen_native_direct_scanout (CoglOnscreen *onscreen,
@@ -1350,7 +1456,9 @@ meta_onscreen_native_direct_scanout (CoglOnscreen *onscreen,
meta_kms_device_get_path (kms_device));
flags = META_KMS_UPDATE_FLAG_PRESERVE_ON_ERROR;
......@@ -2433,7 +2450,7 @@ index a107a99..6c8245f 100644
switch (meta_kms_feedback_get_result (kms_feedback))
{
case META_KMS_FEEDBACK_PASSED:
@@ -1364,7 +1467,6 @@ meta_onscreen_native_direct_scanout (CoglOnscreen *onscreen,
@@ -1364,7 +1472,6 @@ meta_onscreen_native_direct_scanout (CoglOnscreen *onscreen,
G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED))
break;
......@@ -2441,7 +2458,7 @@ index a107a99..6c8245f 100644
g_propagate_error (error, g_error_copy (feedback_error));
return FALSE;
}
@@ -1400,7 +1502,10 @@ meta_onscreen_native_finish_frame (CoglOnscreen *onscreen,
@@ -1400,7 +1507,10 @@ meta_onscreen_native_finish_frame (CoglOnscreen *onscreen,
g_autoptr (MetaKmsFeedback) kms_feedback = NULL;
const GError *error;
......@@ -2453,7 +2470,7 @@ index a107a99..6c8245f 100644
if (!kms_update)
{
clutter_frame_set_result (frame, CLUTTER_FRAME_RESULT_IDLE);
@@ -1415,9 +1520,9 @@ meta_onscreen_native_finish_frame (CoglOnscreen *onscreen,
@@ -1415,9 +1525,9 @@ meta_onscreen_native_finish_frame (CoglOnscreen *onscreen,
g_object_unref);
flags = META_KMS_UPDATE_FLAG_NONE;
......@@ -2466,7 +2483,7 @@ index a107a99..6c8245f 100644
switch (meta_kms_feedback_get_result (kms_feedback))
{
case META_KMS_FEEDBACK_PASSED:
@@ -1439,6 +1544,17 @@ meta_onscreen_native_finish_frame (CoglOnscreen *onscreen,
@@ -1439,6 +1549,17 @@ meta_onscreen_native_finish_frame (CoglOnscreen *onscreen,
}
}
......@@ -2484,7 +2501,7 @@ index a107a99..6c8245f 100644
static gboolean
should_surface_be_sharable (CoglOnscreen *onscreen)
{
@@ -1987,6 +2103,21 @@ pick_secondary_gpu_framebuffer_format_for_cpu (CoglOnscreen *onscreen)
@@ -1987,6 +2108,21 @@ pick_secondary_gpu_framebuffer_format_for_cpu (CoglOnscreen *onscreen)
return DRM_FORMAT_INVALID;
}
......@@ -2506,7 +2523,7 @@ index a107a99..6c8245f 100644
static gboolean
init_secondary_gpu_state_cpu_copy_mode (MetaRendererNative *renderer_native,
CoglOnscreen *onscreen,
@@ -2043,6 +2174,12 @@ init_secondary_gpu_state_cpu_copy_mode (MetaRendererNative *renderer_nat
@@ -2043,6 +2179,12 @@ init_secondary_gpu_state_cpu_copy_mode (MetaRendererNative *renderer_nat
}
secondary_gpu_state->cpu.dumb_fbs[i] = META_DRM_BUFFER_DUMB (dumb_buffer);
......@@ -2519,7 +2536,7 @@ index a107a99..6c8245f 100644
}
/*
@@ -2132,7 +2269,7 @@ meta_onscreen_native_new (MetaRendererNative *renderer_native,
@@ -2132,7 +2274,7 @@ meta_onscreen_native_new (MetaRendererNative *renderer_native,
onscreen_native->renderer_native = renderer_native;
onscreen_native->render_gpu = render_gpu;
onscreen_native->output = output;
......@@ -2528,7 +2545,7 @@ index a107a99..6c8245f 100644
return onscreen_native;
}
@@ -2153,7 +2290,6 @@ meta_onscreen_native_dispose (GObject *object)
@@ -2153,7 +2295,6 @@ meta_onscreen_native_dispose (GObject *object)
{
case META_RENDERER_NATIVE_MODE_GBM:
g_clear_object (&onscreen_native->gbm.next_fb);
......@@ -2536,7 +2553,7 @@ index a107a99..6c8245f 100644
break;
case META_RENDERER_NATIVE_MODE_SURFACELESS:
g_assert_not_reached ();
@@ -2181,9 +2317,12 @@ meta_onscreen_native_dispose (GObject *object)
@@ -2181,9 +2322,12 @@ meta_onscreen_native_dispose (GObject *object)
G_OBJECT_CLASS (meta_onscreen_native_parent_class)->dispose (object);
......
......@@ -12,10 +12,10 @@ Forwarded: not-needed
1 file changed, 1 deletion(-)
diff --git a/src/tests/meson.build b/src/tests/meson.build
index 3a9e1ba..9b6fae3 100644
index 6978a02..53401d4 100644
--- a/src/tests/meson.build
+++ b/src/tests/meson.build
@@ -440,7 +440,6 @@ stacking_tests = [
@@ -427,7 +427,6 @@ stacking_tests = [
'override-redirect',
'set-override-redirect-parent',
'set-parent-exported',
......
......@@ -31,10 +31,10 @@ index 0936863..ccc8a5c 100644
is_parallel: false,
)
diff --git a/src/tests/meson.build b/src/tests/meson.build
index d742e87..3a9e1ba 100644
index 2516382..6978a02 100644
--- a/src/tests/meson.build
+++ b/src/tests/meson.build
@@ -221,6 +221,7 @@ test_cases += [
@@ -208,6 +208,7 @@ test_cases += [
},
{
'name': 'stage-views',
......@@ -42,7 +42,7 @@ index d742e87..3a9e1ba 100644
'suite': 'compositor',
'sources': [ 'stage-view-tests.c', ],
},
@@ -411,7 +412,8 @@ if have_native_tests
@@ -398,7 +399,8 @@ if have_native_tests
)
test(test_case['name'], test_executable,
......