diff --git a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp index 4f2beec53..235e6dcc0 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -1282,6 +1282,8 @@ bool WrappedVulkan::Serialise_vkCmdEndRenderPass(SerialiserType &ser, VkCommandB { commandBuffer = RerecordCmdBuf(m_LastCmdBufferID); + std::vector imgBarriers = GetImplicitRenderPassBarriers(~0U); + // always track this, for WrappedVulkan::IsDrawInRenderPass() m_BakedCmdBufferInfo[m_LastCmdBufferID].state.renderPass = ResourceId(); m_BakedCmdBufferInfo[m_LastCmdBufferID].state.framebuffer = ResourceId(); @@ -1293,8 +1295,6 @@ bool WrappedVulkan::Serialise_vkCmdEndRenderPass(SerialiserType &ser, VkCommandB ObjDisp(commandBuffer)->CmdEndRenderPass(Unwrap(commandBuffer)); - std::vector imgBarriers = GetImplicitRenderPassBarriers(~0U); - ResourceId cmd = GetResID(commandBuffer); GetResourceManager()->RecordBarriers(m_BakedCmdBufferInfo[cmd].imgbarriers, m_ImageLayouts, (uint32_t)imgBarriers.size(), imgBarriers.data()); @@ -1664,6 +1664,8 @@ bool WrappedVulkan::Serialise_vkCmdEndRenderPass2KHR(SerialiserType &ser, { commandBuffer = RerecordCmdBuf(m_LastCmdBufferID); + std::vector imgBarriers = GetImplicitRenderPassBarriers(~0U); + // always track this, for WrappedVulkan::IsDrawInRenderPass() m_BakedCmdBufferInfo[m_LastCmdBufferID].state.renderPass = ResourceId(); m_BakedCmdBufferInfo[m_LastCmdBufferID].state.framebuffer = ResourceId(); @@ -1675,8 +1677,6 @@ bool WrappedVulkan::Serialise_vkCmdEndRenderPass2KHR(SerialiserType &ser, ObjDisp(commandBuffer)->CmdEndRenderPass2KHR(Unwrap(commandBuffer), &unwrappedEndInfo); - std::vector imgBarriers = GetImplicitRenderPassBarriers(~0U); - ResourceId cmd = GetResID(commandBuffer); GetResourceManager()->RecordBarriers(m_BakedCmdBufferInfo[cmd].imgbarriers, m_ImageLayouts, (uint32_t)imgBarriers.size(), imgBarriers.data());