Clear deferred descriptor buffer copies after executing them

* We don't want to do these copies multiple times, similar to indirect copies.
This commit is contained in:
baldurk
2026-02-16 15:08:08 +00:00
parent 5a00a246c4
commit edbcd6d592
@@ -2649,6 +2649,7 @@ bool WrappedVulkan::Serialise_vkCmdEndRenderPass(SerialiserType &ser, VkCommandB
descVersion.copyOffsets);
m_BakedCmdBufferInfo[m_LastCmdBufferID].indirectCopies.clear();
m_BakedCmdBufferInfo[m_LastCmdBufferID].descBufDeferredCopies.clear();
rdcarray<VkImageMemoryBarrier> imgBarriers = GetImplicitRenderPassBarriers(~0U);
@@ -3320,6 +3321,9 @@ bool WrappedVulkan::Serialise_vkCmdEndRenderPass2(SerialiserType &ser, VkCommand
CopyVersionedDescriptorBuffer(commandBuffer, descVersion.unwrappedDstBuffer,
descVersion.copyOffsets);
m_BakedCmdBufferInfo[m_LastCmdBufferID].indirectCopies.clear();
m_BakedCmdBufferInfo[m_LastCmdBufferID].descBufDeferredCopies.clear();
rdcarray<VkImageMemoryBarrier> imgBarriers = GetImplicitRenderPassBarriers(~0U);
GetResourceManager()->RecordBarriers(m_BakedCmdBufferInfo[m_LastCmdBufferID].imageStates,
@@ -8201,6 +8205,7 @@ bool WrappedVulkan::Serialise_vkCmdEndRendering(SerialiserType &ser, VkCommandBu
descVersion.copyOffsets);
m_BakedCmdBufferInfo[m_LastCmdBufferID].indirectCopies.clear();
m_BakedCmdBufferInfo[m_LastCmdBufferID].descBufDeferredCopies.clear();
VulkanRenderState &state = m_BakedCmdBufferInfo[m_LastCmdBufferID].state;
@@ -8488,6 +8493,7 @@ bool WrappedVulkan::Serialise_vkCmdEndRendering2EXT(SerialiserType &ser,
descVersion.copyOffsets);
m_BakedCmdBufferInfo[m_LastCmdBufferID].indirectCopies.clear();
m_BakedCmdBufferInfo[m_LastCmdBufferID].descBufDeferredCopies.clear();
VulkanRenderState &state = m_BakedCmdBufferInfo[m_LastCmdBufferID].state;