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>
This commit is contained in:
committed by
Marge Bot
parent
913f99e90b
commit
f2e535e4fe
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user