Dominique Leuenberger
c74824c8a6
- 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
38 lines
1.4 KiB
Diff
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
|
|
|