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;
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;