[dxvk] Use copy_commands2 functions for image resolves

Same idea as with blits, don't expose VkImageResolve2.
This commit is contained in:
Philip Rebohle 2022-07-19 14:10:47 +02:00
parent ff81323228
commit f39d49772d
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 19 additions and 15 deletions

View File

@ -616,16 +616,8 @@ namespace dxvk {
void cmdResolveImage(
VkImage srcImage,
VkImageLayout srcImageLayout,
VkImage dstImage,
VkImageLayout dstImageLayout,
uint32_t regionCount,
const VkImageResolve* pRegions) {
m_vkd->vkCmdResolveImage(m_execBuffer,
srcImage, srcImageLayout,
dstImage, dstImageLayout,
regionCount, pRegions);
const VkResolveImageInfo2* resolveInfo) {
m_vkd->vkCmdResolveImage2(m_execBuffer, resolveInfo);
}

View File

@ -3705,11 +3705,23 @@ namespace dxvk {
}
m_execAcquires.recordCommands(m_cmd);
m_cmd->cmdResolveImage(
srcImage->handle(), srcLayout,
dstImage->handle(), dstLayout,
1, &region);
VkImageResolve2 resolveRegion = { VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 };
resolveRegion.srcSubresource = region.srcSubresource;
resolveRegion.srcOffset = region.srcOffset;
resolveRegion.dstSubresource = region.dstSubresource;
resolveRegion.dstOffset = region.dstOffset;
resolveRegion.extent = region.extent;
VkResolveImageInfo2 resolveInfo = { VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 };
resolveInfo.srcImage = srcImage->handle();
resolveInfo.srcImageLayout = srcLayout;
resolveInfo.dstImage = dstImage->handle();
resolveInfo.dstImageLayout = dstLayout;
resolveInfo.regionCount = 1;
resolveInfo.pRegions = &resolveRegion;
m_cmd->cmdResolveImage(&resolveInfo);
m_execBarriers.accessImage(
dstImage, dstSubresourceRange, dstLayout,