From ca79cfecb63a583ac1f76ac6e1d89074c7b3f3e8 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 10 Oct 2015 22:45:23 +0200 Subject: [PATCH] Don't try and wait on semaphores on replay * We don't track & restore semaphore signalled/unsignalled state on replay, so it's not valid anyway. Just be conservative and wait for idle. --- renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp index f74caad10..c0a156dbe 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp @@ -466,8 +466,10 @@ bool WrappedVulkan::Serialise_vkQueueWaitSemaphore(Serialiser* localSerialiser, if(m_State < WRITING) { + // we don't track semaphore state so we don't know whether this semaphore was signalled + // or unsignalled. To be conservative, we wait for idle. queue = GetResourceManager()->GetLiveHandle(qid); - ObjDisp(queue)->QueueWaitSemaphore(Unwrap(queue), Unwrap(GetResourceManager()->GetLiveHandle(sid))); + ObjDisp(queue)->QueueWaitIdle(Unwrap(queue)); } return true;