sna: Be more pessimistic for tiling sizes on older gen
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 6 Nov 2013 08:56:01 +0000 (08:56 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 6 Nov 2013 09:01:17 +0000 (09:01 +0000)
On the older generation, we have severe alignment penalties for fenced
regions which dramatically reduce the amount of space we can effectively
use in a batch. To accommodate this, reduce the tiling step size.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
src/sna/sna_tiling.c

index b0a48dd..d23fb00 100644 (file)
@@ -718,8 +718,6 @@ bool sna_tiling_blt_copy_boxes(struct sna *sna, uint8_t alu,
        }
        if (max_size > sna->kgem.max_copy_tile_size)
                max_size = sna->kgem.max_copy_tile_size;
-       if (sna->kgem.gen < 033)
-               max_size /= 2; /* accommodate fence alignment */
 
        pixman_region_init_rects(&region, box, nbox);
 
@@ -729,6 +727,8 @@ bool sna_tiling_blt_copy_boxes(struct sna *sna, uint8_t alu,
                step /= 2;
        while (step * step * 4 > max_size)
                step /= 2;
+       if (sna->kgem.gen < 033)
+               step /= 2; /* accommodate severe fence restrictions */
        if (step == 0) {
                DBG(("%s: tiles cannot fit into aperture\n", __FUNCTION__));
                return false;