[PATCH 2/2] EXA: Allow optimized migration to be enabled with mixed pixmaps.

Michel Dänzer michel at daenzer.net
Mon Dec 28 01:14:38 PST 2009


From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <daenzer at vmware.com>

This was always the intention, I only recently realized it wasn't the case
yet...

Signed-off-by: Michel Dänzer <daenzer at vmware.com>
---
 hw/xfree86/exa/examodule.c |   37 +++++++++++++++++++------------------
 1 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/hw/xfree86/exa/examodule.c b/hw/xfree86/exa/examodule.c
index 601288c..bcb6a40 100644
--- a/hw/xfree86/exa/examodule.c
+++ b/hw/xfree86/exa/examodule.c
@@ -122,24 +122,25 @@ exaDDXDriverInit(ScreenPtr pScreen)
     memcpy(pScreenPriv->options, EXAOptions, sizeof(EXAOptions));
     xf86ProcessOptions (pScrn->scrnIndex, pScrn->options, pScreenPriv->options);
 
-    if ((pExaScr->info->flags & EXA_OFFSCREEN_PIXMAPS) &&
-  	pExaScr->info->offScreenBase < pExaScr->info->memorySize)
-    {
-	char *heuristicName;
-
-	heuristicName = xf86GetOptValString (pScreenPriv->options,
-					     EXAOPT_MIGRATION_HEURISTIC);
-	if (heuristicName != NULL) {
-	    if (strcmp(heuristicName, "greedy") == 0)
-		pExaScr->migration = ExaMigrationGreedy;
-	    else if (strcmp(heuristicName, "always") == 0)
-		pExaScr->migration = ExaMigrationAlways;
-	    else if (strcmp(heuristicName, "smart") == 0)
-		pExaScr->migration = ExaMigrationSmart;
-	    else {
-		xf86DrvMsg (pScreen->myNum, X_WARNING, 
-			    "EXA: unknown migration heuristic %s\n",
-			    heuristicName);
+    if (pExaScr->info->flags & EXA_OFFSCREEN_PIXMAPS) {
+	if (!(pExaScr->info->flags & EXA_HANDLES_PIXMAPS) &&
+	    pExaScr->info->offScreenBase < pExaScr->info->memorySize) {
+	    char *heuristicName;
+
+	    heuristicName = xf86GetOptValString (pScreenPriv->options,
+						 EXAOPT_MIGRATION_HEURISTIC);
+	    if (heuristicName != NULL) {
+		if (strcmp(heuristicName, "greedy") == 0)
+		    pExaScr->migration = ExaMigrationGreedy;
+		else if (strcmp(heuristicName, "always") == 0)
+		    pExaScr->migration = ExaMigrationAlways;
+		else if (strcmp(heuristicName, "smart") == 0)
+		    pExaScr->migration = ExaMigrationSmart;
+		else {
+		    xf86DrvMsg (pScreen->myNum, X_WARNING, 
+				"EXA: unknown migration heuristic %s\n",
+				heuristicName);
+		}
 	    }
 	}
 
-- 
1.6.5.7



More information about the xorg-devel mailing list