From 307a861709a463f8e33326a126eaa42222e0ada8 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Thu, 16 Apr 2026 13:13:30 +0200 Subject: [PATCH] gallium/u_blitter: stop emitting TEX_LZ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No drivers care about this any more, let's get rid of it. Reviewed-by: Marek Olšák Part-of: --- src/gallium/auxiliary/util/u_blitter.c | 9 ++---- src/gallium/auxiliary/util/u_simple_shaders.c | 31 +++++++------------ src/gallium/auxiliary/util/u_simple_shaders.h | 3 +- src/gallium/auxiliary/util/u_tests.c | 2 +- 4 files changed, 17 insertions(+), 28 deletions(-) diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index 0c6c01cb96c..b9dcc1738b0 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -153,7 +153,6 @@ struct blitter_context_priv bool has_stream_out; bool has_stencil_export; bool has_texture_multisample; - bool has_tex_lz; bool has_txf_txq; bool has_sample_shading; bool cube_as_2darray; @@ -218,7 +217,6 @@ struct blitter_context *util_blitter_create(struct pipe_context *pipe) ctx->has_texture_multisample = pipe->screen->caps.texture_multisample; - ctx->has_tex_lz = pipe->screen->caps.tgsi_tex_txf_lz; ctx->has_txf_txq = pipe->screen->caps.glsl_feature_level >= 130; ctx->has_sample_shading = pipe->screen->caps.sample_shading; ctx->cube_as_2darray = pipe->screen->caps.sampler_view_target; @@ -1062,7 +1060,6 @@ static void *blitter_get_fs_texfetch_col(struct blitter_context_priv *ctx, assert(!ctx->cached_all_shaders); *shader = util_make_fragment_tex_shader(pipe, tgsi_tex, stype, dtype, - ctx->has_tex_lz, use_txf, ctx->use_persp); } @@ -1149,7 +1146,7 @@ void *blitter_get_fs_texfetch_depth(struct blitter_context_priv *ctx, assert(!ctx->cached_all_shaders); tgsi_tex = util_pipe_tex_to_tgsi_tex(target, 0); *shader = util_make_fs_blit_zs(pipe, PIPE_MASK_Z, tgsi_tex, - ctx->has_tex_lz, use_txf, + use_txf, ctx->use_persp); } @@ -1198,7 +1195,7 @@ void *blitter_get_fs_texfetch_depthstencil(struct blitter_context_priv *ctx, assert(!ctx->cached_all_shaders); tgsi_tex = util_pipe_tex_to_tgsi_tex(target, 0); *shader = util_make_fs_blit_zs(pipe, PIPE_MASK_ZS, tgsi_tex, - ctx->has_tex_lz, use_txf, + use_txf, ctx->use_persp); } @@ -1247,7 +1244,7 @@ void *blitter_get_fs_texfetch_stencil(struct blitter_context_priv *ctx, assert(!ctx->cached_all_shaders); tgsi_tex = util_pipe_tex_to_tgsi_tex(target, 0); *shader = util_make_fs_blit_zs(pipe, PIPE_MASK_S, tgsi_tex, - ctx->has_tex_lz, use_txf, + use_txf, ctx->use_persp); } diff --git a/src/gallium/auxiliary/util/u_simple_shaders.c b/src/gallium/auxiliary/util/u_simple_shaders.c index aee3d31ffe8..6aea3648349 100644 --- a/src/gallium/auxiliary/util/u_simple_shaders.c +++ b/src/gallium/auxiliary/util/u_simple_shaders.c @@ -203,7 +203,7 @@ static void ureg_load_tex(struct ureg_program *ureg, struct ureg_dst out, struct ureg_src coord, struct ureg_src sampler, enum tgsi_texture_type tex_target, - bool load_level_zero, bool use_txf) + bool use_txf) { if (use_txf) { struct ureg_dst temp = ureg_DECL_temporary(ureg); @@ -224,15 +224,9 @@ ureg_load_tex(struct ureg_program *ureg, struct ureg_dst out, ureg_TRUNC(ureg, ureg_writemask(temp, wrmask), ureg_src(temp)); ureg_F2I(ureg, temp, ureg_src(temp)); - if (load_level_zero) - ureg_TXF_LZ(ureg, out, tex_target, ureg_src(temp), sampler); - else - ureg_TXF(ureg, out, tex_target, ureg_src(temp), sampler); + ureg_TXF(ureg, out, tex_target, ureg_src(temp), sampler); } else { - if (load_level_zero) - ureg_TEX_LZ(ureg, out, tex_target, coord, sampler); - else - ureg_TEX(ureg, out, tex_target, coord, sampler); + ureg_TEX(ureg, out, tex_target, coord, sampler); } } @@ -250,7 +244,6 @@ util_make_fragment_tex_shader(struct pipe_context *pipe, enum tgsi_texture_type tex_target, enum tgsi_return_type stype, enum tgsi_return_type dtype, - bool load_level_zero, bool use_txf, bool use_persp) { @@ -287,7 +280,7 @@ util_make_fragment_tex_shader(struct pipe_context *pipe, tex_target, tex, sampler); else ureg_load_tex(ureg, ureg_writemask(temp, TGSI_WRITEMASK_XYZW), tex, sampler, - tex_target, load_level_zero, use_txf); + tex_target, use_txf); if (stype != dtype) { if (stype == TGSI_RETURN_TYPE_SINT) { @@ -316,7 +309,7 @@ util_make_fragment_tex_shader(struct pipe_context *pipe, void * util_make_fs_blit_zs(struct pipe_context *pipe, unsigned zs_mask, enum tgsi_texture_type tex_target, - bool load_level_zero, bool use_txf, bool use_persp) + bool use_txf, bool use_persp) { struct ureg_program *ureg; struct ureg_src depth_sampler, stencil_sampler, coord; @@ -340,7 +333,7 @@ util_make_fs_blit_zs(struct pipe_context *pipe, unsigned zs_mask, TGSI_RETURN_TYPE_FLOAT); ureg_load_tex(ureg, ureg_writemask(tmp, TGSI_WRITEMASK_X), coord, - depth_sampler, tex_target, load_level_zero, use_txf); + depth_sampler, tex_target, use_txf); depth = ureg_DECL_output(ureg, TGSI_SEMANTIC_POSITION, 0); ureg_MOV(ureg, ureg_writemask(depth, TGSI_WRITEMASK_Z), @@ -356,7 +349,7 @@ util_make_fs_blit_zs(struct pipe_context *pipe, unsigned zs_mask, TGSI_RETURN_TYPE_UINT); ureg_load_tex(ureg, ureg_writemask(tmp, TGSI_WRITEMASK_X), coord, - stencil_sampler, tex_target, load_level_zero, use_txf); + stencil_sampler, tex_target, use_txf); stencil = ureg_DECL_output(ureg, TGSI_SEMANTIC_STENCIL, 0); ureg_MOV(ureg, ureg_writemask(stencil, TGSI_WRITEMASK_Y), @@ -1032,7 +1025,7 @@ util_make_fs_pack_color_zs(struct pipe_context *pipe, depth = ureg_DECL_temporary(ureg); depth_x = ureg_writemask(depth, TGSI_WRITEMASK_X); - ureg_load_tex(ureg, depth_x, coord, depth_sampler, tex_target, true, true); + ureg_load_tex(ureg, depth_x, coord, depth_sampler, tex_target, true); /* Pack to Z24. */ if (is_z24) { @@ -1062,7 +1055,7 @@ util_make_fs_pack_color_zs(struct pipe_context *pipe, stencil = ureg_writemask(ureg_DECL_temporary(ureg), TGSI_WRITEMASK_X); ureg_load_tex(ureg, stencil, coord, stencil_sampler, tex_target, - true, true); + true); /* Pack stencil into depth. */ if (is_z24) { @@ -1092,7 +1085,7 @@ util_make_fs_pack_color_zs(struct pipe_context *pipe, TGSI_RETURN_TYPE_UINT); color = ureg_DECL_temporary(ureg); - ureg_load_tex(ureg, color, coord, color_sampler, tex_target, true, true); + ureg_load_tex(ureg, color, coord, color_sampler, tex_target, true); depth = ureg_writemask(ureg_DECL_temporary(ureg), TGSI_WRITEMASK_X); stencil = ureg_writemask(ureg_DECL_temporary(ureg), TGSI_WRITEMASK_X); @@ -1280,7 +1273,7 @@ util_make_fs_stencil_blit(struct pipe_context *pipe, bool msaa_src, bool has_txq "UADD TEMP[1].xy, TEMP[1], IMM[0].yyyy\n" /* width - 1, height - 1 */ "IMIN TEMP[0].xy, TEMP[0], TEMP[1]\n" /* Texel fetch. */ - "TXF_LZ TEMP[0].x, TEMP[0], SAMP[0], %s\n" + "TXF TEMP[0].x, TEMP[0], SAMP[0], %s\n" "AND TEMP[0].x, TEMP[0], CONST[0][0]\n" "USNE TEMP[0].x, TEMP[0], CONST[0][0]\n" "U2F TEMP[0].x, TEMP[0]\n" @@ -1307,7 +1300,7 @@ util_make_fs_stencil_blit(struct pipe_context *pipe, bool msaa_src, bool has_txq "F2I TEMP[0], TEMP[0]\n" "IMAX TEMP[0].xy, TEMP[0], IMM[0].xxxx\n" /* Texel fetch. */ - "TXF_LZ TEMP[0].x, TEMP[0], SAMP[0], %s\n" + "TXF TEMP[0].x, TEMP[0], SAMP[0], %s\n" "AND TEMP[0].x, TEMP[0], CONST[0][0]\n" "USNE TEMP[0].x, TEMP[0], CONST[0][0]\n" "U2F TEMP[0].x, TEMP[0]\n" diff --git a/src/gallium/auxiliary/util/u_simple_shaders.h b/src/gallium/auxiliary/util/u_simple_shaders.h index 7cf9b852a2e..bdadb0d597c 100644 --- a/src/gallium/auxiliary/util/u_simple_shaders.h +++ b/src/gallium/auxiliary/util/u_simple_shaders.h @@ -73,14 +73,13 @@ util_make_fragment_tex_shader(struct pipe_context *pipe, enum tgsi_texture_type tex_target, enum tgsi_return_type stype, enum tgsi_return_type dtype, - bool load_level_zero, bool use_txf, bool use_persp); extern void * util_make_fs_blit_zs(struct pipe_context *pipe, unsigned zs_mask, enum tgsi_texture_type tex_target, - bool load_level_zero, bool use_txf, bool use_persp); + bool use_txf, bool use_persp); extern void * util_make_fragment_passthrough_shader(struct pipe_context *pipe, diff --git a/src/gallium/auxiliary/util/u_tests.c b/src/gallium/auxiliary/util/u_tests.c index 82bb7b06648..872a361c061 100644 --- a/src/gallium/auxiliary/util/u_tests.c +++ b/src/gallium/auxiliary/util/u_tests.c @@ -400,7 +400,7 @@ null_sampler_view(struct pipe_context *ctx, unsigned tgsi_tex_target) fs = util_make_fragment_tex_shader(ctx, tgsi_tex_target, TGSI_RETURN_TYPE_FLOAT, TGSI_RETURN_TYPE_FLOAT, - false, false, false); + false, false); cso_set_fragment_shader_handle(cso, fs); /* Vertex shader. */