From 2091a6c7d5a327d61942fff0d066ab68efcabc39 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 9 Mar 2016 19:54:13 +0100 Subject: [PATCH] Replaying vkResetFences() calls is necessary. Refs #210 --- renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp index 671c7b153..ad4216036 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp @@ -202,8 +202,13 @@ bool WrappedVulkan::Serialise_vkResetFences( if(m_State < WRITING) { - // we don't care about fence states as we cannot record them perfectly and just - // do full waitidle flushes. + // we don't care about fence states ourselves as we cannot record them perfectly and just + // do full waitidle flushes. However if the fence is passed to vkQueueSubmit we need to + // make sure it is correctly unsignalled. + + device = GetResourceManager()->GetLiveHandle(id); + + ObjDisp(device)->ResetFences(Unwrap(device), (uint32_t)fences.size(), &fences[0]); } return true;