Mesa (master): zink: reset query on-demand when beginning a new query from resume

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri May 22 13:38:24 UTC 2020


Module: Mesa
Branch: master
Commit: af2d99353555715afe6e6b6ba5158a2cc0d6b015
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=af2d99353555715afe6e6b6ba5158a2cc0d6b015

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Wed May 20 09:53:45 2020 -0400

zink: reset query on-demand when beginning a new query from resume

the current query pool implementation expects queries to be reset at
the time they're initiated, which means queries started at this point
need to also be explicitly reset

the zink_begin_query() function can't be reused here or else the
query will be double-added to the active list, triggering an infinite loop

ref mesa/mesa#3000

Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5120>

---

 src/gallium/drivers/zink/zink_query.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/gallium/drivers/zink/zink_query.c b/src/gallium/drivers/zink/zink_query.c
index 8f06256bf5b..b5b37cff259 100644
--- a/src/gallium/drivers/zink/zink_query.c
+++ b/src/gallium/drivers/zink/zink_query.c
@@ -244,6 +244,7 @@ zink_resume_queries(struct zink_context *ctx, struct zink_batch *batch)
 {
    struct zink_query *query;
    LIST_FOR_EACH_ENTRY(query, &ctx->active_queries, active_list) {
+      vkCmdResetQueryPool(batch->cmdbuf, query->query_pool, query->curr_query, 1);
       begin_query(ctx, query);
    }
 }



More information about the mesa-commit mailing list