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;