summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2010-04-10 01:09:40 +0200
committerMarek Olšák <[email protected]>2010-04-10 01:09:40 +0200
commite7f1e5ca648d6c96d056d3ae8eab65e98f47f311 (patch)
tree1e946df320c9a0b7a93be6a29a5b4d78321b45e3
parentf43c679c0be8c999a3d9c25a442c22faca5247cf (diff)
r300g: align the height of NPOT textures to POT
Needed by the CS checker.
-rw-r--r--src/gallium/drivers/r300/r300_texture.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c
index 2ef9ec0ec16..8e5afc5082e 100644
--- a/src/gallium/drivers/r300/r300_texture.c
+++ b/src/gallium/drivers/r300/r300_texture.c
@@ -694,6 +694,9 @@ static unsigned r300_texture_get_nblocksy(struct r300_texture* tex,
tile_height = r300_texture_get_tile_size(tex, TILE_HEIGHT,
tex->mip_macrotile[level]);
height = align(height, tile_height);
+
+ /* This is needed for the kernel checker, unfortunately. */
+ height = util_next_power_of_two(height);
}
return util_format_get_nblocksy(tex->tex.format, height);
@@ -802,7 +805,7 @@ static struct pipe_texture* r300_texture_create(struct pipe_screen* screen,
r300_setup_flags(tex);
if (!(base->tex_usage & R300_TEXTURE_USAGE_TRANSFER) &&
- !(tex->tex.tex_usage & PIPE_TEXTURE_USAGE_SCANOUT)) {
+ !(base->tex_usage & PIPE_TEXTURE_USAGE_SCANOUT)) {
r300_setup_tiling(screen, tex);
}
r300_setup_miptree(rscreen, tex);