diff --git a/src/imagination/vulkan/pvr_queue.c b/src/imagination/vulkan/pvr_queue.c index 472fc9db983..3a358355d80 100644 --- a/src/imagination/vulkan/pvr_queue.c +++ b/src/imagination/vulkan/pvr_queue.c @@ -901,6 +901,9 @@ static VkResult pvr_process_queue_waits(struct pvr_queue *queue, }; } + if (!stage_wait_count) + continue; + result = vk_sync_create(&device->vk, &device->pdevice->ws->syncobj_type, 0U, @@ -944,10 +947,13 @@ static VkResult pvr_driver_queue_submit(struct vk_queue *queue, if (result != VK_SUCCESS) return result; - result = - pvr_process_queue_waits(driver_queue, submit->waits, submit->wait_count); - if (result != VK_SUCCESS) - return result; + if (submit->wait_count) { + result = pvr_process_queue_waits(driver_queue, + submit->waits, + submit->wait_count); + if (result != VK_SUCCESS) + return result; + } for (uint32_t i = 0U; i < submit->command_buffer_count; i++) { result = pvr_process_cmd_buffer(