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 <[email protected]> +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 _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
