Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock X-Debbugs-Cc: mut...@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 <s...@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);