vk/runtime: Fix narrowing of timeline signal and wait value to u32.

They are u64. Fixes deadlock in
dEQP-VK.wsi.xcb.present_id_wait.wait.past_no_timeout.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Fixes: 9bffd81f1c ("vulkan: Add common implementations of vkQueueSubmit
and vkQueueWaitIdle")

Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19951>
(cherry picked from commit f2e535e4fe)
This commit is contained in:
Hans-Kristian Arntzen 2022-11-23 12:40:00 +01:00 committed by Dylan Baker
parent 2a77b08cea
commit 9154a88b11
2 changed files with 3 additions and 3 deletions

View file

@ -1759,7 +1759,7 @@
"description": "vk/runtime: Fix narrowing of timeline signal and wait value to u32.",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "9bffd81f1cb7c4a653d18b4b43296f89caed4db7"
},

View file

@ -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) {
@ -746,7 +746,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,