Commit b395a054 authored by Kevin Brace's avatar Kevin Brace

Consolidate EXA initialization code into R128EXAInit

Signed-off-by: Kevin Brace's avatarKevin Brace <kevinbrace@gmx.com>
parent 78b21efd
......@@ -604,7 +604,7 @@ extern int R128CCEStop(ScrnInfoPtr pScrn);
extern void R128CopySwap(uint8_t *dst, uint8_t *src, unsigned int size, int swap);
#ifdef USE_EXA
extern Bool R128EXAInit(ScreenPtr pScreen);
extern Bool R128EXAInit(ScreenPtr pScreen, int total);
extern Bool R128GetDatatypeBpp(int bpp, uint32_t *type);
extern Bool R128GetPixmapOffsetPitch(PixmapPtr pPix, uint32_t *pitch_offset);
extern void R128DoPrepareCopy(ScrnInfoPtr pScrn, uint32_t src_pitch_offset,
......
......@@ -1880,38 +1880,22 @@ Bool R128ScreenInit(SCREEN_INIT_ARGS_DECL)
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Filling in EXA memory info\n");
info->ExaDriver = exaDriverAlloc();
if (!info->ExaDriver) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Could not allocate EXA driver...\n");
info->accelOn = FALSE;
} else {
info->ExaDriver->offScreenBase = pScrn->virtualY * width_bytes;
/*
* Don't give EXA the true full memory size, because
* the textureSize sized chunk on the end is handled
* by DRI.
*/
if (R128EXAInit(pScreen, total)) {
info->accelOn = TRUE;
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Filled in offs\n");
/*
* Don't give EXA the true full memory size, because
* the textureSize sized chunk on the end is handled
* by DRI.
*/
info->ExaDriver->memorySize = total;
"EXA Acceleration enabled.\n");
} else {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"EXA Acceleration initialization "
"failed.\n");
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Going to init EXA...\n");
if (R128EXAInit(pScreen)) {
info->accelOn = TRUE;
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"EXA Acceleration enabled.\n");
} else {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"EXA Acceleration initialization "
"failed.\n");
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"EXA Acceleration disabled.\n");
}
"Acceleration disabled.\n");
}
}
#endif
......
......@@ -394,15 +394,26 @@ R128CCESync(ScreenPtr pScreen, int marker)
#endif
Bool
R128EXAInit(ScreenPtr pScreen)
R128EXAInit(ScreenPtr pScreen, int total)
{
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
R128InfoPtr info = R128PTR(pScrn);
info->ExaDriver = exaDriverAlloc();
if (!info->ExaDriver) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Could not allocate EXA driver...\n");
return FALSE;
}
info->ExaDriver->exa_major = EXA_VERSION_MAJOR;
info->ExaDriver->exa_minor = EXA_VERSION_MINOR;
info->ExaDriver->memoryBase = info->FB + pScrn->fbOffset;
info->ExaDriver->offScreenBase = pScrn->virtualY *
(pScrn->displayWidth *
info->CurrentLayout.pixel_bytes);
info->ExaDriver->memorySize = total;
info->ExaDriver->flags = EXA_OFFSCREEN_PIXMAPS | EXA_OFFSCREEN_ALIGN_POT;
#if EXA_VERSION_MAJOR > 2 || (EXA_VERSION_MAJOR == 2 && EXA_VERSION_MINOR >= 3)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment