diff options
author | Dave Airlie <[email protected]> | 2011-10-12 08:24:32 +0100 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2011-10-12 08:25:28 +0100 |
commit | ae1153c4acfb2d70c2c7c9310ca38413aa68f32a (patch) | |
tree | 811801cf003cf81409c404baa6a6cd39b544fa00 /src | |
parent | 7aab0fbaa6ec41c720bed6cfcb53a50c2a646a26 (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')
-rw-r--r-- | src/gallium/drivers/softpipe/sp_tex_tile_cache.c | 5 |
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, |