--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: unblock (pre-approval): mutter/43.4-1
- From: Simon McVittie <smcv@debian.org>
- Date: Mon, 10 Apr 2023 15:29:08 +0100
- Message-id: <ZDQdNNaOks1/HozL@tautology.pseudorandom.co.uk>
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: mutter@packages.debian.org
Control: affects -1 + src:mutter
I'd like to upload a new upstream bug fix release of mutter.
[ Reason ]
Catch up with upstream 43.4 bug fix release, and cherry-pick patches
that were already accepted for 43.5.
[ Impact ]
Multiple bug fixes and one translation update. Also transfer various
earlier bug fixes from Debian patches into part of the upstream source.
[ Tests ]
I used a previous release-candidate on my Intel laptop for several days
without noticing any regressions. The only change since that version is
the Abkhazian translation update.
Upstream's automated tests (at build-time and during autopkgtest) have the
same coverage and results as the version currently in bookworm.
[ Risks ]
Key package with high visibility in our default desktop environment, but
the changes are narrowly targeted.
[ Checklist ]
[x] all changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in testing
(filtered to exclude patch contents and translations)
[ Other info ]
This has only been tested together with the corresponding gnome-shell
update.
There is a remaining X11 focus issue that I'd like to be able to fix in
bookworm (#1032388) but upstream does not have a solution for it yet,
and the version already in testing has the same bug.
unblock mutter/43.4-1
debdiff *.dsc | filterdiff -p1 -x'po/*.po' -x'debian/patches/*.patch'
diffstat for mutter-43.3 mutter-43.4
NEWS | 13
clutter/clutter/clutter-text.c | 1
cogl/cogl/cogl-framebuffer.c | 2
cogl/cogl/cogl-onscreen.c | 18
cogl/cogl/cogl-onscreen.h | 3
debian/changelog | 23
debian/patches/Revert-x11-Do-not-move-X11-input-focus-during-grabs.patch | 87
debian/patches/Revert-x11-events-Do-not-update-focus-XWindow-during-grab.patch | 36
debian/patches/Update-Abkhazian-translation.patch | 4262 ++++++++++
debian/patches/color-device-Don-t-close-lcms-profile-on-error-from-cd_ic.patch | 52
debian/patches/color-device-Make-sure-lcms_context-is-not-NULL.patch | 47
debian/patches/core-Avoid-focusing-windows-on-map-during-grabs.patch | 35
debian/patches/debian/Support-Dynamic-triple-double-buffering.patch | 8
debian/patches/debian/meson-Do-not-mark-CI-test-tools-as-required.patch | 2
debian/patches/meson-add-back-default_driver-option.patch | 2
debian/patches/series | 10
debian/patches/wayland-Don-t-overwrite-surface-offsets.patch | 57
debian/patches/wayland-Skip-subsurface-desync-if-parent-is-NULL.patch | 35
debian/patches/x11-Avoid-updating-focus-on-wayland-compositor.patch | 47
debian/patches/x11-Ignore-_NET_ACTIVE_WINDOW-client-messages-while-grabb.patch | 45
meson.build | 2
po/ab.po | 4159 +++++++++
src/backends/meta-stage-impl.c | 14
src/wayland/meta-wayland-subsurface.c | 6
24 files changed, 8509 insertions(+), 457 deletions(-)
diff -Nru mutter-43.3/clutter/clutter/clutter-text.c mutter-43.4/clutter/clutter/clutter-text.c
--- mutter-43.3/clutter/clutter/clutter-text.c 2023-02-13 18:12:26.000000000 +0000
+++ mutter-43.4/clutter/clutter/clutter-text.c 2023-03-19 22:26:48.000000000 +0000
@@ -1826,7 +1826,6 @@
clutter_text_free_paint_volume (self);
- clutter_text_set_buffer (self, NULL);
g_free (priv->font_name);
g_clear_object (&priv->input_focus);
diff -Nru mutter-43.3/cogl/cogl/cogl-framebuffer.c mutter-43.4/cogl/cogl/cogl-framebuffer.c
--- mutter-43.3/cogl/cogl/cogl-framebuffer.c 2023-02-13 18:12:26.000000000 +0000
+++ mutter-43.4/cogl/cogl/cogl-framebuffer.c 2023-03-19 22:26:48.000000000 +0000
@@ -1695,8 +1695,6 @@
CoglFramebufferPrivate *priv =
cogl_framebuffer_get_instance_private (framebuffer);
- g_return_if_fail (buffers & COGL_BUFFER_BIT_COLOR);
-
cogl_framebuffer_driver_discard_buffers (priv->driver, buffers);
}
diff -Nru mutter-43.3/cogl/cogl/cogl-onscreen.c mutter-43.4/cogl/cogl/cogl-onscreen.c
--- mutter-43.3/cogl/cogl/cogl-onscreen.c 2023-04-10 14:26:00.000000000 +0100
+++ mutter-43.4/cogl/cogl/cogl-onscreen.c 2023-04-10 14:26:01.000000000 +0100
@@ -334,17 +334,16 @@
if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_SYNC_FRAME)))
cogl_framebuffer_finish (framebuffer);
+ cogl_framebuffer_discard_buffers (framebuffer,
+ COGL_BUFFER_BIT_DEPTH |
+ COGL_BUFFER_BIT_STENCIL);
+
klass->swap_buffers_with_damage (onscreen,
rectangles,
n_rectangles,
info,
user_data);
- cogl_framebuffer_discard_buffers (framebuffer,
- COGL_BUFFER_BIT_COLOR |
- COGL_BUFFER_BIT_DEPTH |
- COGL_BUFFER_BIT_STENCIL);
-
if (!_cogl_winsys_has_feature (COGL_WINSYS_FEATURE_SYNC_AND_COMPLETE_EVENT))
{
CoglFrameInfo *info;
@@ -395,17 +394,16 @@
COGL_WINSYS_FEATURE_SWAP_REGION */
g_return_if_fail (klass->swap_region);
+ cogl_framebuffer_discard_buffers (framebuffer,
+ COGL_BUFFER_BIT_DEPTH |
+ COGL_BUFFER_BIT_STENCIL);
+
klass->swap_region (onscreen,
rectangles,
n_rectangles,
info,
user_data);
- cogl_framebuffer_discard_buffers (framebuffer,
- COGL_BUFFER_BIT_COLOR |
- COGL_BUFFER_BIT_DEPTH |
- COGL_BUFFER_BIT_STENCIL);
-
if (!_cogl_winsys_has_feature (COGL_WINSYS_FEATURE_SYNC_AND_COMPLETE_EVENT))
{
CoglFrameInfo *info;
diff -Nru mutter-43.3/cogl/cogl/cogl-onscreen.h mutter-43.4/cogl/cogl/cogl-onscreen.h
--- mutter-43.3/cogl/cogl/cogl-onscreen.h 2023-02-13 18:12:26.000000000 +0000
+++ mutter-43.4/cogl/cogl/cogl-onscreen.h 2023-03-19 22:26:48.000000000 +0000
@@ -242,6 +242,9 @@
* This immediately queues state to OpenGL that will be used for the
* next swap.
* This needs to be called every frame.
+ *
+ * The expected values are independent of any viewport transforms applied to
+ * the framebuffer.
*/
COGL_EXPORT void
cogl_onscreen_queue_damage_region (CoglOnscreen *onscreen,
diff -Nru mutter-43.3/debian/changelog mutter-43.4/debian/changelog
--- mutter-43.3/debian/changelog 2023-03-06 11:35:23.000000000 +0000
+++ mutter-43.4/debian/changelog 2023-04-10 14:07:33.000000000 +0100
@@ -1,3 +1,24 @@
+mutter (43.4-1) unstable; urgency=medium
+
+ * Team upload
+ * New upstream release
+ - Improve performance by reducing memory bandwidth use on some GPUs
+ (GNOME/mutter!2091)
+ - Fix handling of rotated screens, for example on Pinephone Pro and
+ Pinebook Pro (GNOME/mutter#2557)
+ - Avoid warnings when destroying a ClutterText object with recent
+ GLib versions (GNOME/mutter#2566)
+ - Other changes were included in previous Debian packaging updates
+ * Drop most patches, applied upstream
+ * d/patches: Update to upstream gnome-43 branch commit 43.4-2-gba5cb0542
+ - Fix a crash with newer GStreamer gtkwaylandsink (GNOME/mutter!2917)
+ - Translation update: ab
+ * Remove #1032388 from previous changelog entry.
+ I hoped !2878 would fix both #1032388 and #1031945, but in fact it
+ only fixes #1031945.
+
+ -- Simon McVittie <smcv@debian.org> Mon, 10 Apr 2023 14:07:33 +0100
+
mutter (43.3-5) unstable; urgency=medium
* Team upload
@@ -10,7 +31,7 @@
d/p/x11-Ignore-_NET_ACTIVE_WINDOW-client-messages-while-grabb.patch,
d/p/core-Avoid-focusing-windows-on-map-during-grabs.patch:
Backport upstream merge request !2878, fixing X11 focus regressions
- (Closes: #1032388, #1031945)
+ (Closes: #1031945)
* d/p/tests-Use-a-more-interoperable-path-to-bash.patch:
Fix path to interpreter in x11-test.sh instead of disabling it
- d/p/tests-Disable-broken-test.patch: Drop patch, no longer needed
diff -Nru mutter-43.3/debian/patches/series mutter-43.4/debian/patches/series
--- mutter-43.3/debian/patches/series 2023-03-06 11:35:23.000000000 +0000
+++ mutter-43.4/debian/patches/series 2023-04-10 14:07:33.000000000 +0100
@@ -1,11 +1,5 @@
-wayland-Don-t-overwrite-surface-offsets.patch
-x11-Avoid-updating-focus-on-wayland-compositor.patch
-color-device-Make-sure-lcms_context-is-not-NULL.patch
-color-device-Don-t-close-lcms-profile-on-error-from-cd_ic.patch
-Revert-x11-Do-not-move-X11-input-focus-during-grabs.patch
-Revert-x11-events-Do-not-update-focus-XWindow-during-grab.patch
-x11-Ignore-_NET_ACTIVE_WINDOW-client-messages-while-grabb.patch
-core-Avoid-focusing-windows-on-map-during-grabs.patch
+wayland-Skip-subsurface-desync-if-parent-is-NULL.patch
+Update-Abkhazian-translation.patch
tests-Break-up-stacking-installed-tests-into-more-smaller.patch
tests-Use-a-more-interoperable-path-to-bash.patch
meson-add-back-default_driver-option.patch
diff -Nru mutter-43.3/meson.build mutter-43.4/meson.build
--- mutter-43.3/meson.build 2023-04-10 14:26:00.000000000 +0100
+++ mutter-43.4/meson.build 2023-04-10 14:26:01.000000000 +0100
@@ -1,5 +1,5 @@
project('mutter', 'c',
- version: '43.3',
+ version: '43.4',
meson_version: '>= 0.55.0',
license: 'GPLv2+'
)
diff -Nru mutter-43.3/NEWS mutter-43.4/NEWS
--- mutter-43.3/NEWS 2023-02-13 18:12:26.000000000 +0000
+++ mutter-43.4/NEWS 2023-03-19 22:26:48.000000000 +0000
@@ -1,3 +1,16 @@
+43.4
+====
+* Do not overwrite previously set offsets on attach [Matthias; !2843]
+* Fix Xwayland focus regressions [Carlos; !2848, !2878]
+* Memory handling fixes [Simon; !2877]
+* Reduce memory bandwidth usage in some GPUs [Erico; !2091]
+* Fix partial updates on offscreen rotated screens [Robert; !2860]
+* Fix a frequent warning when running with recent glib [Sebastian; !2790]
+
+Contributors:
+ Matthias Clasen, Carlos Garnacho, Sebastian Keller, Robert Mader,
+ Simon McVittie, Erico Nunes
+
43.3
====
* Skip resize effects for tiled windows during user grabs [Michael; !2579]
diff -Nru mutter-43.3/src/backends/meta-stage-impl.c mutter-43.4/src/backends/meta-stage-impl.c
--- mutter-43.3/src/backends/meta-stage-impl.c 2023-04-10 14:26:00.000000000 +0100
+++ mutter-43.4/src/backends/meta-stage-impl.c 2023-04-10 14:26:01.000000000 +0100
@@ -214,6 +214,8 @@
g_autofree int *freeme = NULL;
CoglFramebuffer *framebuffer;
CoglOnscreen *onscreen;
+ int fb_width;
+ int fb_height;
if (cairo_region_is_empty (damage_region))
return;
@@ -223,6 +225,8 @@
return;
onscreen = COGL_ONSCREEN (framebuffer);
+ fb_width = cogl_framebuffer_get_width (framebuffer);
+ fb_height = cogl_framebuffer_get_height (framebuffer);
n_rects = cairo_region_num_rectangles (damage_region);
@@ -234,12 +238,18 @@
for (i = 0; i < n_rects; i++)
{
cairo_rectangle_int_t rect;
- int height = cogl_framebuffer_get_height (framebuffer);
cairo_region_get_rectangle (damage_region, i, &rect);
+
+ clutter_stage_view_transform_rect_to_onscreen (stage_view,
+ &rect,
+ fb_width,
+ fb_height,
+ &rect);
+
damage[i * 4] = rect.x;
/* y coordinate needs to be flipped for OpenGL */
- damage[i * 4 + 1] = height - rect.y - rect.height;
+ damage[i * 4 + 1] = fb_height - rect.y - rect.height;
damage[i * 4 + 2] = rect.width;
damage[i * 4 + 3] = rect.height;
}
diff -Nru mutter-43.3/src/wayland/meta-wayland-subsurface.c mutter-43.4/src/wayland/meta-wayland-subsurface.c
--- mutter-43.3/src/wayland/meta-wayland-subsurface.c 2023-02-13 18:12:26.000000000 +0000
+++ mutter-43.4/src/wayland/meta-wayland-subsurface.c 2023-04-10 14:26:01.000000000 +0100
@@ -462,13 +462,15 @@
struct wl_resource *resource)
{
MetaWaylandSurface *surface = wl_resource_get_user_data (resource);
+ MetaWaylandSurface *parent;
gboolean is_parent_effectively_synchronized;
- if (!surface->sub.synchronous)
+ parent = surface->sub.parent;
+ if (!parent || !surface->sub.synchronous)
return;
is_parent_effectively_synchronized =
- is_surface_effectively_synchronized (surface->sub.parent);
+ is_surface_effectively_synchronized (parent);
if (!is_parent_effectively_synchronized)
meta_wayland_surface_apply_cached_state (surface);
--- End Message ---