1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-14 04:29:15 +01:00

[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.
This commit is contained in:
Philip Rebohle 2025-03-10 21:13:53 +01:00
parent ab9a503943
commit 69d2ddf095

View File

@ -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);