From 06045685272afbbe46d76ee16c7ad486c9972447 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Tue, 30 May 2017 17:07:47 +0200 Subject: [PATCH] gallium/u_blitter: use TEX_LZ if it's supported MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The sampler views always have first_level == last_level. Now radeonsi doesn't have to use the WQM. (a few SALU removed) Reviewed-by: Nicolai Hähnle --- src/gallium/auxiliary/util/u_blitter.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index 1aef01376ee..21f06861758 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -132,6 +132,7 @@ struct blitter_context_priv boolean has_stream_out; boolean has_stencil_export; boolean has_texture_multisample; + boolean has_tex_lz; boolean cached_all_shaders; /* The Draw module overrides these functions. @@ -197,6 +198,9 @@ struct blitter_context *util_blitter_create(struct pipe_context *pipe) ctx->has_texture_multisample = pipe->screen->get_param(pipe->screen, PIPE_CAP_TEXTURE_MULTISAMPLE); + ctx->has_tex_lz = pipe->screen->get_param(pipe->screen, + PIPE_CAP_TGSI_TEX_TXF_LZ); + /* blend state objects */ memset(&blend, 0, sizeof(blend)); @@ -953,7 +957,7 @@ static void *blitter_get_fs_texfetch_col(struct blitter_context_priv *ctx, *shader = util_make_fragment_tex_shader(pipe, tgsi_tex, TGSI_INTERPOLATE_LINEAR, stype, dtype, - false, false); + ctx->has_tex_lz, false); } return *shader; @@ -992,7 +996,7 @@ void *blitter_get_fs_texfetch_depth(struct blitter_context_priv *ctx, *shader = util_make_fragment_tex_shader_writedepth(pipe, tgsi_tex, TGSI_INTERPOLATE_LINEAR, - false, false); + ctx->has_tex_lz, false); } return *shader; @@ -1031,7 +1035,7 @@ void *blitter_get_fs_texfetch_depthstencil(struct blitter_context_priv *ctx, *shader = util_make_fragment_tex_shader_writedepthstencil(pipe, tgsi_tex, TGSI_INTERPOLATE_LINEAR, - false, + ctx->has_tex_lz, false); } @@ -1071,7 +1075,7 @@ void *blitter_get_fs_texfetch_stencil(struct blitter_context_priv *ctx, *shader = util_make_fragment_tex_shader_writestencil(pipe, tgsi_tex, TGSI_INTERPOLATE_LINEAR, - false, false); + ctx->has_tex_lz, false); } return *shader; -- 2.30.2