summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2011-10-12 08:24:32 +0100
committerDave Airlie <[email protected]>2011-10-12 08:25:28 +0100
commitae1153c4acfb2d70c2c7c9310ca38413aa68f32a (patch)
tree811801cf003cf81409c404baa6a6cd39b544fa00 /src/gallium
parent7aab0fbaa6ec41c720bed6cfcb53a50c2a646a26 (diff)
softpipe: fix regression with tex tile cache since integer support.
Don't use the uint/int paths for ZS formats for tex tile cache. fixes: https://bugs.freedesktop.org/show_bug.cgi?id=41695 Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/softpipe/sp_tex_tile_cache.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/softpipe/sp_tex_tile_cache.c b/src/gallium/drivers/softpipe/sp_tex_tile_cache.c
index 2e665c9ee35..b2e92385bf1 100644
--- a/src/gallium/drivers/softpipe/sp_tex_tile_cache.c
+++ b/src/gallium/drivers/softpipe/sp_tex_tile_cache.c
@@ -229,6 +229,7 @@ sp_find_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
union tex_tile_address addr )
{
struct softpipe_tex_cached_tile *tile;
+ boolean zs = util_format_is_depth_or_stencil(tc->format);
tile = tc->entries + tex_cache_pos( addr );
@@ -291,7 +292,7 @@ sp_find_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
/* Get tile from the transfer (view into texture), explicitly passing
* the image format.
*/
- if (util_format_is_pure_uint(tc->format)) {
+ if (!zs && util_format_is_pure_uint(tc->format)) {
pipe_get_tile_ui_format(tc->pipe,
tc->tex_trans,
addr.bits.x * TILE_SIZE,
@@ -300,7 +301,7 @@ sp_find_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
TILE_SIZE,
tc->format,
(unsigned *) tile->data.colorui);
- } else if (util_format_is_pure_sint(tc->format)) {
+ } else if (!zs && util_format_is_pure_sint(tc->format)) {
pipe_get_tile_i_format(tc->pipe,
tc->tex_trans,
addr.bits.x * TILE_SIZE,