From f2e535e4fed5bdc13e11a443316a4b77cd5eb81a Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Wed, 23 Nov 2022 12:40:00 +0100 Subject: [PATCH] vk/runtime: Fix narrowing of timeline signal and wait value to u32. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit They are u64. Fixes deadlock in dEQP-VK.wsi.xcb.present_id_wait.wait.past_no_timeout. Signed-off-by: Hans-Kristian Arntzen Fixes: 9bffd81f1cb7 ("vulkan: Add common implementations of vkQueueSubmit and vkQueueWaitIdle") Reviewed-by: Marcin Ĺšlusarz Reviewed-by: Jason Ekstrand Part-of: --- src/vulkan/runtime/vk_queue.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vulkan/runtime/vk_queue.c b/src/vulkan/runtime/vk_queue.c index 8eeb2f7dbc9..cacca2f9b2c 100644 --- a/src/vulkan/runtime/vk_queue.c +++ b/src/vulkan/runtime/vk_queue.c @@ -679,7 +679,7 @@ vk_queue_submit(struct vk_queue *queue, sync = &semaphore->permanent; } - uint32_t wait_value = semaphore->type == VK_SEMAPHORE_TYPE_TIMELINE ? + uint64_t wait_value = semaphore->type == VK_SEMAPHORE_TYPE_TIMELINE ? info->waits[i].value : 0; submit->waits[i] = (struct vk_sync_wait) { @@ -756,7 +756,7 @@ vk_queue_submit(struct vk_queue *queue, info->signals[i].semaphore); struct vk_sync *sync = vk_semaphore_get_active_sync(semaphore); - uint32_t signal_value = info->signals[i].value; + uint64_t signal_value = info->signals[i].value; if (semaphore->type == VK_SEMAPHORE_TYPE_TIMELINE) { if (signal_value == 0) { result = vk_queue_set_lost(queue,