packages (XORG_XSERVER_1_6): xorg-xserver-server/xorg-xserver-server.spec, ...

baggins baggins at pld-linux.org
Sat Oct 24 13:59:30 CEST 2009


Author: baggins                      Date: Sat Oct 24 11:59:30 2009 GMT
Module: packages                      Tag: XORG_XSERVER_1_6
---- Log message:
- workaround for slow composite with fglrx

---- Files affected:
packages/xorg-xserver-server:
   xorg-xserver-server.spec (1.195.2.3 -> 1.195.2.4) , xorg-xserver-server-backclear.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/xorg-xserver-server/xorg-xserver-server.spec
diff -u packages/xorg-xserver-server/xorg-xserver-server.spec:1.195.2.3 packages/xorg-xserver-server/xorg-xserver-server.spec:1.195.2.4
--- packages/xorg-xserver-server/xorg-xserver-server.spec:1.195.2.3	Mon Oct 12 08:24:58 2009
+++ packages/xorg-xserver-server/xorg-xserver-server.spec	Sat Oct 24 13:59:24 2009
@@ -32,6 +32,9 @@
 Patch5:		%{name}-xinerama-cursors.patch
 Patch6:		%{name}-less-acpi-brokenness.patch
 Patch7:		%{name}-ac.patch
+# https://bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/351186
+# harmless for non-fglrx
+Patch8:		%{name}-backclear.patch
 URL:		http://xorg.freedesktop.org/
 BuildRequires:	Mesa-libGL-devel >= 7.3
 # for glx headers
@@ -328,6 +331,7 @@
 %patch5 -p1
 %patch6 -p1
 %patch7 -p0
+%patch8 -p1
 
 # xserver uses pixman-1 API/ABI so put that explictly here
 sed -i -e 's#<pixman\.h#<pixman-1/pixman.h#g' ./fb/fb.h ./include/miscstruct.h ./render/picture.h
@@ -537,6 +541,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.195.2.4  2009/10/24 11:59:24  baggins
+- workaround for slow composite with fglrx
+
 Revision 1.195.2.3  2009/10/12 06:24:58  arekm
 - up to 1.6.5 (fixes DGA segfaults seen in 1.6.4)
 

================================================================
Index: packages/xorg-xserver-server/xorg-xserver-server-backclear.patch
diff -u /dev/null packages/xorg-xserver-server/xorg-xserver-server-backclear.patch:1.1
--- /dev/null	Sat Oct 24 13:59:30 2009
+++ packages/xorg-xserver-server/xorg-xserver-server-backclear.patch	Sat Oct 24 13:59:24 2009
@@ -0,0 +1,78 @@
+--- xorg-server-1.6.3/composite/compalloc.c	2009-07-07 13:48:57.000000000 -0400
++++ xorg-server-1.6.3-backclear/composite/compalloc.c	2009-09-09 11:55:03.000000000 -0400
+@@ -483,65 +483,33 @@
+     
+     pPixmap->screen_x = x;
+     pPixmap->screen_y = y;
+-    
+-    if (pParent->drawable.depth == pWin->drawable.depth)
+-    {
+-	GCPtr	pGC = GetScratchGC (pWin->drawable.depth, pScreen);
+-	
+-	/*
+-	 * Copy bits from the parent into the new pixmap so that it will
+-	 * have "reasonable" contents in case for background None areas.
+-	 */
+-	if (pGC)
+-	{
+-	    XID val = IncludeInferiors;
+-	    
+-	    ValidateGC(&pPixmap->drawable, pGC);
+-	    dixChangeGC (serverClient, pGC, GCSubwindowMode, &val, NULL);
+-	    (*pGC->ops->CopyArea) (&pParent->drawable,
+-				   &pPixmap->drawable,
+-				   pGC,
+-				   x - pParent->drawable.x,
+-				   y - pParent->drawable.y,
+-				   w, h, 0, 0);
+-	    FreeScratchGC (pGC);
+-	}
+-    }
+-    else
++
+     {
+-	PictFormatPtr	pSrcFormat = compWindowFormat (pParent);
+-	PictFormatPtr	pDstFormat = compWindowFormat (pWin);
++        /*
++         * Initialize new backing pixmap as fully transparent.
++         */
++        PictFormatPtr   pDstFormat = compWindowFormat (pWin);
+ 	XID		inferiors = IncludeInferiors;
+ 	int		error;
+ 
+-	PicturePtr	pSrcPicture = CreatePicture (None,
+-						     &pParent->drawable,
+-						     pSrcFormat,
+-						     CPSubwindowMode,
+-						     &inferiors,
+-						     serverClient, &error);
+-						    
+ 	PicturePtr	pDstPicture = CreatePicture (None,
+ 						     &pPixmap->drawable,
+ 						     pDstFormat,
+ 						     0, 0,
+ 						     serverClient, &error);
+ 
+-	if (pSrcPicture && pDstPicture)
++	if (pDstPicture)
+ 	{
+-	    CompositePicture (PictOpSrc,
+-			      pSrcPicture,
++	    CompositePicture (PictOpClear,
++			      pDstPicture,
+ 			      NULL,
+ 			      pDstPicture,
+-			      x - pParent->drawable.x,
+-			      y - pParent->drawable.y,
+-			      0, 0, 0, 0, w, h);
++			      0, 0, 0, 0, 0, 0, w, h);
+ 	}
+-	if (pSrcPicture)
+-	    FreePicture (pSrcPicture, 0);
+ 	if (pDstPicture)
+ 	    FreePicture (pDstPicture, 0);
+     }
++
+     return pPixmap;
+ }
+ 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/xorg-xserver-server/xorg-xserver-server.spec?r1=1.195.2.3&r2=1.195.2.4&f=u



More information about the pld-cvs-commit mailing list