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;