Fix depth/stencil barrier aspects for discard patterns

This commit is contained in:
baldurk
2022-02-24 19:00:34 +00:00
parent 24d0922005
commit 7eec1f19e7
+6 -6
View File
@@ -1900,6 +1900,11 @@ void VulkanDebugManager::FillWithDiscardPattern(VkCommandBuffer cmd, DiscardType
VkMarkerRegion marker(
cmd, StringFormat::Fmt("FillWithDiscardPattern %s", ToStr(GetResID(image)).c_str()));
VkImageAspectFlags imAspects = FormatImageAspects(imInfo.format);
VkImageSubresourceRange barrierDiscardRange = discardRange;
barrierDiscardRange.aspectMask = imAspects;
if(imInfo.samples > 1)
{
WrappedVulkan *driver = m_pDriver;
@@ -1908,8 +1913,6 @@ void VulkanDebugManager::FillWithDiscardPattern(VkCommandBuffer cmd, DiscardType
if(IsDepthOrStencilFormat(imInfo.format))
depth = true;
VkImageAspectFlags imAspects = FormatImageAspects(imInfo.format);
rdcpair<VkFormat, VkSampleCountFlagBits> key = {imInfo.format, imInfo.samples};
DiscardPassData &passdata = m_DiscardPipes[key];
@@ -2083,9 +2086,6 @@ void VulkanDebugManager::FillWithDiscardPattern(VkCommandBuffer cmd, DiscardType
uint32_t pass = 0;
VkImageSubresourceRange barrierDiscardRange = discardRange;
barrierDiscardRange.aspectMask = imAspects;
VkImageMemoryBarrier dstimBarrier = {
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, NULL,
VK_ACCESS_ALL_READ_BITS | VK_ACCESS_ALL_WRITE_BITS,
@@ -2343,7 +2343,7 @@ void VulkanDebugManager::FillWithDiscardPattern(VkCommandBuffer cmd, DiscardType
VK_QUEUE_FAMILY_IGNORED,
VK_QUEUE_FAMILY_IGNORED,
Unwrap(image),
discardRange,
barrierDiscardRange,
};
DoPipelineBarrier(cmd, 1, &dstimBarrier);