summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/radeon_render.c8
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;