Use a compatible renderpass for fetching stencil data for readback

This commit is contained in:
baldurk
2022-02-09 18:01:40 +00:00
parent d5e6a735fb
commit e332b43abb
+8
View File
@@ -3281,6 +3281,7 @@ void VulkanReplay::GetTextureData(ResourceId tex, const Subresource &sub,
VkImageView *tmpView = NULL;
uint32_t numFBs = 0;
VkRenderPass tmpRP = VK_NULL_HANDLE;
VkRenderPass tmpRPStencil = VK_NULL_HANDLE;
VkDevice dev = m_pDriver->GetDev();
VkCommandBuffer cmd = m_pDriver->GetNextCmd();
@@ -3550,6 +3551,12 @@ void VulkanReplay::GetTextureData(ResourceId tex, const Subresource &sub,
{
viewInfo.format = GetViewCastedFormat(viewInfo.format, CompType::UInt);
attDesc.format = viewInfo.format;
vkr = vt->CreateRenderPass(Unwrap(dev), &rpinfo, NULL, &tmpRPStencil);
CheckVkResult(vkr);
fbinfo.renderPass = tmpRPStencil;
rpbegin.renderPass = tmpRPStencil;
vkr = vt->CreateImageView(Unwrap(dev), &viewInfo, NULL, &tmpView[i + numFBs]);
CheckVkResult(vkr);
NameUnwrappedVulkanObject(tmpView[i + numFBs], "GetTextureData tmpView[i]");
@@ -4139,6 +4146,7 @@ void VulkanReplay::GetTextureData(ResourceId tex, const Subresource &sub,
delete[] tmpFB;
delete[] tmpView;
vt->DestroyRenderPass(Unwrap(dev), tmpRP, NULL);
vt->DestroyRenderPass(Unwrap(dev), tmpRPStencil, NULL);
}
}