From 23a96b15378ab539cde9128a1779e3c0823fa790 Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Thu, 12 Dec 2024 21:34:41 +0100 Subject: [PATCH] lavapipe: Check the pool type in handle_reset_query_pool Avoids a segmentation fault when resetting acceleration structure queries. Fixes: 897ccbd ("lavapipe: Implement VK_KHR_acceleration_structure") Closes: #12289 Reviewed-by: Mike Blumenkrantz Part-of: --- src/gallium/frontends/lavapipe/lvp_execute.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c index 1723e4b450a..6ede131cf83 100644 --- a/src/gallium/frontends/lavapipe/lvp_execute.c +++ b/src/gallium/frontends/lavapipe/lvp_execute.c @@ -2954,6 +2954,10 @@ static void handle_reset_query_pool(struct vk_cmd_queue_entry *cmd, { struct vk_cmd_reset_query_pool *qcmd = &cmd->u.reset_query_pool; LVP_FROM_HANDLE(lvp_query_pool, pool, qcmd->query_pool); + + if (pool->base_type >= PIPE_QUERY_TYPES) + return; + for (unsigned i = qcmd->first_query; i < qcmd->first_query + qcmd->query_count; i++) { if (pool->queries[i]) { state->pctx->destroy_query(state->pctx, pool->queries[i]);