Mesa (master): zink: simplify some queue-related query code

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Mar 23 17:20:50 UTC 2021


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Wed Nov  4 15:15:01 2020 -0500

zink: simplify some queue-related query code

we can collapse these conditionals now that things are more unified

Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9726>

---

 src/gallium/drivers/zink/zink_query.c | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_query.c b/src/gallium/drivers/zink/zink_query.c
index 2ec4c52b70a..1bf924a0cfb 100644
--- a/src/gallium/drivers/zink/zink_query.c
+++ b/src/gallium/drivers/zink/zink_query.c
@@ -612,19 +612,14 @@ zink_get_query_result(struct pipe_context *pctx,
 {
    struct zink_query *query = (void*)q;
    struct zink_context *ctx = zink_context(pctx);
-   if (is_cs_query(query)) {
-      if (wait) {
-         uint32_t batch_id = p_atomic_read(&query->batch_id.usage[ZINK_QUEUE_COMPUTE]);
-         zink_wait_on_batch(ctx, ZINK_QUEUE_COMPUTE, batch_id);
-      } else {
-         zink_flush_queue(ctx, ZINK_QUEUE_COMPUTE);
-      }
-   } else {
-      if (wait) {
-         zink_fence_wait(pctx);
-      } else
-         pctx->flush(pctx, NULL, 0);
-   }
+   enum zink_queue queue = is_cs_query(query) ? ZINK_QUEUE_COMPUTE : ZINK_QUEUE_GFX;
+   uint32_t batch_id = p_atomic_read(&query->batch_id.usage[queue]);
+
+   if (wait)
+      zink_wait_on_batch(ctx, queue, batch_id);
+   else if (batch_id == ctx->curr_batch)
+      zink_flush_queue(ctx, queue);
+
    return get_query_result(pctx, q, wait, result);
 }
 



More information about the mesa-commit mailing list