xserver: Branch 'master'

Luc Verhaegen libv at kemper.freedesktop.org
Fri Nov 7 10:14:33 PST 2008


 hw/xfree86/xaa/xaa.h          |    4 ++++
 hw/xfree86/xaa/xaaInitAccel.c |    4 +++-
 hw/xfree86/xaa/xaawrap.h      |    4 ++--
 3 files changed, 9 insertions(+), 3 deletions(-)

New commits:
commit 59f9fb4b8c031df69b3592a26b77e744ff4a556e
Author: Luc Verhaegen <libv at skynet.be>
Date:   Fri Nov 7 19:11:11 2008 +0100

    XAA PixmapOps: Sync before accessing unwrapped callbacks.
    
    When using any XAAPixmapOps, we call into unknown but freshly
    unwrapped callbacks (like fb ones). Unlike the XAA*Fallback calls,
    we did so without syncing first, exposing us to all kinds of
    synchronisation issues.
    
    I believe that the rendering errors appeared now because *PaintWindow
    vanished (e4d11e58), and we just use miPaintWindow instead. This
    takes a less direct route to the hw and ends up at
    PolyFillRectPixmap, which very often left drawing artifacts.
    
    We now sync accordingly, and no longer get the rendering artifacts i
    was methodically reproducing on radeonhd, radeon, unichrome...
    
    Also, in order to allow driver authors to remove extensive syncing
    or flushing to hide this issue, create XAA_VERSION_ defines, put
    them in xaa.h and bump the patchlevel.
    
    (novell bug #435791)

diff --git a/hw/xfree86/xaa/xaa.h b/hw/xfree86/xaa/xaa.h
index 1dc7ed2..d6ccc31 100644
--- a/hw/xfree86/xaa/xaa.h
+++ b/hw/xfree86/xaa/xaa.h
@@ -2,6 +2,10 @@
 #ifndef _XAA_H
 #define _XAA_H
 
+#define XAA_VERSION_MAJOR   1
+#define XAA_VERSION_MINOR   2
+#define XAA_VERSION_RELEASE 1
+
 /*
 
    ******** OPERATION SPECIFIC FLAGS *********
diff --git a/hw/xfree86/xaa/xaaInitAccel.c b/hw/xfree86/xaa/xaaInitAccel.c
index 53795f0..0672bcf 100644
--- a/hw/xfree86/xaa/xaaInitAccel.c
+++ b/hw/xfree86/xaa/xaaInitAccel.c
@@ -100,7 +100,9 @@ static XF86ModuleVersionInfo xaaVersRec =
 	MODINFOSTRING1,
 	MODINFOSTRING2,
 	XORG_VERSION_CURRENT,
-	1, 2, 0,
+	XAA_VERSION_MAJOR,
+	XAA_VERSION_MINOR,
+	XAA_VERSION_RELEASE,
 	ABI_CLASS_VIDEODRV,		/* requires the video driver ABI */
 	ABI_VIDEODRV_VERSION,
 	MOD_CLASS_NONE,
diff --git a/hw/xfree86/xaa/xaawrap.h b/hw/xfree86/xaa/xaawrap.h
index 38c97d7..857dbc3 100644
--- a/hw/xfree86/xaa/xaawrap.h
+++ b/hw/xfree86/xaa/xaawrap.h
@@ -48,8 +48,8 @@
     XAAPixmapPtr pixPriv = XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pDraw));\
     GCFuncs *oldFuncs = pGC->funcs;\
     pGC->funcs = pGCPriv->wrapFuncs;\
-    pGC->ops = pGCPriv->wrapOps
-
+    pGC->ops = pGCPriv->wrapOps; \
+    SYNC_CHECK(pGC)
     
 #define XAA_PIXMAP_OP_EPILOGUE(pGC)\
     pGCPriv->wrapOps = pGC->ops;\


More information about the xorg-commit mailing list