xf86-video-intel: src/sna/kgem.c
Chris Wilson
ickle at kemper.freedesktop.org
Fri Nov 30 01:30:28 PST 2012
src/sna/kgem.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
New commits:
commit 1b6c1a30723b1d13e9bd3df0b59a8d75639c89be
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Nov 30 09:27:57 2012 +0000
sna: Increase tiling alignment to an even tile
Seems to help g4x.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 7f8774f..b479817 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -1159,13 +1159,15 @@ static uint32_t kgem_surface_size(struct kgem *kgem,
kgem_pitch_alignment(kgem, flags));
tile_height = 2;
break;
+
+ /* XXX align to an even tile row */
case I915_TILING_X:
tile_width = 512;
- tile_height = 8;
+ tile_height = 16;
break;
case I915_TILING_Y:
tile_width = 128;
- tile_height = 32;
+ tile_height = 64;
break;
}
@@ -1209,15 +1211,16 @@ static uint32_t kgem_aligned_height(struct kgem *kgem,
if (kgem->gen <= 30) {
tile_height = tiling ? kgem->gen < 30 ? 16 : 8 : 1;
} else switch (tiling) {
+ /* XXX align to an even tile row */
default:
case I915_TILING_NONE:
tile_height = 2;
break;
case I915_TILING_X:
- tile_height = 8;
+ tile_height = 16;
break;
case I915_TILING_Y:
- tile_height = 32;
+ tile_height = 64;
break;
}
@@ -3007,9 +3010,9 @@ int kgem_choose_tiling(struct kgem *kgem, int tiling, int width, int height, int
if (tiling < 0)
return tiling;
- if (tiling && height == 1) {
- DBG(("%s: disabling tiling [%d] for single row\n",
- __FUNCTION__,height));
+ if (tiling && (height == 1 || width == 1)) {
+ DBG(("%s: disabling tiling [%dx%d] for single row/col\n",
+ __FUNCTION__,width, height));
tiling = I915_TILING_NONE;
goto done;
}
More information about the xorg-commit
mailing list