[pkg-fso-commits] [SCM] xf86-video-glamo, SMedia Glamo video driver for X.Org branch, master, updated. upstream/0.0.0+20090707.git98c012f7-57-g9918e08

Thomas White taw at bitwiz.org.uk
Fri Jan 8 13:24:55 UTC 2010


The following commit has been merged in the master branch:
commit 53a6c15a23012385c1bb153f5b36c252e77da168
Author: Thomas White <taw at bitwiz.org.uk>
Date:   Fri Aug 21 12:12:41 2009 +0100

    Don't unmap on FinishAccess, and return as quickly as possible on re-map
    
    Combined with mixed mode pixmaps, this brings the speed up to about where
    it should be.

diff --git a/src/glamo-kms-exa.c b/src/glamo-kms-exa.c
index 8779f5d..b6226a3 100644
--- a/src/glamo-kms-exa.c
+++ b/src/glamo-kms-exa.c
@@ -450,6 +450,12 @@ static Bool GlamoKMSExaPrepareAccess(PixmapPtr pPix, int index)
 		return TRUE;
 	}
 
+	/* Return as quickly as possible if we have a mapping already */
+	if ( driver_priv->bo->virtual ) {
+		pPix->devPrivate.ptr = driver_priv->bo->virtual;
+		return TRUE;
+	}
+
 	if ( glamo_bo_map(driver_priv->bo, 1) ) {
 		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
 				"%s: bo map failed\n", __FUNCTION__);
@@ -463,24 +469,7 @@ static Bool GlamoKMSExaPrepareAccess(PixmapPtr pPix, int index)
 
 static void GlamoKMSExaFinishAccess(PixmapPtr pPix, int index)
 {
-	ScreenPtr screen = pPix->drawable.pScreen;
-	ScrnInfoPtr pScrn = xf86Screens[screen->myNum];
-	struct glamo_exa_pixmap_priv *driver_priv;
-
-	driver_priv = exaGetPixmapDriverPrivate(pPix);
-	if (!driver_priv) {
-		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-				"%s: no driver private?\n", __FUNCTION__);
-		return;
-	}
-
-	if (!driver_priv->bo) {
-		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-				"%s: no buffer object?\n", __FUNCTION__);
-		return;
-	}
-
-	glamo_bo_unmap(driver_priv->bo);
+	/* Leave the mapping intact for fast restoration of access later */
 	pPix->devPrivate.ptr = NULL;
 }
 

-- 
xf86-video-glamo, SMedia Glamo video driver for X.Org



More information about the pkg-fso-commits mailing list