diff options
author | Kevin Brace <kevinbrace@gmx.com> | 2018-07-27 11:08:29 -0700 |
---|---|---|
committer | Kevin Brace <kevinbrace@gmx.com> | 2018-07-27 11:08:29 -0700 |
commit | 7dbb89d6fd11d3521b8a0085f4d9640910081bf2 (patch) | |
tree | 12f0a51de615084bb2e4f13ebb12b4923e281092 | |
parent | c4c05c95ae9f1b02fcbc9f6ee431d466c1c0b519 (diff) |
Move loading of EXA and XAA modules into R128PreInitAccel
Moving them away from R128ScreenInit callback function. This is how
other DDXs do it.
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
-rw-r--r-- | src/r128_accel.c | 1 | ||||
-rw-r--r-- | src/r128_driver.c | 48 | ||||
-rw-r--r-- | src/r128_exa.c | 12 |
3 files changed, 43 insertions, 18 deletions
diff --git a/src/r128_accel.c b/src/r128_accel.c index bfadaf6..589f49b 100644 --- a/src/r128_accel.c +++ b/src/r128_accel.c @@ -1909,7 +1909,6 @@ R128XAAAccelInit(ScreenPtr pScreen) R128InfoPtr info = R128PTR(pScrn); XAAInfoRecPtr a; - if (!xf86LoadSubModule(pScrn, "xaa")) return FALSE; if (!(a = info->accel = XAACreateInfoRec())) return FALSE; #ifdef R128DRI diff --git a/src/r128_driver.c b/src/r128_driver.c index 773038c..afa41ca 100644 --- a/src/r128_driver.c +++ b/src/r128_driver.c @@ -1325,6 +1325,46 @@ exit: return ret; } +static void +R128PreInitAccel(ScrnInfoPtr pScrn) +{ + R128InfoPtr info = R128PTR(pScrn); +#ifdef USE_EXA + int errmaj, errmin; +#endif + + if (!info->noAccel) { + if (info->useEXA) { +#ifdef USE_EXA + info->exaReq.majorversion = EXA_VERSION_MAJOR; + info->exaReq.minorversion = EXA_VERSION_MINOR; + + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Loading EXA module...\n"); + if (LoadSubModule(pScrn->module, "exa", NULL, NULL, NULL, + &info->exaReq, &errmaj, &errmin)) { + info->accelOn = TRUE; + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "EXA acceleration enabled.\n"); + } else { + LoaderErrorMsg(NULL, "exa", errmaj, errmin); + } +#endif + } + + if ((!info->useEXA) || + ((info->useEXA) && (!info->accelOn))) { +#ifdef HAVE_XAA_H + if (xf86LoadSubModule(pScrn, "xaa")) { + info->accelOn = TRUE; + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "XAA acceleration enabled.\n"); + } +#endif + } + } +} + /* R128PreInit is called once at server startup. */ Bool R128PreInit(ScrnInfoPtr pScrn, int flags) { @@ -1404,6 +1444,7 @@ Bool R128PreInit(ScrnInfoPtr pScrn, int flags) xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, info->Options); info->noAccel = FALSE; + info->accelOn = FALSE; info->useEXA = FALSE; #ifdef USE_EXA @@ -1467,6 +1508,8 @@ Bool R128PreInit(ScrnInfoPtr pScrn, int flags) /* Get ScreenInit function */ if (!xf86LoadSubModule(pScrn, "fb")) return FALSE; + R128PreInitAccel(pScrn); + info->CurrentLayout.displayWidth = pScrn->displayWidth; if (!xf86RandR12PreInit(pScrn)) { @@ -1630,14 +1673,10 @@ R128AccelInit(Bool noAccel, ScreenPtr pScreen) ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); - /* Initially, assume that acceleration is off. */ - info->accelOn = FALSE; - if (!noAccel) { if (info->useEXA) { #ifdef USE_EXA if (R128EXAAccelInit(pScreen)) { - info->accelOn = TRUE; xf86DrvMsg(pScrn->scrnIndex, X_INFO, "EXA acceleration enabled.\n"); } @@ -1648,7 +1687,6 @@ R128AccelInit(Bool noAccel, ScreenPtr pScreen) ((info->useEXA) && (!info->accelOn))) { #ifdef HAVE_XAA_H if (R128XAAAccelInit(pScreen)) { - info->accelOn = TRUE; xf86DrvMsg(pScrn->scrnIndex, X_INFO, "XAA acceleration enabled.\n"); } diff --git a/src/r128_exa.c b/src/r128_exa.c index 425fd64..5a54740 100644 --- a/src/r128_exa.c +++ b/src/r128_exa.c @@ -398,18 +398,6 @@ R128EXAAccelInit(ScreenPtr pScreen) { ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); - int errmaj = 0, errmin = 0; - - info->exaReq.majorversion = EXA_VERSION_MAJOR; - info->exaReq.minorversion = EXA_VERSION_MINOR; - - xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Loading EXA module...\n"); - if (!LoadSubModule(pScrn->module, "exa", NULL, NULL, NULL, - &info->exaReq, &errmaj, &errmin)) { - LoaderErrorMsg(NULL, "exa", errmaj, errmin); - return FALSE; - } /* Don't init EXA here because it'll be taken care of in mm init */ xf86DrvMsg(pScrn->scrnIndex, X_INFO, |