From 6f241b7f6afefe38d4d7610cf0237c91ca3806b0 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Tue, 14 Oct 2025 12:03:05 +0200 Subject: [PATCH] st: add early to st_prune_releasebufs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Call it before tc_add_set_vertex_elements_and_buffers_call to make sure that its use from st_setup_current -> st_add_releasebuf won't insert calls into the batch. Fixes: 1638d486 ("gallium/u_threaded,st/mesa: add a merged set_vertex_elements_and_buffers call") Reviewed-by: Marek Olšák Part-of: --- src/mesa/state_tracker/st_atom_array.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mesa/state_tracker/st_atom_array.cpp b/src/mesa/state_tracker/st_atom_array.cpp index ac48f859347..49711fce7d4 100644 --- a/src/mesa/state_tracker/st_atom_array.cpp +++ b/src/mesa/state_tracker/st_atom_array.cpp @@ -429,6 +429,14 @@ st_update_array_templ(struct st_context *st, num_vbuffers_tc = util_bitcount_fast(inputs_read & enabled_arrays); + /* Call this before tc_add_set_vertex_elements_and_buffers_call to not + * insert tc_resource_release calls before tc_set_vertex_elements_for_call + * is used. + */ + if (UPDATE_VELEMS && ALLOW_ZERO_STRIDE_ATTRIBS && + st->release_counter != st->work_counter) + st_prune_releasebufs(st); + /* Add up to 1 vertex buffer for zero-stride vertex attribs. */ num_vbuffers_tc += ALLOW_ZERO_STRIDE_ATTRIBS && inputs_read & ~enabled_arrays;