Module: Mesa Branch: master Commit: 8f4ec55f77a993ec44db56726187bdd4f041880e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8f4ec55f77a993ec44db56726187bdd4f041880e
Author: Christian König <deathsim...@vodafone.de> Date: Mon Aug 29 12:14:30 2011 +0200 r600g: Make unaligned 3D textures work on +evergreen The layersize calculation is slightly different on +evergreen. This makes mpeg2 video decoding and piglits texture-packed-formats test work correctly on this hardware. --- src/gallium/drivers/r600/r600_texture.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c index 3bd5350..691cc48 100644 --- a/src/gallium/drivers/r600/r600_texture.c +++ b/src/gallium/drivers/r600/r600_texture.c @@ -262,7 +262,11 @@ static void r600_setup_miptree(struct pipe_screen *screen, nblocksx = r600_texture_get_nblocksx(screen, rtex, i); nblocksy = r600_texture_get_nblocksy(screen, rtex, i); - layer_size = nblocksx * nblocksy * blocksize; + if (chipc >= EVERGREEN && array_mode == V_038000_ARRAY_LINEAR_GENERAL) + layer_size = align(nblocksx, 64) * nblocksy * blocksize; + else + layer_size = nblocksx * nblocksy * blocksize; + if (ptex->target == PIPE_TEXTURE_CUBE) { if (chipc >= R700) size = layer_size * 8; _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit