diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index 76ec620d9..b642e58bc 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -1211,17 +1211,21 @@ namespace dxvk { const VkImageSubresourceRange& dstSubresources, VkImageLayout srcLayout, VkImageLayout dstLayout) { - m_barriers.accessImage( - dstImage, dstSubresources, - srcLayout, - dstImage->info().stages, - dstImage->info().access, - dstLayout, - dstImage->info().stages, - dstImage->info().access); - m_barriers.recordCommands(m_cmd); + this->spillRenderPass(); - m_cmd->trackResource(dstImage); + if (srcLayout != dstLayout) { + m_barriers.accessImage( + dstImage, dstSubresources, + srcLayout, + dstImage->info().stages, + dstImage->info().access, + dstLayout, + dstImage->info().stages, + dstImage->info().access); + m_barriers.recordCommands(m_cmd); + + m_cmd->trackResource(dstImage); + } }