From e4e5e4490b6717725b849d861f65df5ad339c04a Mon Sep 17 00:00:00 2001 From: Vishnu Vardan Date: Sun, 26 Apr 2026 00:38:41 -0400 Subject: [PATCH] mesa/st: remove lower_rect_tex from st_context MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lower_rect_tex is the negation of screen->caps.texrect. Replace all call sites with !screen->caps.texrect directly. Reviewed-by: Marek Olšák Part-of: --- src/mesa/state_tracker/st_atom_sampler.c | 2 +- src/mesa/state_tracker/st_cb_bitmap.c | 2 +- src/mesa/state_tracker/st_cb_drawpixels.c | 2 +- src/mesa/state_tracker/st_context.c | 2 -- src/mesa/state_tracker/st_context.h | 1 - src/mesa/state_tracker/st_glsl_to_nir.cpp | 4 ++-- src/mesa/state_tracker/st_nir_builtins.c | 2 +- 7 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c index a123be3703f..4302b9ef797 100644 --- a/src/mesa/state_tracker/st_atom_sampler.c +++ b/src/mesa/state_tracker/st_atom_sampler.c @@ -77,7 +77,7 @@ st_convert_sampler(const struct st_context *st, sampler->mag_img_filter = PIPE_TEX_FILTER_NEAREST; } - if (texobj->Target == GL_TEXTURE_RECTANGLE_ARB && !st->lower_rect_tex) + if (texobj->Target == GL_TEXTURE_RECTANGLE_ARB && st->screen->caps.texrect) sampler->unnormalized_coords = 1; /* diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c index 1a1aea302f6..2018002fa06 100644 --- a/src/mesa/state_tracker/st_cb_bitmap.c +++ b/src/mesa/state_tracker/st_cb_bitmap.c @@ -594,7 +594,7 @@ init_bitmap_state(struct st_context *st) st->bitmap.sampler.mag_img_filter = PIPE_TEX_FILTER_NEAREST; st->bitmap.sampler.unnormalized_coords = !(st->internal_target == PIPE_TEXTURE_2D || (st->internal_target == PIPE_TEXTURE_RECT && - st->lower_rect_tex)); + !st->screen->caps.texrect)); /* init baseline rasterizer state once */ memset(&st->bitmap.rasterizer, 0, sizeof(st->bitmap.rasterizer)); diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c index 4fa009377a0..312fe0dd55d 100644 --- a/src/mesa/state_tracker/st_cb_drawpixels.c +++ b/src/mesa/state_tracker/st_cb_drawpixels.c @@ -730,7 +730,7 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z, GLfloat x0, y0, x1, y1; ASSERTED GLsizei maxSize; bool normalized = sv[0]->texture->target == PIPE_TEXTURE_2D || - (sv[0]->texture->target == PIPE_TEXTURE_RECT && st->lower_rect_tex); + (sv[0]->texture->target == PIPE_TEXTURE_RECT && !st->screen->caps.texrect); unsigned invalidate_flags; assert(sv[0]->texture->target == st->internal_target); diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index 80d8d6d8799..42ac7b76831 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -593,8 +593,6 @@ st_create_context_priv(struct gl_context *ctx, struct pipe_context *pipe, break; default: break; } - st->lower_rect_tex = - !screen->caps.texrect; st->allow_st_finalize_nir_twice = screen->caps.call_finalize_nir_in_linker; diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h index 9f576737ec8..1e80942dd90 100644 --- a/src/mesa/state_tracker/st_context.h +++ b/src/mesa/state_tracker/st_context.h @@ -162,7 +162,6 @@ struct st_context bool can_bind_const_buffer_as_vertex; bool lower_point_size; bool add_point_size; - bool lower_rect_tex; /* There are consequences for drivers wanting to call st_finalize_nir * twice, once before shader caching and once after lowering for shader diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp b/src/mesa/state_tracker/st_glsl_to_nir.cpp index 7bab380de0c..fce416dd7f4 100644 --- a/src/mesa/state_tracker/st_glsl_to_nir.cpp +++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp @@ -730,9 +730,9 @@ st_finalize_nir(struct st_context *st, struct gl_program *prog, const bool lower_tg4_offsets = !is_draw_shader && !st->screen->caps.texture_gather_offsets; - if (!is_draw_shader && (st->lower_rect_tex || lower_tg4_offsets)) { + if (!is_draw_shader && (!st->screen->caps.texrect || lower_tg4_offsets)) { struct nir_lower_tex_options opts = {0}; - opts.lower_rect = !!st->lower_rect_tex; + opts.lower_rect = !st->screen->caps.texrect; opts.lower_tg4_offsets = lower_tg4_offsets; NIR_PASS(_, nir, nir_lower_tex, &opts); diff --git a/src/mesa/state_tracker/st_nir_builtins.c b/src/mesa/state_tracker/st_nir_builtins.c index a3d0e7bebf8..664209b91ba 100644 --- a/src/mesa/state_tracker/st_nir_builtins.c +++ b/src/mesa/state_tracker/st_nir_builtins.c @@ -47,7 +47,7 @@ st_nir_finish_builtin_nir(struct st_context *st, nir_shader *nir) }; NIR_PASS(_, nir, nir_lower_compute_system_values, &cs_options); - if (st->lower_rect_tex) { + if (!st->screen->caps.texrect) { const struct nir_lower_tex_options opts = { .lower_rect = true, }; NIR_PASS(_, nir, nir_lower_tex, &opts); }