Mesa (master): r300g: do not align compressed textures to a tile size
Corbin Simpson
csimpson at kemper.freedesktop.org
Mon Jan 18 10:35:29 UTC 2010
Module: Mesa
Branch: master
Commit: cd553ec8be14eea7db2d21b9f26ea6e72474a471
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cd553ec8be14eea7db2d21b9f26ea6e72474a471
Author: Marek Olšák <maraeo at gmail.com>
Date: Sat Jan 16 01:45:10 2010 +0100
r300g: do not align compressed textures to a tile size
---
src/gallium/drivers/r300/r300_texture.c | 20 ++++++++++++++------
1 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c
index c6dd272..1f73f74 100644
--- a/src/gallium/drivers/r300/r300_texture.c
+++ b/src/gallium/drivers/r300/r300_texture.c
@@ -139,11 +139,15 @@ unsigned r300_texture_get_stride(struct r300_screen* screen,
return 0;
}
- tile_width = r300_texture_get_tile_size(tex, TILE_WIDTH);
- width = align(u_minify(tex->tex.width0, level), tile_width);
+ width = u_minify(tex->tex.width0, level);
- /* Should already be aligned except for S3TC. */
- return align(util_format_get_stride(tex->tex.format, width), 32);
+ if (!util_format_is_compressed(tex->tex.format)) {
+ tile_width = r300_texture_get_tile_size(tex, TILE_WIDTH);
+ width = align(width, tile_width);
+ return util_format_get_stride(tex->tex.format, width);
+ } else {
+ return align(util_format_get_stride(tex->tex.format, width), 32);
+ }
}
static unsigned r300_texture_get_nblocksy(struct r300_texture* tex,
@@ -151,8 +155,12 @@ static unsigned r300_texture_get_nblocksy(struct r300_texture* tex,
{
unsigned height, tile_height;
- tile_height = r300_texture_get_tile_size(tex, TILE_HEIGHT);
- height = align(u_minify(tex->tex.height0, level), tile_height);
+ height = u_minify(tex->tex.height0, level);
+
+ if (!util_format_is_compressed(tex->tex.format)) {
+ tile_height = r300_texture_get_tile_size(tex, TILE_HEIGHT);
+ height = align(height, tile_height);
+ }
return util_format_get_nblocksy(tex->tex.format, height);
}
More information about the mesa-commit
mailing list