From: Nicolai Hähnle <nicolai.haeh...@amd.com> This got lost in a rebase but never hurt anything because we happened to always sync in fence_finish anyway... --- src/gallium/auxiliary/util/u_threaded_context.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/gallium/auxiliary/util/u_threaded_context.c b/src/gallium/auxiliary/util/u_threaded_context.c index b05cffd754d..ecd42724548 100644 --- a/src/gallium/auxiliary/util/u_threaded_context.c +++ b/src/gallium/auxiliary/util/u_threaded_context.c @@ -1915,33 +1915,32 @@ tc_flush(struct pipe_context *_pipe, struct pipe_fence_handle **fence, * communication overhead if the driver thread is currently idle and the * caller is going to wait for the fence immediately anyway. */ if (!(util_queue_fence_is_signalled(&last->fence) && (flags & PIPE_FLUSH_HINT_FINISH))) async = true; } if (async && tc->create_fence) { if (fence) { - struct tc_unflushed_batch_token *token = NULL; struct tc_batch *next = &tc->batch_slots[tc->next]; if (!next->token) { next->token = malloc(sizeof(*next->token)); if (!next->token) goto out_of_memory; pipe_reference_init(&next->token->ref, 1); next->token->tc = tc; } - screen->fence_reference(screen, fence, tc->create_fence(pipe, token)); + screen->fence_reference(screen, fence, tc->create_fence(pipe, next->token)); if (!*fence) goto out_of_memory; } struct tc_flush_payload *p = tc_add_struct_typed_call(tc, TC_CALL_flush, tc_flush_payload); p->tc = tc; p->fence = fence ? *fence : NULL; p->flags = flags | TC_FLUSH_ASYNC; -- 2.11.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev