From f29ddf481706cce1102e33e7f0492d49bf511632 Mon Sep 17 00:00:00 2001 From: Donald Robson Date: Fri, 22 Sep 2023 13:51:50 +0100 Subject: [PATCH] pvr: Stop creating waits when there are no waits This prevents the creation of unused syncobjs in the kernel by not processing waits when there aren't any waits given in the submit info. Signed-off-by: Donald Robson Acked-by: Alyssa Rosenzweig Part-of: --- src/imagination/vulkan/pvr_queue.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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(