xserver: Branch 'master'

Michel Daenzer daenzer at kemper.freedesktop.org
Thu Oct 4 02:44:48 PDT 2007


 exa/exa_accel.c |   11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

New commits:
diff-tree 3549a1282365e69e70c7c2546cfa7d25923cce31 (from 604ebb5a6de372e6a8a96e0ee997db7929126860)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Thu Oct 4 11:38:01 2007 +0200

    EXA: Disable 1x1 pixmap fill optimization for drivers that handle pixmaps.
    
    This reverts commit 1365aeff5499a051375e43a9fcbf54733ac93929.
    
    It defeated the optimization for drivers that don't provide a CreatePixmap
    hook. The optimization makes no sense for drivers that do anyway, so disable
    it for them completely.

diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index e10bf5c..8bbf036 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -1134,23 +1134,22 @@ exaFillRegionSolid (DrawablePtr	pDrawabl
 	(*pExaScr->info->DoneSolid) (pPixmap);
 	exaMarkSync(pDrawable->pScreen);
 
-	if (pDrawable->width == 1 && pDrawable->height == 1 &&
+	if (!(pExaScr->info->flags & EXA_HANDLES_PIXMAPS) &&
+	    pDrawable->width == 1 && pDrawable->height == 1 &&
 	    pDrawable->bitsPerPixel != 24) {
 	    ExaPixmapPriv(pPixmap);
 
-	    exaPrepareAccess(pDrawable, EXA_PREPARE_DEST);
 	    switch (pDrawable->bitsPerPixel) {
 	    case 32:
-		*(CARD32*)pPixmap->devPrivate.ptr = pixel;
+		*(CARD32*)pExaPixmap->sys_ptr = pixel;
 		break;
 	    case 16:
-		*(CARD16*)pPixmap->devPrivate.ptr = pixel;
+		*(CARD16*)pExaPixmap->sys_ptr = pixel;
 		break;
 	    case 8:
-		*(CARD8*)pPixmap->devPrivate.ptr = pixel;
+		*(CARD8*)pExaPixmap->sys_ptr = pixel;
 	    }
 
-	    exaFinishAccess(pDrawable, EXA_PREPARE_DEST);
 	    REGION_UNION(pScreen, &pExaPixmap->validSys, &pExaPixmap->validSys,
 			 pRegion);
 	}


More information about the xorg-commit mailing list