summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/r600_texture.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-09-21 19:57:15 +1000
committerDave Airlie <airlied@redhat.com>2010-09-21 20:53:09 +1000
commitb6ced8ee7b2c86e94fd7467d12aca5e322048ba4 (patch)
tree6dfce8582c4ddc3aa8244f6a2dced1ade2b588a6 /src/gallium/drivers/r600/r600_texture.c
parent610aed81dbaee73bc2a1fb9a030d7ec0e49e73cb (diff)
r600g: fixup evergreen miptree setup.
eg seems to have a higher pitch aligmment requirement and uses r700 cube setup this fixes a couple of piglit tests here.
Diffstat (limited to 'src/gallium/drivers/r600/r600_texture.c')
-rw-r--r--src/gallium/drivers/r600/r600_texture.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index abfe406402..f60fe9f316 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -84,10 +84,13 @@ static void r600_setup_miptree(struct r600_resource_texture *rtex, enum chip_cla
h = u_minify(ptex->height0, i);
h = util_next_power_of_two(h);
pitch = util_format_get_stride(ptex->format, align(w, 64));
- pitch = align(pitch, 256);
+ if (chipc == EVERGREEN)
+ pitch = align(pitch, 512);
+ else
+ pitch = align(pitch, 256);
layer_size = pitch * h;
if (ptex->target == PIPE_TEXTURE_CUBE) {
- if (chipc == R700)
+ if (chipc >= R700)
size = layer_size * 8;
else
size = layer_size * 6;