Bug#1034167: unblock (pre-approval): mutter/43.4-1
Control: tags -1 moreinfo confirmed
On 2023-04-10 15:29:08 +0100, Simon McVittie wrote:
> 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.
Please go ahead and remove the moreinfo tag once the version is
available in unstable.
Cheers
>
> [ 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);
--
Sebastian Ramacher
Reply to: