summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--exa/exa.c20
-rw-r--r--exa/exa_offscreen.c5
-rw-r--r--hw/xfree86/exa/examodule.c35
3 files changed, 53 insertions, 7 deletions
diff --git a/exa/exa.c b/exa/exa.c
index 75d5c0d69..4b96af815 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -623,6 +623,10 @@ exaDriverInit (ScreenPtr pScreen,
pExaScr->SavedDestroyPixmap = pScreen->DestroyPixmap;
pScreen->DestroyPixmap = exaDestroyPixmap;
+
+ LogMessage(X_INFO, "EXA(%d): Offscreen pixmap area of %d bytes\n",
+ pScreen->myNum,
+ pExaScr->info->memorySize - pExaScr->info->offScreenBase);
}
else
{
@@ -641,6 +645,22 @@ exaDriverInit (ScreenPtr pScreen,
}
}
+ LogMessage(X_INFO, "EXA(%d): Driver registered support for the following"
+ " operations:\n", pScreen->myNum);
+ assert(pScreenInfo->PrepareSolid != NULL);
+ LogMessage(X_INFO, " Solid\n");
+ assert(pScreenInfo->PrepareCopy != NULL);
+ LogMessage(X_INFO, " Copy\n");
+ if (pScreenInfo->PrepareComposite != NULL) {
+ LogMessage(X_INFO, " Composite (RENDER acceleration)\n");
+ }
+ if (pScreenInfo->UploadToScreen != NULL) {
+ LogMessage(X_INFO, " UploadToScreen\n");
+ }
+ if (pScreenInfo->DownloadFromScreen != NULL) {
+ LogMessage(X_INFO, " DownloadFromScreen\n");
+ }
+
return TRUE;
}
diff --git a/exa/exa_offscreen.c b/exa/exa_offscreen.c
index b55802e1e..9e0aa5d25 100644
--- a/exa/exa_offscreen.c
+++ b/exa/exa_offscreen.c
@@ -413,7 +413,6 @@ exaOffscreenInit (ScreenPtr pScreen)
if (!area)
return FALSE;
-
area->state = ExaOffscreenAvail;
area->base_offset = pExaScr->info->offScreenBase;
area->offset = area->base_offset;
@@ -422,10 +421,6 @@ exaOffscreenInit (ScreenPtr pScreen)
area->next = NULL;
area->score = 0;
-#if DEBUG_OFFSCREEN
- ErrorF("============ initial memory block of %d\n", area->size);
-#endif
-
/* Add it to the free areas */
pExaScr->info->offScreenAreas = area;
diff --git a/hw/xfree86/exa/examodule.c b/hw/xfree86/exa/examodule.c
index 0a7b361c8..4dce58fd8 100644
--- a/hw/xfree86/exa/examodule.c
+++ b/hw/xfree86/exa/examodule.c
@@ -47,11 +47,22 @@ static int exaXorgScreenPrivateIndex;
typedef enum {
EXAOPT_MIGRATION_HEURISTIC,
+ EXAOPT_NO_COMPOSITE,
+ EXAOPT_NO_UTS,
+ EXAOPT_NO_DFS,
} EXAOpts;
static const OptionInfoRec EXAOptions[] = {
- { EXAOPT_MIGRATION_HEURISTIC, "MigrationHeuristic", OPTV_ANYSTR, {0}, FALSE },
- { -1, NULL, OPTV_NONE, {0}, FALSE }
+ { EXAOPT_MIGRATION_HEURISTIC, "MigrationHeuristic",
+ OPTV_ANYSTR, {0}, FALSE },
+ { EXAOPT_NO_COMPOSITE, "EXANoComposite",
+ OPTV_BOOLEAN, {0}, FALSE },
+ { EXAOPT_NO_UTS, "EXANoUploadToScreen",
+ OPTV_BOOLEAN, {0}, FALSE },
+ { EXAOPT_NO_DFS, "EXANoDownloadFromScreen",
+ OPTV_BOOLEAN, {0}, FALSE },
+ { -1, NULL,
+ OPTV_NONE, {0}, FALSE }
};
static Bool
@@ -135,6 +146,26 @@ exaDDXDriverInit(ScreenPtr pScreen)
}
}
+ if (xf86IsOptionSet(pScreenPriv->options, EXAOPT_NO_COMPOSITE)) {
+ xf86DrvMsg(pScreen->myNum, X_INFO,
+ "EXA: Disabling Composite operation "
+ "(RENDER acceleration)\n");
+ pExaScr->info->CheckComposite = NULL;
+ pExaScr->info->PrepareComposite = NULL;
+ }
+
+ if (xf86IsOptionSet(pScreenPriv->options, EXAOPT_NO_UTS)) {
+ xf86DrvMsg(pScreen->myNum, X_INFO,
+ "EXA: Disabling UploadToScreen\n");
+ pExaScr->info->UploadToScreen = NULL;
+ }
+
+ if (xf86IsOptionSet(pScreenPriv->options, EXAOPT_NO_DFS)) {
+ xf86DrvMsg(pScreen->myNum, X_INFO,
+ "EXA: Disabling DownloadFromScreen\n");
+ pExaScr->info->DownloadFromScreen = NULL;
+ }
+
pScreen->devPrivates[exaXorgScreenPrivateIndex].ptr = pScreenPriv;
pScreenPriv->SavedEnableDisableFBAccess = pScrn->EnableDisableFBAccess;