rpms/xorg-x11-server/devel xorg-x11-server-1.1.0-convolution-filter-fix.patch, NONE, 1.1 xorg-x11-server-1.1.0-tfp-damage.patch, NONE, 1.1 xorg-server-1.0.99.2-spiffiffity.patch, 1.2, 1.3 xorg-x11-server.spec, 1.90, 1.91

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Jun 20 01:05:27 UTC 2006


Author: krh

Update of /cvs/dist/rpms/xorg-x11-server/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv996

Modified Files:
	xorg-server-1.0.99.2-spiffiffity.patch xorg-x11-server.spec 
Added Files:
	xorg-x11-server-1.1.0-convolution-filter-fix.patch 
	xorg-x11-server-1.1.0-tfp-damage.patch 
Log Message:
* Mon Jun 19 2006 Kristian Høgsberg <krh at redhat.com> - 1.1.0-18
- Add xorg-x11-server-1.1.0-convolution-filter-fix.patch and
  xorg-x11-server-1.1.0-tfp-damage.patch backported to make compiz go
  faster and make compiz shadows work.


xorg-x11-server-1.1.0-convolution-filter-fix.patch:
 fbcompose.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

--- NEW FILE xorg-x11-server-1.1.0-convolution-filter-fix.patch ---
--- a/fb/fbcompose.c
+++ b/fb/fbcompose.c
@@ -3647,8 +3647,8 @@ static void fbFetchTransformed(PicturePt
         xFixed *params = pict->filter_params;
         INT32 cwidth = xFixedToInt(params[0]);
         INT32 cheight = xFixedToInt(params[1]);
-        int xoff = params[0] >> 1;
-        int yoff = params[1] >> 1;
+        int xoff = (params[0] - xFixed1) >> 1;
+	int yoff = (params[1] - xFixed1) >> 1;
         params += 2;
         for (i = 0; i < width; ++i) {
 	    if (!mask || mask[i] & maskBits)
@@ -3695,6 +3695,11 @@ static void fbFetchTransformed(PicturePt
                     }
                 }
 
+		satot >>= 16;
+		srtot >>= 16;
+		sgtot >>= 16;
+		sbtot >>= 16;
+
                 if (satot < 0) satot = 0; else if (satot > 0xff) satot = 0xff;
                 if (srtot < 0) srtot = 0; else if (srtot > 0xff) srtot = 0xff;
                 if (sgtot < 0) sgtot = 0; else if (sgtot > 0xff) sgtot = 0xff;

xorg-x11-server-1.1.0-tfp-damage.patch:
 glxcmds.c     |    1 +
 glxdrawable.h |    4 +++-
 glxdri.c      |   52 ++++++++++++++++++++++++++++++++++++++++------------
 glxext.c      |    4 ++++
 4 files changed, 48 insertions(+), 13 deletions(-)

--- NEW FILE xorg-x11-server-1.1.0-tfp-damage.patch ---
? GL/glx/glxinterface.h
? doc/Xserver.1x
Index: GL/glx/glxcmds.c
===================================================================
RCS file: /cvs/xorg/xserver/xorg/GL/glx/glxcmds.c,v
retrieving revision 1.10.2.5
diff -u -p -r1.10.2.5 glxcmds.c
--- GL/glx/glxcmds.c	6 Mar 2006 00:11:40 -0000	1.10.2.5
+++ GL/glx/glxcmds.c	6 Mar 2006 00:38:37 -0000
@@ -1245,6 +1245,7 @@ int DoCreateGLXPixmap(__GLXclientState *
     pGlxPixmap->pGlxScreen = pGlxScreen;
     pGlxPixmap->pScreen = pScreen;
     pGlxPixmap->idExists = True;
+    pGlxPixmap->pDamage = NULL;
     pGlxPixmap->refcnt = 0;
 
     pGlxPixmap->modes = modes;
Index: GL/glx/glxdrawable.h
===================================================================
RCS file: /cvs/xorg/xserver/xorg/GL/glx/glxdrawable.h,v
retrieving revision 1.4.10.1
diff -u -p -r1.4.10.1 glxdrawable.h
--- GL/glx/glxdrawable.h	24 Feb 2006 05:49:33 -0000	1.4.10.1
+++ GL/glx/glxdrawable.h	6 Mar 2006 00:38:37 -0000
@@ -41,6 +41,8 @@
 **
 */
 
+#include <damage.h>
+
 typedef struct {
 
     DrawablePtr pDraw;
@@ -49,7 +51,7 @@ typedef struct {
     ScreenPtr pScreen;
     Bool idExists;
     int refcnt;
-
+    DamagePtr pDamage;
 } __GLXpixmap;
 
 struct __GLXdrawable {
Index: GL/glx/glxdri.c
===================================================================
RCS file: /cvs/xorg/xserver/xorg/GL/glx/Attic/glxdri.c,v
retrieving revision 1.1.2.11
diff -u -p -r1.1.2.11 glxdri.c
--- GL/glx/glxdri.c	6 Mar 2006 00:11:40 -0000	1.1.2.11
+++ GL/glx/glxdri.c	6 Mar 2006 00:38:37 -0000
@@ -334,13 +334,36 @@ __glXDRIbindTexImage(__GLXcontext *baseC
 		     int buffer,
 		     __GLXpixmap *glxPixmap)
 {
+    RegionPtr	pRegion;
     PixmapPtr	pixmap;
-    int		bpp;
-    Bool	npot;
+    int		bpp, xoff, yoff, width, height;
+    GLenum	target, format, type;
 
     pixmap = (PixmapPtr) glxPixmap->pDraw;
-    bpp = pixmap->drawable.depth >= 24 ? 4 : 2; /* XXX 24bpp packed, 8, etc */
-    
+    if (!glxPixmap->pDamage) {
+        glxPixmap->pDamage = DamageCreate(NULL, NULL, DamageReportNone,
+					  TRUE, glxPixmap->pScreen, NULL);
+	if (!glxPixmap->pDamage)
+            return BadAlloc;
+
+	DamageRegister ((DrawablePtr) pixmap, glxPixmap->pDamage);
+    } else {
+	pRegion = DamageRegion(glxPixmap->pDamage);
+	if (REGION_NIL(pRegion))
+	    return Success;
+    }
+
+    /* XXX 24bpp packed, 8, etc */
+    if (pixmap->drawable.depth >= 24) {
+	bpp = 4;
+	format = GL_BGRA;
+	type = GL_UNSIGNED_BYTE;
+    } else {
+	bpp = 2;
+	format = GL_RGB;
+	type = GL_UNSIGNED_SHORT_5_6_5;
+    }
+
     CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,
                                        pixmap->devKind / bpp) );
     CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,
@@ -351,22 +374,27 @@ __glXDRIbindTexImage(__GLXcontext *baseC
     if (pixmap->drawable.depth == 24)
         glxFillAlphaChannel(pixmap);
 
-    npot = !(glxCountBits(pixmap->drawable.width) == 1 &&
-             glxCountBits(pixmap->drawable.height) == 1) /* ||
-             strstr(CALL_GetString(GL_EXTENSIONS,
-                    "GL_ARB_texture_non_power_of_two")) */ ;
-    
+    if (!(glxCountBits(pixmap->drawable.width) == 1 &&
+	  glxCountBits(pixmap->drawable.height) == 1)
+	/* || strstr(CALL_GetString(GL_EXTENSIONS,
+	             "GL_ARB_texture_non_power_of_two")) */)
+	target = GL_TEXTURE_RECTANGLE_ARB;
+    else
+	target = GL_TEXTURE_2D;
+
     CALL_TexImage2D( GET_DISPATCH(),
-		     ( npot ? GL_TEXTURE_RECTANGLE_ARB : GL_TEXTURE_2D,
+		     ( target,
 		       0,
 		       bpp == 4 ? 4 : 3,
 		       pixmap->drawable.width,
 		       pixmap->drawable.height,
 		       0,
-		       bpp == 4 ? GL_BGRA : GL_RGB,
-		       bpp == 4 ? GL_UNSIGNED_BYTE : GL_UNSIGNED_SHORT_5_6_5,
+		       format,
+		       type,
 		       pixmap->devPrivate.ptr ) );
 
+    DamageEmpty(glxPixmap->pDamage);
+
     return Success;
 }
 
Index: GL/glx/glxext.c
===================================================================
RCS file: /cvs/xorg/xserver/xorg/GL/glx/glxext.c,v
retrieving revision 1.6.10.3
diff -u -p -r1.6.10.3 glxext.c
--- GL/glx/glxext.c	6 Mar 2006 00:11:40 -0000	1.6.10.3
+++ GL/glx/glxext.c	6 Mar 2006 00:38:37 -0000
@@ -140,6 +140,10 @@ static int PixmapGone(__GLXpixmap *pGlxP
 
     pGlxPixmap->idExists = False;
     if (!pGlxPixmap->refcnt) {
+	if (pGlxPixmap->pDamage) {
+	    DamageUnregister (pGlxPixmap->pDraw, pGlxPixmap->pDamage);
+	    DamageDestroy(pGlxPixmap->pDamage);
+	}
 	/*
 	** The DestroyPixmap routine should decrement the refcount and free
 	** only if it's zero.

xorg-server-1.0.99.2-spiffiffity.patch:
 compalloc.c  |    2 ++
 compwindow.c |    8 ++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

Index: xorg-server-1.0.99.2-spiffiffity.patch
===================================================================
RCS file: /cvs/dist/rpms/xorg-x11-server/devel/xorg-server-1.0.99.2-spiffiffity.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- xorg-server-1.0.99.2-spiffiffity.patch	14 Apr 2006 03:21:31 -0000	1.2
+++ xorg-server-1.0.99.2-spiffiffity.patch	20 Jun 2006 01:05:12 -0000	1.3
@@ -1,3 +1,10 @@
+This patch does two things: the first chunk against compalloc.c
+disables backfilling of windows created with bg=none, which otherwise
+would force a framebuffer readback.  The second chunk of the patch
+against compwindow.c disables damage notifications on move for
+manually redirected windows.  The automatic compositor needs damage
+notification on move, but a compositing manager doesn't.
+
 --- ./composite/compalloc.c.spiffiffity	2006-03-13 16:59:55.000000000 -0500
 +++ ./composite/compalloc.c	2006-04-12 16:37:50.000000000 -0400
 @@ -478,6 +478,7 @@


Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/dist/rpms/xorg-x11-server/devel/xorg-x11-server.spec,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -r1.90 -r1.91
--- xorg-x11-server.spec	20 Jun 2006 00:07:34 -0000	1.90
+++ xorg-x11-server.spec	20 Jun 2006 01:05:12 -0000	1.91
@@ -4,7 +4,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.1.0
-Release:   17
+Release:   18
 URL:       http://www.x.org
 License:   MIT/X11
 Group:     User Interface/X
@@ -22,10 +22,11 @@
 Patch6:    xserver-1.0.1-randr-sdk.patch
 Patch7:	   xorg-x11-server-1.1.0-ppc64-build-fix.patch
 
-
-# Spiffiffity feature/optimization patches.
+# Spiffiffity/compiz feature/optimization patches.
 Patch100:  xorg-server-1.0.99.2-spiffiffity.patch
 Patch101:  xorg-x11-server-1.1.0-gl-include-inferiors.patch
+Patch102:  xorg-x11-server-1.1.0-convolution-filter-fix.patch
+Patch103:  xorg-x11-server-1.1.0-tfp-damage.patch
 
 # Red Hat specific tweaking, not intended for upstream
 # XXX move these to the end of the list
@@ -294,6 +295,8 @@
 
 %patch100 -p0 -b .spiffiffity
 %patch101 -p0 -b .gl-include-inferiors
+%patch102 -p1 -b .convolution-filter-fix
+%patch103 -p0 -b .tfp-damage
 
 %patch1000 -p0 -b .redhat-die-ugly-pattern-die-die-die
 %patch1001 -p1 -b .Red-Hat-extramodes
@@ -605,6 +608,11 @@
 # -------------------------------------------------------------------
 
 %changelog
+* Mon Jun 19 2006 Kristian Høgsberg <krh at redhat.com> - 1.1.0-18
+- Add xorg-x11-server-1.1.0-convolution-filter-fix.patch and
+  xorg-x11-server-1.1.0-tfp-damage.patch backported to make compiz go
+  faster and make compiz shadows work.
+
 * Mon Jun 19 2006 Adam Jackson <ajackson at redhat.com> 1.1.0-17
 - Disable filling in monitor gamma info from EDID momentarily, since drivers
   will use that field to set the card's gamma ramp.




More information about the fedora-cvs-commits mailing list