Mesa (master): zink: minor refactoring of buffer map for read case

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed May 5 02:55:13 UTC 2021


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Sun Apr  4 12:55:34 2021 -0400

zink: minor refactoring of buffer map for read case

make this a little more flexible for the non-DONTBLOCK case

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

---

 src/gallium/drivers/zink/zink_resource.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c
index b1906ec2815..f877faed517 100644
--- a/src/gallium/drivers/zink/zink_resource.c
+++ b/src/gallium/drivers/zink/zink_resource.c
@@ -891,14 +891,14 @@ buffer_transfer_map(struct zink_context *ctx, struct zink_resource *res, unsigne
    } else if ((usage & PIPE_MAP_READ) && !(usage & PIPE_MAP_PERSISTENT)) {
       assert(!(usage & (TC_TRANSFER_MAP_THREADED_UNSYNC | PIPE_MAP_THREAD_SAFE)));
       uint32_t latest_write = get_most_recent_access(res, ZINK_RESOURCE_ACCESS_WRITE);
-      if (latest_write) {
-         if (usage & PIPE_MAP_DONTBLOCK) {
-            if (latest_write == ctx->curr_batch ||
-               !zink_check_batch_completion(ctx, latest_write))
-               return NULL;
-         } else
-            zink_wait_on_batch(ctx, latest_write);
+      if (usage & PIPE_MAP_DONTBLOCK) {
+         if (latest_write &&
+             (latest_write == ctx->curr_batch || !zink_check_batch_completion(ctx, latest_write)))
+            return NULL;
+         latest_write = 0;
       }
+      if (latest_write)
+         zink_wait_on_batch(ctx, latest_write);
    }
 
    if (!ptr) {



More information about the mesa-commit mailing list