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