From a7abc65a584165177da52c40c0d2069261dad689 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Sun, 6 Dec 2020 23:22:45 +0200 Subject: [PATCH] anv: only signal wsi fence BO on last command buffer I'm pretty sure this doesn't fix anything because the WSI code only use a single VkSubmitInfo, but better be safe. Signed-off-by: Lionel Landwerlin Fixes: ccb7d606f1a293 ("anv: Use submit-time implicit sync instead of allocate-time") Reviewed-by: Jason Ekstrand Part-of: (cherry picked from commit 64cb03a52dc97e737b1e24eec6499223021174ce) --- .pick_status.json | 2 +- src/intel/vulkan/anv_queue.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 68e8b024cf1..7f3ec795e20 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -868,7 +868,7 @@ "description": "anv: only signal wsi fence BO on last command buffer", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "ccb7d606f1a2939d5a784f1ec491cffc62e8f814" }, diff --git a/src/intel/vulkan/anv_queue.c b/src/intel/vulkan/anv_queue.c index 9a38ca85c9e..7d52d74cfc2 100644 --- a/src/intel/vulkan/anv_queue.c +++ b/src/intel/vulkan/anv_queue.c @@ -1266,7 +1266,8 @@ VkResult anv_QueueSubmit( num_in_semaphores = pSubmits[i].waitSemaphoreCount; } - if (j == pSubmits[i].commandBufferCount - 1) { + const bool is_last_cmd_buffer = j == pSubmits[i].commandBufferCount - 1; + if (is_last_cmd_buffer) { /* Only the last batch gets the out semaphores */ out_semaphores = pSubmits[i].pSignalSemaphores; out_values = signal_values; @@ -1276,7 +1277,8 @@ VkResult anv_QueueSubmit( result = anv_queue_submit(queue, cmd_buffer, in_semaphores, in_values, num_in_semaphores, out_semaphores, out_values, num_out_semaphores, - wsi_signal_bo, execbuf_fence, + is_last_cmd_buffer ? wsi_signal_bo : NULL, + execbuf_fence, perf_info ? perf_info->counterPassIndex : 0); if (result != VK_SUCCESS) goto out;