diff options
-rw-r--r-- | src/radeon_driver.c | 4 | ||||
-rw-r--r-- | src/radeon_exa.c | 2 | ||||
-rw-r--r-- | src/radeon_exa_funcs.c | 11 |
3 files changed, 12 insertions, 5 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c index e7cccf61..89254d33 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -1938,8 +1938,8 @@ static Bool RADEONPreInitAccel(ScrnInfoPtr pScrn) #ifdef USE_EXA if (info->useEXA) { - info->exaReq.majorversion = 2; - info->exaReq.minorversion = 0; + info->exaReq.majorversion = EXA_VERSION_MAJOR; + info->exaReq.minorversion = EXA_VERSION_MINOR; if (!LoadSubModule(pScrn->module, "exa", NULL, NULL, NULL, &info->exaReq, &errmaj, &errmin)) { diff --git a/src/radeon_exa.c b/src/radeon_exa.c index d074f08a..8a12e1b2 100644 --- a/src/radeon_exa.c +++ b/src/radeon_exa.c @@ -157,7 +157,7 @@ static Bool RADEONGetOffsetPitch(PixmapPtr pPix, int bpp, CARD32 *pitch_offset, { RINFO_FROM_SCREEN(pPix->drawable.pScreen); - if (pitch % info->exa->pixmapPitchAlign != 0) + if (pitch > 16320 || pitch % info->exa->pixmapPitchAlign != 0) RADEON_FALLBACK(("Bad pitch 0x%08x\n", pitch)); if (offset % info->exa->pixmapOffsetAlign != 0) diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c index d2338138..8e14cd9f 100644 --- a/src/radeon_exa_funcs.c +++ b/src/radeon_exa_funcs.c @@ -511,8 +511,8 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen) return FALSE; } - info->exa->exa_major = 2; - info->exa->exa_minor = 0; + info->exa->exa_major = EXA_VERSION_MAJOR; + info->exa->exa_minor = EXA_VERSION_MINOR; info->exa->PrepareSolid = FUNC_NAME(RADEONPrepareSolid); info->exa->Solid = FUNC_NAME(RADEONSolid); @@ -564,7 +564,14 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen) } #endif +#if EXA_VERSION_MAJOR > 2 || (EXA_VERSION_MAJOR == 2 && EXA_VERSION_MINOR >= 3) + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Setting EXA maxPitchBytes\n"); + + info->exa->maxPitchBytes = 16320; info->exa->maxX = info->exa->Composite ? 2048 : 8192; +#else + info->exa->maxX = info->exa->Composite ? 2048 : 16320 / 4; +#endif info->exa->maxY = info->exa->Composite ? 2048 : 8192; RADEONEngineInit(pScrn); |