Graphics/ForwardFramePipeline: Fix shadow maps not showing up until scene update

This commit is contained in:
SirLynix 2023-03-14 18:08:05 +01:00
parent 88b6ff63b7
commit c700a7e45d
1 changed files with 6 additions and 1 deletions

View File

@ -314,11 +314,16 @@ namespace Nz
} }
m_removedWorldInstances.Clear(); m_removedWorldInstances.Clear();
bool frameGraphInvalidated;
if (m_rebuildFrameGraph) if (m_rebuildFrameGraph)
{ {
renderFrame.PushForRelease(std::move(m_bakedFrameGraph)); renderFrame.PushForRelease(std::move(m_bakedFrameGraph));
m_bakedFrameGraph = BuildFrameGraph(); m_bakedFrameGraph = BuildFrameGraph();
m_bakedFrameGraph.Resize(renderFrame);
frameGraphInvalidated = true;
} }
else
frameGraphInvalidated = m_bakedFrameGraph.Resize(renderFrame);
// Update UBOs and materials // Update UBOs and materials
renderFrame.Execute([&](CommandBufferBuilder& builder) renderFrame.Execute([&](CommandBufferBuilder& builder)
@ -390,7 +395,7 @@ namespace Nz
viewerData.debugDrawPass->Prepare(renderFrame); viewerData.debugDrawPass->Prepare(renderFrame);
} }
if (m_bakedFrameGraph.Resize(renderFrame)) if (frameGraphInvalidated)
{ {
const std::shared_ptr<TextureSampler>& sampler = graphics->GetSamplerCache().Get({}); const std::shared_ptr<TextureSampler>& sampler = graphics->GetSamplerCache().Get({});
for (auto& viewerData : m_viewerPool) for (auto& viewerData : m_viewerPool)