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....@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.

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 <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);


-- 
Sebastian Ramacher

Reply via email to