diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index 8568790dc..c3c8faacf 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -2540,9 +2540,12 @@ void WrappedVulkan::AddUsage(VulkanDrawcallTreeNode &drawNode, vectorGetOriginalID(state.pipeline); + ResourceId origShad = GetResourceManager()->GetOriginalID(sh.module); + // 5 is the compute shader's index (VS, TCS, TES, GS, FS, CS) - const vector &descSets = - (shad == 5 ? m_RenderState.compute.descSets : m_RenderState.graphics.descSets); + const vector &descSets = + (shad == 5 ? state.computeDescSets : state.graphicsDescSets); RDCASSERT(sh.mapping); @@ -2591,6 +2594,9 @@ void WrappedVulkan::AddUsage(VulkanDrawcallTreeNode &drawNode, vectorGetOriginalID(descSets[bindset].descSet); + ResourceId layoutId = GetResourceManager()->GetOriginalID(descset.layout); + if(layout.bindings.empty()) { msg.description = diff --git a/renderdoc/driver/vulkan/vk_core.h b/renderdoc/driver/vulkan/vk_core.h index 668734222..b84bea516 100644 --- a/renderdoc/driver/vulkan/vk_core.h +++ b/renderdoc/driver/vulkan/vk_core.h @@ -340,6 +340,13 @@ private: { ResourceId pipeline; + struct DescriptorAndOffsets + { + ResourceId descSet; + vector offsets; + }; + vector graphicsDescSets, computeDescSets; + uint32_t idxWidth; ResourceId ibuffer; vector vbuffers; diff --git a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp index c5e713058..5ce25cedd 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -1208,9 +1208,10 @@ bool WrappedVulkan::Serialise_vkCmdBindDescriptorSets( layout = GetResourceManager()->GetLiveHandle(layoutid); // track while reading, as we need to track resource usage - vector &descsets = - (bind == VK_PIPELINE_BIND_POINT_GRAPHICS) ? m_RenderState.graphics.descSets - : m_RenderState.compute.descSets; + vector &descsets = + (bind == VK_PIPELINE_BIND_POINT_GRAPHICS) + ? m_BakedCmdBufferInfo[m_LastCmdBufferID].state.graphicsDescSets + : m_BakedCmdBufferInfo[m_LastCmdBufferID].state.computeDescSets; // expand as necessary if(descsets.size() < first + numSets)