Mesa (master): zink: pass batch instead of context for queries

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon May 25 20:33:45 UTC 2020


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

Author: Erik Faye-Lund <erik.faye-lund at collabora.com>
Date:   Thu May 21 12:25:26 2020 +0200

zink: pass batch instead of context for queries

This makes things a bit more consistent IMO.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5141>

---

 src/gallium/drivers/zink/zink_query.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_query.c b/src/gallium/drivers/zink/zink_query.c
index b5b37cff259..1d0050306d1 100644
--- a/src/gallium/drivers/zink/zink_query.c
+++ b/src/gallium/drivers/zink/zink_query.c
@@ -106,13 +106,12 @@ zink_destroy_query(struct pipe_context *pctx,
 }
 
 static void
-begin_query(struct zink_context *ctx, struct zink_query *q)
+begin_query(struct zink_batch *batch, struct zink_query *q)
 {
    VkQueryControlFlags flags = 0;
    if (q->precise)
       flags |= VK_QUERY_CONTROL_PRECISE_BIT;
 
-   struct zink_batch *batch = zink_curr_batch(ctx);
    vkCmdBeginQuery(batch->cmdbuf, q->query_pool, q->curr_query, flags);
 }
 
@@ -135,16 +134,15 @@ zink_begin_query(struct pipe_context *pctx,
    vkCmdResetQueryPool(batch->cmdbuf, query->query_pool, 0, MIN2(query->curr_query + 1, query->num_queries));
    query->curr_query = 0;
 
-   begin_query(ctx, query);
+   begin_query(batch, query);
    list_addtail(&query->active_list, &ctx->active_queries);
 
    return true;
 }
 
 static void
-end_query(struct zink_context *ctx, struct zink_query *q)
+end_query(struct zink_batch *batch, struct zink_query *q)
 {
-   struct zink_batch *batch = zink_curr_batch(ctx);
    assert(q->type != PIPE_QUERY_TIMESTAMP);
    vkCmdEndQuery(batch->cmdbuf, q->query_pool, q->curr_query);
    if (++q->curr_query == q->num_queries) {
@@ -158,15 +156,15 @@ zink_end_query(struct pipe_context *pctx,
                struct pipe_query *q)
 {
    struct zink_context *ctx = zink_context(pctx);
+   struct zink_batch *batch = zink_curr_batch(ctx);
    struct zink_query *query = (struct zink_query *)q;
 
    if (query->type == PIPE_QUERY_TIMESTAMP) {
       assert(query->curr_query == 0);
-      struct zink_batch *batch = zink_curr_batch(ctx);
       vkCmdWriteTimestamp(batch->cmdbuf, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
                           query->query_pool, 0);
    } else {
-      end_query(ctx, query);
+      end_query(batch, query);
       list_delinit(&query->active_list);
    }
 
@@ -235,7 +233,7 @@ zink_suspend_queries(struct zink_context *ctx, struct zink_batch *batch)
 {
    struct zink_query *query;
    LIST_FOR_EACH_ENTRY(query, &ctx->active_queries, active_list) {
-      end_query(ctx, query);
+      end_query(batch, query);
    }
 }
 
@@ -245,7 +243,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);
+      begin_query(batch, query);
    }
 }
 



More information about the mesa-commit mailing list