diff options
author | Michel Dänzer <michel@tungstengraphics.com> | 2007-11-07 18:56:45 +0100 |
---|---|---|
committer | Michel Dänzer <michel@tungstengraphics.com> | 2007-11-07 19:01:24 +0100 |
commit | 9bee1c6912817f65bbb8cf4078f0ad016d9d51cb (patch) | |
tree | 30b350c0947fbeadf7bc52c1ed40a4b8c7f2b7e7 /hw/xfree86/exa | |
parent | e717409bae355df9a617a226f12fbb8c54ae77e5 (diff) |
EXA: Disable problematic optimization of dest pixmap migration by default.
Also add some code comments about these optimizations.
Diffstat (limited to 'hw/xfree86/exa')
-rw-r--r-- | hw/xfree86/exa/exa.man.pre | 6 | ||||
-rw-r--r-- | hw/xfree86/exa/examodule.c | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/hw/xfree86/exa/exa.man.pre b/hw/xfree86/exa/exa.man.pre index 31e1cfe34..14859bc8f 100644 --- a/hw/xfree86/exa/exa.man.pre +++ b/hw/xfree86/exa/exa.man.pre @@ -31,6 +31,12 @@ Disables acceleration of downloading of pixmap data from the framebuffer. Not usable with drivers which rely on DownloadFromScreen succeeding. Default: No. .TP +.BI "Option \*qEXAOptimizeMigration\*q \*q" boolean \*q +Enables an additional optimization for migration of destination pixmaps. This +may improve performance in some cases (e.g. when switching virtual desktops with +no compositing manager) but causes corruption in others (e.g. when starting +compiz). Default: No. +.TP .BI "Option \*qMigrationHeuristic\*q \*q" anystr \*q Chooses an alternate pixmap migration heuristic, for debugging purposes. The default is intended to be the best performing one for general use, though others diff --git a/hw/xfree86/exa/examodule.c b/hw/xfree86/exa/examodule.c index 4dce58fd8..ceead8219 100644 --- a/hw/xfree86/exa/examodule.c +++ b/hw/xfree86/exa/examodule.c @@ -50,6 +50,7 @@ typedef enum { EXAOPT_NO_COMPOSITE, EXAOPT_NO_UTS, EXAOPT_NO_DFS, + EXAOPT_OPTIMIZE_MIGRATION } EXAOpts; static const OptionInfoRec EXAOptions[] = { @@ -61,6 +62,8 @@ static const OptionInfoRec EXAOptions[] = { OPTV_BOOLEAN, {0}, FALSE }, { EXAOPT_NO_DFS, "EXANoDownloadFromScreen", OPTV_BOOLEAN, {0}, FALSE }, + { EXAOPT_OPTIMIZE_MIGRATION, "EXAOptimizeMigration", + OPTV_BOOLEAN, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE } }; @@ -144,6 +147,11 @@ exaDDXDriverInit(ScreenPtr pScreen) heuristicName); } } + + pExaScr->optimize_migration = + xf86ReturnOptValBool(pScreenPriv->options, + EXAOPT_OPTIMIZE_MIGRATION, + FALSE); } if (xf86IsOptionSet(pScreenPriv->options, EXAOPT_NO_COMPOSITE)) { |