Graphics/BakedFrameGraph: Don't release in flight resources
This commit is contained in:
parent
40ecdda3cd
commit
f61deabe92
|
|
@ -36,7 +36,7 @@ namespace Nz
|
||||||
const std::shared_ptr<Texture>& GetAttachmentTexture(std::size_t attachmentIndex) const;
|
const std::shared_ptr<Texture>& GetAttachmentTexture(std::size_t attachmentIndex) const;
|
||||||
const std::shared_ptr<RenderPass>& GetRenderPass(std::size_t passIndex) const;
|
const std::shared_ptr<RenderPass>& GetRenderPass(std::size_t passIndex) const;
|
||||||
|
|
||||||
bool Resize(unsigned int width, unsigned int height);
|
bool Resize(RenderFrame& renderFrame);
|
||||||
|
|
||||||
BakedFrameGraph& operator=(const BakedFrameGraph&) = delete;
|
BakedFrameGraph& operator=(const BakedFrameGraph&) = delete;
|
||||||
BakedFrameGraph& operator=(BakedFrameGraph&&) noexcept = default;
|
BakedFrameGraph& operator=(BakedFrameGraph&&) noexcept = default;
|
||||||
|
|
|
||||||
|
|
@ -123,8 +123,9 @@ namespace Nz
|
||||||
return m_passes[physicalPassIndex].renderPass;
|
return m_passes[physicalPassIndex].renderPass;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BakedFrameGraph::Resize(unsigned int width, unsigned int height)
|
bool BakedFrameGraph::Resize(RenderFrame& renderFrame)
|
||||||
{
|
{
|
||||||
|
auto [width, height] = renderFrame.GetSize();
|
||||||
if (m_width == width && m_height == height)
|
if (m_width == width && m_height == height)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
@ -133,12 +134,12 @@ namespace Nz
|
||||||
// Delete previous textures to make some room in VRAM
|
// Delete previous textures to make some room in VRAM
|
||||||
for (auto& passData : m_passes)
|
for (auto& passData : m_passes)
|
||||||
{
|
{
|
||||||
passData.commandBuffer.reset();
|
renderFrame.PushForRelease(std::move(passData.commandBuffer));
|
||||||
passData.framebuffer.reset();
|
renderFrame.PushForRelease(std::move(passData.framebuffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto& textureData : m_textures)
|
for (auto& textureData : m_textures)
|
||||||
textureData.texture.reset();
|
renderFrame.PushForRelease(std::move(textureData.texture));
|
||||||
|
|
||||||
for (auto& textureData : m_textures)
|
for (auto& textureData : m_textures)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue