mutter/mutter-fix-clipped-redraw.patch
Dominique Leuenberger c74824c8a6 Accepting request 1107929 from home:AZhou:branches:GNOME:Factory
- Add mutter-fix-clipped-redraw.patch: Previous refactor forget
  to check has_buffer_age, which leads into force full redraw and
  causes redraw issue with xterm on qemu. This patch fixes it.
  (bsc#1210744, glgo#GNOME/mutter!3221)
- Drop mutter-revert-window_draw_issues.patch: Proper fix is added.

OBS-URL: https://build.opensuse.org/request/show/1107929
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=461
2023-08-29 14:27:16 +00:00

38 lines
1.4 KiB
Diff

From afd7d5ad1b5587eb2c4dd978f0e577d9640354be Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Tue, 29 Aug 2023 11:21:50 +0200
Subject: [PATCH] backends: Check that buffer age is available when checking
damage history
This used to be the case before the refactor at commit 43cee4b6b6,
use_clipped_redraw would be unset before the larger check if has_buffer_age
was set, but clutter_damage_history_is_age_valid() was FALSE. This got
replaced by a check just on the latter, which will also be FALSE if
has_buffer_age is not present.
We have other means to achieve clipped redraws, so this slight change
culled all of them.
Fixes: 43cee4b6b6 ("stage-impl: Do clipped redraws when drawing offscreen")
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2771
---
src/backends/meta-stage-impl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/backends/meta-stage-impl.c b/src/backends/meta-stage-impl.c
index 26a7531296b..af88451d331 100644
--- a/src/backends/meta-stage-impl.c
+++ b/src/backends/meta-stage-impl.c
@@ -475,7 +475,7 @@ should_use_clipped_redraw (gboolean is_full_redraw,
if (COGL_IS_OFFSCREEN (framebuffer))
return TRUE;
- if (!buffer_has_valid_damage_history)
+ if (has_buffer_age && !buffer_has_valid_damage_history)
{
meta_topic (META_DEBUG_BACKEND,
"Invalid back buffer age: forcing full redraw");
--
GitLab