From 7e101873ea6a79edcdaf5eb5eacbca71e205b638 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 17 Sep 2025 07:45:06 -0400 Subject: [PATCH] zink: prune active queries in reset_batch_state_ctx() these need the context Part-of: --- src/gallium/drivers/zink/zink_batch.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/zink/zink_batch.c b/src/gallium/drivers/zink/zink_batch.c index 5073282dbdd..3655b2111f5 100644 --- a/src/gallium/drivers/zink/zink_batch.c +++ b/src/gallium/drivers/zink/zink_batch.c @@ -79,11 +79,6 @@ reset_batch_state_internal(struct zink_screen *screen, struct zink_batch_state * memset(&bs->buffer_indices_hashlist, -1, sizeof(bs->buffer_indices_hashlist)); - /* queries must only be destroyed once they are inactive */ - set_foreach_remove(&bs->active_queries, entry) { - struct zink_query *query = (void*)entry->key; - zink_prune_query(bs, query); - } util_dynarray_foreach(&bs->dead_querypools, VkQueryPool, pool) VKSCR(DestroyQueryPool)(screen->dev, *pool, NULL); util_dynarray_clear(&bs->dead_querypools); @@ -177,6 +172,12 @@ reset_batch_state_ctx(struct zink_context *ctx, struct zink_batch_state *bs) util_idalloc_free(ids, is_buffer ? handle - ZINK_MAX_BINDLESS_HANDLES : handle); } } + + /* queries must only be destroyed once they are inactive */ + set_foreach_remove(&bs->active_queries, entry) { + struct zink_query *query = (void*)entry->key; + zink_prune_query(bs, query); + } } void