diff options
-rw-r--r-- | src/radeon_render.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/radeon_render.c b/src/radeon_render.c index 191fb693..5f29157f 100644 --- a/src/radeon_render.c +++ b/src/radeon_render.c @@ -281,11 +281,17 @@ AllocateLinear ( ScrnInfoPtr pScrn, int sizeNeeded ){ - RADEONInfoPtr info = RADEONPTR(pScrn); + RADEONInfoPtr info = RADEONPTR(pScrn); + int cpp = info->CurrentLayout.bitsPerPixel / 8; info->RenderTimeout = currentTime.milliseconds + 30000; info->RenderCallback = RenderCallback; + /* XAA allocates in units of pixels at the screen bpp, so adjust size + * appropriately. + */ + sizeNeeded = (sizeNeeded + cpp - 1) / cpp; + if (info->RenderTex) { if (info->RenderTex->size >= sizeNeeded) return TRUE; |