From 1bd83cca23bb5bcd1831de49ebd83a2bf113ee8a Mon Sep 17 00:00:00 2001 From: MagicPoncho Date: Fri, 22 Jun 2018 11:29:26 -0400 Subject: [PATCH] Add buffer barriers to "Usage in frame" view This is very helpful to debug missing barriers by matching the workflow offered for images. --- renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp index 2e55e4c89..7d595d6fd 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -2081,11 +2081,16 @@ bool WrappedVulkan::Serialise_vkCmdPipelineBarrier( RemapQueueFamilyIndices(bufBarriers.back().srcQueueFamilyIndex, bufBarriers.back().dstQueueFamilyIndex); + + if(IsLoading(m_State)) + { + m_BakedCmdBufferInfo[m_LastCmdBufferID].resourceUsage.push_back(std::make_pair( + GetResID(pBufferMemoryBarriers[i].buffer), + EventUsage(m_BakedCmdBufferInfo[m_LastCmdBufferID].curEventID, ResourceUsage::Barrier))); + } } } - ResourceId origcmd = GetResourceManager()->GetOriginalID(GetResID(commandBuffer)); - for(uint32_t i = 0; i < imageMemoryBarrierCount; i++) { if(pImageMemoryBarriers[i].image != VK_NULL_HANDLE) @@ -2100,9 +2105,9 @@ bool WrappedVulkan::Serialise_vkCmdPipelineBarrier( if(IsLoading(m_State)) { - m_BakedCmdBufferInfo[origcmd].resourceUsage.push_back(std::make_pair( + m_BakedCmdBufferInfo[m_LastCmdBufferID].resourceUsage.push_back(std::make_pair( GetResID(pImageMemoryBarriers[i].image), - EventUsage(m_BakedCmdBufferInfo[origcmd].curEventID, ResourceUsage::Barrier))); + EventUsage(m_BakedCmdBufferInfo[m_LastCmdBufferID].curEventID, ResourceUsage::Barrier))); } } } @@ -3998,4 +4003,4 @@ INSTANTIATE_FUNCTION_SERIALISED(void, vkCmdInsertDebugUtilsLabelEXT, VkCommandBu const VkDebugUtilsLabelEXT *pLabelInfo); INSTANTIATE_FUNCTION_SERIALISED(void, vkCmdSetDeviceMask, VkCommandBuffer commandBuffer, - uint32_t deviceMask); \ No newline at end of file + uint32_t deviceMask);