diff --git a/exa/exa_migration.c b/exa/exa_migration.c index 06a4b93..8187f37 100644 --- a/exa/exa_migration.c +++ b/exa/exa_migration.c @@ -452,6 +452,7 @@ exaDoMigration (ExaMigrationPtr pixmaps, ScreenPtr pScreen = pixmaps[0].pPix->drawable.pScreen; ExaScreenPriv(pScreen); int i, j; + Bool op_can_accel = can_accel; /* If this debugging flag is set, check each pixmap for whether it is marked * as clean, and if so, actually check if that's the case. This should help @@ -526,6 +527,31 @@ exaDoMigration (ExaMigrationPtr pixmaps, * If not, then we migrate toward FB so that hopefully acceleration can * happen. */ + + if (op_can_accel && !can_accel && + pExaScr->info->UploadToScratch != NULL ) { + + /* + * Rely on uploadToScratch to make one system pinned + * pixmap available for the accelerator. + */ + + int pinnedDst = 0; + int pinnedSrc = 0; + for (i=0; i