Mesa (master): zink: assume fence has already completed if a batch state isn't found
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Mar 30 15:21:23 UTC 2021
Module: Mesa
Branch: master
Commit: f9ee9c4539d93f9aeb564cf54f23074f60338d9c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f9ee9c4539d93f9aeb564cf54f23074f60338d9c
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Sun Mar 28 23:34:28 2021 -0400
zink: assume fence has already completed if a batch state isn't found
we're not going to be waiting on fences from the future, so if we can't
find a fence then it must have completed
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9885>
---
src/gallium/drivers/zink/zink_context.c | 15 +++------------
1 file changed, 3 insertions(+), 12 deletions(-)
diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c
index 01315d10023..33b7c0ff521 100644
--- a/src/gallium/drivers/zink/zink_context.c
+++ b/src/gallium/drivers/zink/zink_context.c
@@ -1940,18 +1940,9 @@ zink_wait_on_batch(struct zink_context *ctx, uint32_t batch_id)
else {
struct hash_entry *he = _mesa_hash_table_search_pre_hashed(&ctx->batch_states, batch_id, (void*)(uintptr_t)batch_id);
if (!he) {
- util_dynarray_foreach(&ctx->free_batch_states, struct zink_batch_state*, bs) {
- if ((*bs)->fence.batch_id == batch_id) {
- simple_mtx_unlock(&ctx->batch_mtx);
- return;
- }
- }
- if (ctx->last_fence && ctx->last_fence->batch_id > batch_id) {
- /* already completed */
- simple_mtx_unlock(&ctx->batch_mtx);
- return;
- }
- unreachable("should've found batch state");
+ /* batch has already completed */
+ simple_mtx_unlock(&ctx->batch_mtx);
+ return;
}
fence = he->data;
}
More information about the mesa-commit
mailing list