summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAurélien Brooke <aurelien@bahiasoft.fr>2022-12-11 12:20:21 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-12-15 10:01:21 +0000
commitc061e94bc1da6ab9b4818590a7ab8e127ce9982e (patch)
tree4867c38132dc89000f94f46cb3a0d006f68c3c1e
parentc1a833906d5458468c6157263aaf392fa0e67396 (diff)
downloadqt3d-c061e94bc1da6ab9b4818590a7ab8e127ce9982e.tar.gz
RHIResourceManagers: fix the leak of RHIShader
The Renderer seems to already take care of deleting the abandoned shaders thanks to the APIShaderManager::purge() method. However, when Qt3D is shut down, there remain active RHIShaders in the RHIShaderManager::m_apiShaders, that nobody deletes. To fix this, in the RHIResourceManagers, delete the remaining RHIShaders as we do with the other RHI resources. Change-Id: Iccc5470831eb7df0e120db6864fae425005c6919 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> (cherry picked from commit 1fe1c5a3752d1d56e78fdeb95842520d83940e52) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/plugins/renderers/rhi/managers/rhiresourcemanagers.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/plugins/renderers/rhi/managers/rhiresourcemanagers.cpp b/src/plugins/renderers/rhi/managers/rhiresourcemanagers.cpp
index f40067ed3..bd7ebce0b 100644
--- a/src/plugins/renderers/rhi/managers/rhiresourcemanagers.cpp
+++ b/src/plugins/renderers/rhi/managers/rhiresourcemanagers.cpp
@@ -45,7 +45,7 @@ void RHIResourceManagers::releaseAllResources()
releaseAll(m_rhiTextureManager);
releaseAll(m_rhiBufferManager);
- // releaseAll(m_rhiShaderManager);
+ qDeleteAll(m_rhiShaderManager->takeActiveResources());
releaseAll(m_rhiRenderTargetManager);
releaseAll(m_rhiGraphicsPipelineManager);
releaseAll(m_rhiComputePipelineManager);