From b771cdbfc6a0f0a96fba73a1e69d85c18d69af48 Mon Sep 17 00:00:00 2001 From: Brandon Mak Date: Tue, 3 Jan 2023 07:41:37 +0800 Subject: [PATCH] Added barrier for shadow maps --- .../MiddleEnd/Lights/SHLightingSubSystem.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.cpp index 7a4a3203..87b2ab62 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.cpp @@ -560,6 +560,7 @@ namespace SHADE // Prepare to write to descriptor shadowMapImageSamplers.emplace_back(NEW_IMAGE_VIEW, shadowMapSampler, vk::ImageLayout::eShaderReadOnlyOptimal); + // Update descriptor set static constexpr uint32_t SHADOW_MAP_DESC_SET_INDEX = 0; uint32_t const SHADOW_MAP_DESC_ARRAY_INDEX = shadowMapImageSamplers.size() - 1; shadowMapDescriptorSet->ModifyWriteDescImage @@ -577,6 +578,23 @@ namespace SHADE SHGraphicsConstants::DescriptorSetBindings::SHADOW_MAP_IMAGE_SAMPLER_DATA ); + // add to barriers + shadowMapMemoryBarriers.push_back (vk::ImageMemoryBarrier + { + .oldLayout = vk::ImageLayout::eDepthAttachmentOptimal, + .newLayout = vk::ImageLayout::eShaderReadOnlyOptimal, + .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, + .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, + .image = newShadowMap->GetImage()->GetVkImage(), + .subresourceRange = vk::ImageSubresourceRange + { + .aspectMask = vk::ImageAspectFlagBits::eDepth, + .baseMipLevel = 0, + .levelCount = 1, + .baseArrayLayer = 0, + .layerCount = 1, + } + }); } Handle SHLightingSubSystem::GetLightDataDescriptorSet(void) const noexcept