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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to