Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mutter for openSUSE:Factory checked 
in at 2023-08-23 14:56:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mutter (Old)
 and      /work/SRC/openSUSE:Factory/.mutter.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mutter"

Wed Aug 23 14:56:42 2023 rev:208 rq:1105218 version:44.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/mutter/mutter.changes    2023-08-22 
08:55:26.398478268 +0200
+++ /work/SRC/openSUSE:Factory/.mutter.new.1766/mutter.changes  2023-08-23 
14:56:50.669907585 +0200
@@ -1,0 +2,7 @@
+Tue Aug 22 09:24:36 UTC 2023 - Dominique Leuenberger <dims...@opensuse.org>
+
+- Add mutter-revert-window_draw_issues.patch: Revert commit
+  43cee4b6:  Do clipped redraws when drawing offscreen
+  (boo#1210744, glgo#GNOME/mutter#2771).
+
+-------------------------------------------------------------------

New:
----
  mutter-revert-window_draw_issues.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mutter.spec ++++++
--- /var/tmp/diff_new_pack.vn5WuX/_old  2023-08-23 14:56:51.829909659 +0200
+++ /var/tmp/diff_new_pack.vn5WuX/_new  2023-08-23 14:56:51.837909673 +0200
@@ -36,6 +36,8 @@
 Patch2:         mutter-window-actor-Special-case-shaped-Java-windows.patch
 # PATCH-FIX-UPSTREAM mutter-crash-meta_context_terminate.patch bsc#1199382 
glgo#GNOME/mutter#2267 xw...@suse.com -- Fix SIGSEGV in meta_context_terminate
 Patch3:         mutter-crash-meta_context_terminate.patch
+# PATCH-FIX-UPSTREAM Add mutter-revert-window_draw_issues.patch 1210744 
glgo#GNOME/mutter#2771 -- Revert commit 43cee4b6:  Do clipped redraws when 
drawing offscreen
+Patch4:         mutter-revert-window_draw_issues.patch
 
 ## SLE-only patches start at 1000
 # PATCH-FEATURE-SLE mutter-SLE-bell.patch FATE#316042 bnc#889218 
idon...@suse.com -- make audible bell work out of the box.
@@ -146,6 +148,7 @@
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
 %endif
 # SLE-only patches and translations.
 %if 0%{?sle_version}

++++++ mutter-revert-window_draw_issues.patch ++++++
>From ae1432062ad1dc209dbd2cb8fc1e835d447d226f Mon Sep 17 00:00:00 2001
From: Domninique Leuenberger <dims...@opensuse.org>
Date: Tue, 22 Aug 2023 05:31:14 -0400
Subject: [PATCH] Revert "stage-impl: Do clipped redraws when drawing
 offscreen"

This reverts commit 43cee4b6b6bef88e74ef877439aa5696c95612b7.
---
 src/backends/meta-stage-impl.c | 72 ++++++++++------------------------
 1 file changed, 21 insertions(+), 51 deletions(-)

diff --git a/src/backends/meta-stage-impl.c b/src/backends/meta-stage-impl.c
index db94c7e4..31e07d96 100644
--- a/src/backends/meta-stage-impl.c
+++ b/src/backends/meta-stage-impl.c
@@ -454,46 +454,6 @@ transform_swap_region_to_onscreen (ClutterStageView 
*stage_view,
   return transformed_region;
 }
 
-static gboolean
-should_use_clipped_redraw (gboolean              is_full_redraw,
-                           gboolean              has_buffer_age,
-                           gboolean              
buffer_has_valid_damage_history,
-                           ClutterDrawDebugFlag  paint_debug_flags,
-                           CoglFramebuffer      *framebuffer,
-                           ClutterStageWindow   *stage_window)
-{
-  gboolean can_blit_sub_buffer;
-  gboolean can_use_clipped_redraw;
-  gboolean is_warmed_up;
-
-  if (is_full_redraw)
-    return FALSE;
-
-  if (paint_debug_flags & CLUTTER_DEBUG_DISABLE_CLIPPED_REDRAWS)
-    return FALSE;
-
-  if (COGL_IS_OFFSCREEN (framebuffer))
-    return TRUE;
-
-  if (!buffer_has_valid_damage_history)
-    {
-      meta_topic (META_DEBUG_BACKEND,
-                  "Invalid back buffer age: forcing full redraw");
-      return FALSE;
-    }
-
-  can_blit_sub_buffer =
-    cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_REGION);
-  can_use_clipped_redraw =
-    _clutter_stage_window_can_clip_redraws (stage_window) &&
-    (can_blit_sub_buffer || has_buffer_age);
-  /* Some drivers struggle to get going and produce some junk
-   * frames when starting up... */
-  is_warmed_up =
-    cogl_onscreen_get_frame_counter (COGL_ONSCREEN (framebuffer)) > 3;
-  return is_warmed_up && can_use_clipped_redraw;
-}
-
 static void
 meta_stage_impl_redraw_view_primary (MetaStageImpl    *stage_impl,
                                      ClutterStageView *stage_view,
@@ -505,8 +465,8 @@ meta_stage_impl_redraw_view_primary (MetaStageImpl    
*stage_impl,
   CoglFramebuffer *onscreen = clutter_stage_view_get_onscreen (stage_view);
   cairo_rectangle_int_t view_rect;
   gboolean is_full_redraw;
-  gboolean use_clipped_redraw;
-  gboolean buffer_has_valid_damage_history = FALSE;
+  gboolean use_clipped_redraw = TRUE;
+  gboolean can_blit_sub_buffer;
   gboolean has_buffer_age;
   gboolean swap_with_damage;
   cairo_region_t *redraw_clip;
@@ -524,6 +484,10 @@ meta_stage_impl_redraw_view_primary (MetaStageImpl    
*stage_impl,
   fb_width = cogl_framebuffer_get_width (fb);
   fb_height = cogl_framebuffer_get_height (fb);
 
+  can_blit_sub_buffer =
+    COGL_IS_ONSCREEN (onscreen) &&
+    cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_REGION);
+
   has_buffer_age =
     COGL_IS_ONSCREEN (onscreen) &&
     cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_BUFFER_AGE);
@@ -541,20 +505,26 @@ meta_stage_impl_redraw_view_primary (MetaStageImpl    
*stage_impl,
   if (has_buffer_age)
     {
       buffer_age = cogl_onscreen_get_buffer_age (COGL_ONSCREEN (onscreen));
-      buffer_has_valid_damage_history =
-        clutter_damage_history_is_age_valid (damage_history,
-                                             buffer_age);
+      if (!clutter_damage_history_is_age_valid (damage_history, buffer_age))
+        {
+          meta_topic (META_DEBUG_BACKEND,
+                      "Invalid back buffer(age=%d): forcing full redraw",
+                      buffer_age);
+          use_clipped_redraw = FALSE;
+        }
     }
 
   meta_get_clutter_debug_flags (NULL, &paint_debug_flags, NULL);
 
   use_clipped_redraw =
-    should_use_clipped_redraw (is_full_redraw,
-                               has_buffer_age,
-                               buffer_has_valid_damage_history,
-                               paint_debug_flags,
-                               onscreen,
-                               stage_window);
+    use_clipped_redraw &&
+    !(paint_debug_flags & CLUTTER_DEBUG_DISABLE_CLIPPED_REDRAWS) &&
+    _clutter_stage_window_can_clip_redraws (stage_window) &&
+    (can_blit_sub_buffer || has_buffer_age) &&
+    !is_full_redraw &&
+    /* some drivers struggle to get going and produce some junk
+     * frames when starting up... */
+    cogl_onscreen_get_frame_counter (COGL_ONSCREEN (onscreen)) > 3;
 
   if (use_clipped_redraw)
     {
-- 
2.41.0

Reply via email to