summaryrefslogtreecommitdiff
path: root/src/atiload.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/atiload.c')
-rw-r--r--src/atiload.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/atiload.c b/src/atiload.c
index 621b0b0..b96ed4b 100644
--- a/src/atiload.c
+++ b/src/atiload.c
@@ -43,11 +43,6 @@ ATILoadModules
{
pointer fbPtr = NULL;
- /* Load shadow frame buffer code if needed */
- if (pATI->OptionShadowFB &&
- !xf86LoadSubModule(pScreenInfo, "shadowfb"))
- return NULL;
-
/* Load depth-specific entry points */
switch (pATI->bitsPerPixel)
{
@@ -90,9 +85,18 @@ ATILoadModules
#ifdef USE_XAA
/* Load XAA if needed */
if (!pATI->useEXA && pATI->OptionAccel &&
- !xf86LoadSubModule(pScreenInfo, "xaa"))
- return NULL;
+ !xf86LoadSubModule(pScreenInfo, "xaa")) {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
+ "Falling back to shadowfb\n");
+ pATI->OptionAccel = 0;
+ pATI->OptionShadowFB = 1;
+ }
#endif
+ /* Load shadow frame buffer code if needed */
+ if (pATI->OptionShadowFB &&
+ !xf86LoadSubModule(pScreenInfo, "shadowfb"))
+ return NULL;
+
return fbPtr;
}