summaryrefslogtreecommitdiff
path: root/hw/xfree86/exa
diff options
context:
space:
mode:
authorEric Anholt <anholt@FreeBSD.org>2006-06-18 19:12:15 -0700
committerEric Anholt <anholt@FreeBSD.org>2006-06-18 19:47:51 -0700
commit6aaf0e5b581b06fc73e56f863a26cd9d684eb9c0 (patch)
treeef780d7bd240d42a7016a7baf3ba5dc197c60c62 /hw/xfree86/exa
parent21ef7e17ef6dca177461c9438b9df707a4d664a2 (diff)
Add options to disable EXA acceleration for Composite/UTS/DFS, and always print
out how much memory EXA is managing for offscreen pixmaps.
Diffstat (limited to 'hw/xfree86/exa')
-rw-r--r--hw/xfree86/exa/examodule.c35
1 files changed, 33 insertions, 2 deletions
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;