summaryrefslogtreecommitdiff
path: root/src/sna/sna_io.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-02-03 19:30:24 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-02-04 15:19:05 +0000
commit93a0b10f163ee79b6a6a7ea46b0a33b622b1f86e (patch)
tree5df1eef31085d3461ea4f0cbc1771215c340eec9 /src/sna/sna_io.c
parent4774c6b8331831e0c9f3b24f5f6e1b6ea399f628 (diff)
sna: Apply redirection for the render copy into large pixmaps
If the pixmap is larger than the pipeline, but the operation extents fit within the pipeline, we may be able to create a proxy target to transform the operation into one that fits within the constraints of the render pipeline. This fixes the infinite recursion hit with partially displayed extremely large images. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/sna_io.c')
-rw-r--r--src/sna/sna_io.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c
index eb5df9d4..62a89622 100644
--- a/src/sna/sna_io.c
+++ b/src/sna/sna_io.c
@@ -593,7 +593,7 @@ fallback:
int step;
tile:
- step = MIN(sna->render.max_3d_size,
+ step = MIN(sna->render.max_3d_size - 4096 / dst->drawable.bitsPerPixel,
8*(MAXSHORT&~63) / dst->drawable.bitsPerPixel);
while (step * step * 4 > sna->kgem.max_upload_tile_size)
step /= 2;