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