From 9fceda593f800940c8173799511a8f9583f50410 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 6 Nov 2015 21:01:04 +0100 Subject: [PATCH] Fix recording transitions into wrong place on capture --- renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp | 2 +- renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp | 6 +++--- renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp index 38a9362d6..de4777aef 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -1739,7 +1739,7 @@ void WrappedVulkan::vkCmdPipelineBarrier( ResourceId cmd = GetResID(cmdBuffer); { SCOPED_LOCK(m_ImageLayoutsLock); - GetResourceManager()->RecordTransitions(m_BakedCmdBufferInfo[cmd].imgtransitions, m_ImageLayouts, (uint32_t)imTrans.size(), &imTrans[0]); + GetResourceManager()->RecordTransitions(GetRecord(cmdBuffer)->cmdInfo->imgtransitions, m_ImageLayouts, (uint32_t)imTrans.size(), &imTrans[0]); } } } diff --git a/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp index 48ea823ab..716c093b9 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp @@ -355,13 +355,13 @@ VkResult WrappedVulkan::vkQueueSubmit( { ResourceId cmd = GetResID(pCmdBuffers[i]); + VkResourceRecord *record = GetRecord(pCmdBuffers[i]); + { SCOPED_LOCK(m_ImageLayoutsLock); - GetResourceManager()->ApplyTransitions(m_BakedCmdBufferInfo[cmd].imgtransitions, m_ImageLayouts); + GetResourceManager()->ApplyTransitions(record->cmdInfo->imgtransitions, m_ImageLayouts); } - VkResourceRecord *record = GetRecord(pCmdBuffers[i]); - // need to lock the whole section of code, not just the check on // m_State, as we also need to make sure we don't check the state, // start marking dirty resources then while we're doing so the diff --git a/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp index 297727026..fcddb9cdc 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp @@ -849,7 +849,7 @@ void WrappedVulkan::vkCmdWaitEvents( ResourceId cmd = GetResID(cmdBuffer); { SCOPED_LOCK(m_ImageLayoutsLock); - GetResourceManager()->RecordTransitions(m_BakedCmdBufferInfo[cmd].imgtransitions, m_ImageLayouts, (uint32_t)imTrans.size(), &imTrans[0]); + GetResourceManager()->RecordTransitions(GetRecord(cmdBuffer)->cmdInfo->imgtransitions, m_ImageLayouts, (uint32_t)imTrans.size(), &imTrans[0]); } record->AddChunk(scope.Get());