From ec13dc4a384d36a596008ca9bc15a4329bd68ad5 Mon Sep 17 00:00:00 2001 From: Vishnu Vardan Date: Sat, 25 Apr 2026 22:22:21 -0400 Subject: [PATCH] mesa/st: remove has_multi_draw_indirect from st_context MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit has_multi_draw_indirect is a direct copy of screen->caps.multi_draw_indirect. Read the cap from the screen directly at each call site. Reviewed-by: Marek Olšák Part-of: --- src/mesa/state_tracker/st_context.c | 2 -- src/mesa/state_tracker/st_context.h | 1 - src/mesa/state_tracker/st_draw.c | 4 ++-- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index 2abd078e377..0cf143e4d15 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -583,8 +583,6 @@ st_create_context_priv(struct gl_context *ctx, struct pipe_context *pipe, PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_ALPHA_NOT_W); ctx->Const.GLSLHasHalfFloatPacking = screen->caps.shader_pack_half_float; - st->has_multi_draw_indirect = - screen->caps.multi_draw_indirect; st->has_indirect_partial_stride = screen->caps.multi_draw_indirect_partial_stride; st->has_occlusion_query = diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h index 31bacdf696e..c94328c6453 100644 --- a/src/mesa/state_tracker/st_context.h +++ b/src/mesa/state_tracker/st_context.h @@ -159,7 +159,6 @@ struct st_context bool force_compute_based_texture_transfer; bool force_specialized_compute_transfer; bool force_persample_in_shader; - bool has_multi_draw_indirect; bool has_indirect_partial_stride; bool has_occlusion_query; bool has_single_pipe_stat; diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c index 6e18a400c23..f630b0cdd2e 100644 --- a/src/mesa/state_tracker/st_draw.c +++ b/src/mesa/state_tracker/st_draw.c @@ -179,7 +179,7 @@ st_indirect_draw_vbo(struct gl_context *ctx, break; } - assert(st->has_multi_draw_indirect || !indirect_draw_count); + assert(st->screen->caps.multi_draw_indirect || !indirect_draw_count); if (info.index_size) { struct gl_buffer_object *bufobj = ctx->Array.VAO->IndexBufferObj; @@ -208,7 +208,7 @@ st_indirect_draw_vbo(struct gl_context *ctx, if (!indirect.buffer) return; - if (!st->has_multi_draw_indirect) { + if (!st->screen->caps.multi_draw_indirect) { int i; indirect.draw_count = 1;