diff options
author | Aurélien Brooke <aurelien@bahiasoft.fr> | 2022-12-11 12:20:21 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-12-15 10:01:21 +0000 |
commit | c061e94bc1da6ab9b4818590a7ab8e127ce9982e (patch) | |
tree | 4867c38132dc89000f94f46cb3a0d006f68c3c1e | |
parent | c1a833906d5458468c6157263aaf392fa0e67396 (diff) | |
download | qt3d-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.cpp | 2 |
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); |