From 801ef39895fa19b88695297ae9c3ae6ff7c158f5 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Fri, 11 Oct 2024 21:35:31 +0200 Subject: [PATCH] [dxvk] Use new layout transition helper in resolveImageDs --- src/dxvk/dxvk_context.cpp | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index 665358efb..c7de0ceea 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -4248,26 +4248,13 @@ namespace dxvk { && srcLayout != VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL) srcLayout = srcImage->pickLayout(VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); - if (srcImage->info().layout != srcLayout) { - m_execAcquires.accessImage(srcImage, srcSubresourceRange, - srcImage->info().layout, - srcImage->info().stages, 0, - srcLayout, - VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | - VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT); - } - - if (dstImage->info().layout != dstLayout) { - m_execAcquires.accessImage(dstImage, dstSubresourceRange, - VK_IMAGE_LAYOUT_UNDEFINED, dstImage->info().stages, 0, - dstLayout, - VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | - VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT); - } - - m_execAcquires.recordCommands(m_cmd); + addImageLayoutTransition(*srcImage, srcSubresourceRange, srcLayout, + VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, + VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, false); + addImageLayoutTransition(*dstImage, dstSubresourceRange, dstLayout, + VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, + VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, true); + flushImageLayoutTransitions(DxvkCmdBuffer::ExecBuffer); // Create a pair of views for the attachment resolve DxvkMetaResolveViews views(dstImage, region.dstSubresource,