packages (DEVEL): mutter/mutter.spec, mutter/redraw.patch (NEW) - add fix f...
patrys
patrys at pld-linux.org
Thu Sep 15 01:26:18 CEST 2011
Author: patrys Date: Wed Sep 14 23:26:18 2011 GMT
Module: packages Tag: DEVEL
---- Log message:
- add fix for screen redrawing
---- Files affected:
packages/mutter:
mutter.spec (1.7.2.3 -> 1.7.2.4) , redraw.patch (NONE -> 1.1.2.1) (NEW)
---- Diffs:
================================================================
Index: packages/mutter/mutter.spec
diff -u packages/mutter/mutter.spec:1.7.2.3 packages/mutter/mutter.spec:1.7.2.4
--- packages/mutter/mutter.spec:1.7.2.3 Thu Sep 1 22:39:24 2011
+++ packages/mutter/mutter.spec Thu Sep 15 01:26:13 2011
@@ -7,6 +7,7 @@
Group: X11/Window Managers
Source0: http://ftp.gnome.org/pub/GNOME/sources/mutter/3.1/%{name}-%{version}.tar.bz2
# Source0-md5: 2ca4bc9de6c2da175fad31e614e5ad11
+Patch0: redraw.patch
URL: http://git.gnome.org/cgit/mutter
BuildRequires: GConf2-devel >= 1.2.0
BuildRequires: autoconf >= 2.50
@@ -63,6 +64,7 @@
%prep
%setup -q
+%patch0 -p1
%build
%{__intltoolize}
@@ -137,6 +139,9 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.7.2.4 2011/09/14 23:26:13 patrys
+- add fix for screen redrawing
+
Revision 1.7.2.3 2011/09/01 20:39:24 patrys
- 3.1.90.1
================================================================
Index: packages/mutter/redraw.patch
diff -u /dev/null packages/mutter/redraw.patch:1.1.2.1
--- /dev/null Thu Sep 15 01:26:18 2011
+++ packages/mutter/redraw.patch Thu Sep 15 01:26:13 2011
@@ -0,0 +1,44 @@
+From 2dc5693c60a2952fdb703098c5e50d80eb976f86 Mon Sep 17 00:00:00 2001
+From: Owen W. Taylor <otaylor at fishsoup.net>
+Date: Wed, 14 Sep 2011 15:27:54 +0000
+Subject: Don't lose application redraws
+
+Our usage of DamageReportBoundingBox was causing us to miss some
+updates when an area of the screen was drawn twice in rapid
+succession. Add an explicit XSync() call to force the server
+to flush rendering to the kernel before we draw.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=657071
+---
+diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
+index f85eb51..747da8a 100644
+--- a/src/compositor/meta-window-actor.c
++++ b/src/compositor/meta-window-actor.c
+@@ -2300,6 +2300,27 @@ meta_window_actor_pre_paint (MetaWindowActor *self)
+ meta_error_trap_push (display);
+ XDamageSubtract (xdisplay, priv->damage, None, None);
+ meta_error_trap_pop (display);
++
++ /* We need to make sure that any X drawing that happens before the
++ * XDamageSubtract() above is visible to subsequent GL rendering;
++ * the only standardized way to do this is EXT_x11_sync_object,
++ * which isn't yet widely available. For now, we count on details
++ * of Xorg and the open source drivers, and hope for the best
++ * otherwise.
++ *
++ * Xorg and open source driver specifics:
++ *
++ * The X server makes sure to flush drawing to the kernel before
++ * sending out damage events, but since we use DamageReportBoundingBox
++ * there may be drawing between the last damage event and the
++ * XDamageSubtract() that needs to be flushed as well.
++ *
++ * Xorg always makes sure that drawing is flushed to the kernel
++ * before writing events or responses to the client, so any round trip
++ * request at this point is sufficient to flush the GLX buffers.
++ */
++ XSync (xdisplay, False);
++
+ priv->received_damage = FALSE;
+ }
+
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mutter/mutter.spec?r1=1.7.2.3&r2=1.7.2.4&f=u
More information about the pld-cvs-commit
mailing list