mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-11 10:24:10 +01:00
[dxvk] Ensure image compatibility for packed depth-stencil copies
This commit is contained in:
parent
56a07b5bd0
commit
fd439c3e54
@ -723,6 +723,14 @@ namespace dxvk {
|
|||||||
|
|
||||||
this->invalidateState();
|
this->invalidateState();
|
||||||
|
|
||||||
|
DxvkImageUsageInfo usageInfo = { };
|
||||||
|
usageInfo.usage = VK_IMAGE_USAGE_SAMPLED_BIT;
|
||||||
|
|
||||||
|
if (!ensureImageCompatibility(srcImage, usageInfo)) {
|
||||||
|
Logger::err(str::format("DxvkContext: copyDepthStencilImageToPackedBuffer: Unsupported image:"
|
||||||
|
"\n src format: ", srcImage->info().format));
|
||||||
|
}
|
||||||
|
|
||||||
// Retrieve compute pipeline for the given format
|
// Retrieve compute pipeline for the given format
|
||||||
auto pipeInfo = m_common->metaPack().getPackPipeline(format);
|
auto pipeInfo = m_common->metaPack().getPackPipeline(format);
|
||||||
|
|
||||||
@ -1005,6 +1013,15 @@ namespace dxvk {
|
|||||||
|
|
||||||
this->prepareImage(dstImage, vk::makeSubresourceRange(dstSubresource));
|
this->prepareImage(dstImage, vk::makeSubresourceRange(dstSubresource));
|
||||||
|
|
||||||
|
DxvkImageUsageInfo usageInfo = { };
|
||||||
|
usageInfo.usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;
|
||||||
|
|
||||||
|
if (!ensureImageCompatibility(dstImage, usageInfo)) {
|
||||||
|
Logger::err(str::format("DxvkCOntext: copyPackedBufferToDepthStencilImage: Unsupported image:"
|
||||||
|
"\n dst format: ", dstImage->info().format));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_execBarriers.isBufferDirty(srcBuffer->getSliceHandle(), DxvkAccess::Read)
|
if (m_execBarriers.isBufferDirty(srcBuffer->getSliceHandle(), DxvkAccess::Read)
|
||||||
|| m_execBarriers.isImageDirty(dstImage, vk::makeSubresourceRange(dstSubresource), DxvkAccess::Write))
|
|| m_execBarriers.isImageDirty(dstImage, vk::makeSubresourceRange(dstSubresource), DxvkAccess::Write))
|
||||||
m_execBarriers.recordCommands(m_cmd);
|
m_execBarriers.recordCommands(m_cmd);
|
||||||
|
Loading…
Reference in New Issue
Block a user