nvk: Only wait on the upload queue if there are commands

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30596>
This commit is contained in:
Faith Ekstrand 2024-08-05 18:26:50 -05:00 committed by Marge Bot
parent 608d521086
commit 296746d4b9

View file

@ -294,20 +294,22 @@ nvk_queue_submit_exec(struct nvk_queue *queue,
const bool sync = pdev->debug_flags & NVK_DEBUG_PUSH_SYNC;
uint64_t upload_time_point;
result = nvk_upload_queue_flush(dev, &dev->upload, &upload_time_point);
if (result != VK_SUCCESS)
return result;
if (upload_time_point > 0) {
struct vk_sync_wait wait = {
.sync = dev->upload.sync,
.stage_mask = ~0,
.wait_value = upload_time_point,
};
result = nvkmd_ctx_wait(queue->exec_ctx, &queue->vk.base, 1, &wait);
if (submit->command_buffer_count > 0) {
uint64_t upload_time_point;
result = nvk_upload_queue_flush(dev, &dev->upload, &upload_time_point);
if (result != VK_SUCCESS)
goto fail;
return result;
if (upload_time_point > 0) {
struct vk_sync_wait wait = {
.sync = dev->upload.sync,
.stage_mask = ~0,
.wait_value = upload_time_point,
};
result = nvkmd_ctx_wait(queue->exec_ctx, &queue->vk.base, 1, &wait);
if (result != VK_SUCCESS)
goto fail;
}
}
result = nvkmd_ctx_wait(queue->exec_ctx, &queue->vk.base,