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 <airlied@redhat.com>
This commit is contained in:
@@ -229,6 +229,7 @@ sp_find_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
|
|||||||
union tex_tile_address addr )
|
union tex_tile_address addr )
|
||||||
{
|
{
|
||||||
struct softpipe_tex_cached_tile *tile;
|
struct softpipe_tex_cached_tile *tile;
|
||||||
|
boolean zs = util_format_is_depth_or_stencil(tc->format);
|
||||||
|
|
||||||
tile = tc->entries + tex_cache_pos( addr );
|
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
|
/* Get tile from the transfer (view into texture), explicitly passing
|
||||||
* the image format.
|
* 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,
|
pipe_get_tile_ui_format(tc->pipe,
|
||||||
tc->tex_trans,
|
tc->tex_trans,
|
||||||
addr.bits.x * TILE_SIZE,
|
addr.bits.x * TILE_SIZE,
|
||||||
@@ -300,7 +301,7 @@ sp_find_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
|
|||||||
TILE_SIZE,
|
TILE_SIZE,
|
||||||
tc->format,
|
tc->format,
|
||||||
(unsigned *) tile->data.colorui);
|
(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,
|
pipe_get_tile_i_format(tc->pipe,
|
||||||
tc->tex_trans,
|
tc->tex_trans,
|
||||||
addr.bits.x * TILE_SIZE,
|
addr.bits.x * TILE_SIZE,
|
||||||
|
Reference in New Issue
Block a user