From 69d2ddf095e8754378e37267d288793e1365237f Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Mon, 10 Mar 2025 21:13:53 +0100 Subject: [PATCH] [dxvk] Use resolveImageRp directly in flushResolves We know that the resolve image is compatible with render pass resolves when we try to fold the resolve into the render pass, so just take the shortcut. --- src/dxvk/dxvk_context.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index a8476aa70..c03197e52 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -2471,6 +2471,9 @@ namespace dxvk { auto srcSubresource = attachment.view->imageSubresources(); auto dstSubresource = resolve.imageView->imageSubresources(); + prepareImage(attachment.view->image(), srcSubresource); + prepareImage(resolve.imageView->image(), dstSubresource); + while (resolve.layerMask) { uint32_t layerIndex = bit::tzcnt(resolve.layerMask); uint32_t layerCount = bit::tzcnt(~(resolve.layerMask >> layerIndex)); @@ -2486,7 +2489,7 @@ namespace dxvk { region.srcSubresource.layerCount = layerCount; region.extent = resolve.imageView->mipLevelExtent(0u); - resolveImage(resolve.imageView->image(), attachment.view->image(), + resolveImageRp(resolve.imageView->image(), attachment.view->image(), region, attachment.view->info().format, resolve.depthMode, resolve.stencilMode); resolve.layerMask &= ~0u << (layerIndex + layerCount);