diff --git a/renderdoc/api/replay/vk_pipestate.h b/renderdoc/api/replay/vk_pipestate.h index 6c04b8469..ff8800bf2 100644 --- a/renderdoc/api/replay/vk_pipestate.h +++ b/renderdoc/api/replay/vk_pipestate.h @@ -426,6 +426,9 @@ struct RenderPass DOCUMENT("The :class:`ResourceId` of the render pass."); ResourceId obj; + DOCUMENT("The index of the current active subpass."); + uint32_t subpass; + // VKTODOMED renderpass and subpass information here DOCUMENT("A list of indices into the framebuffer attachments for input attachments."); diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index 9777cf8d6..713097c06 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -3090,6 +3090,7 @@ void VulkanReplay::SavePipelineState() { // Renderpass m_VulkanPipelineState.Pass.renderpass.obj = rm->GetOriginalID(state.renderPass); + m_VulkanPipelineState.Pass.renderpass.subpass = state.subpass; if(state.renderPass != ResourceId()) { m_VulkanPipelineState.Pass.renderpass.inputAttachments = diff --git a/renderdoc/replay/renderdoc_serialise.inl b/renderdoc/replay/renderdoc_serialise.inl index 7fa777aae..18c0c1484 100644 --- a/renderdoc/replay/renderdoc_serialise.inl +++ b/renderdoc/replay/renderdoc_serialise.inl @@ -2072,12 +2072,13 @@ template void DoSerialise(SerialiserType &ser, VKPipe::RenderPass &el) { SERIALISE_MEMBER(obj); + SERIALISE_MEMBER(subpass); SERIALISE_MEMBER(inputAttachments); SERIALISE_MEMBER(colorAttachments); SERIALISE_MEMBER(resolveAttachments); SERIALISE_MEMBER(depthstencilAttachment); - SIZE_CHECK(64); + SIZE_CHECK(72); } template @@ -2127,7 +2128,7 @@ void DoSerialise(SerialiserType &ser, VKPipe::CurrentPass &el) SERIALISE_MEMBER(framebuffer); SERIALISE_MEMBER(renderArea); - SIZE_CHECK(120); + SIZE_CHECK(128); } template @@ -2178,7 +2179,7 @@ void DoSerialise(SerialiserType &ser, VKPipe::State &el) SERIALISE_MEMBER(images); - SIZE_CHECK(1280); + SIZE_CHECK(1288); } #pragma endregion Vulkan pipeline state