From 3be0d6d1de530aa2c89b50012c4fc0c6f2e4274e Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 15 Jul 2016 12:39:42 +0200 Subject: [PATCH] Fix mistaken memory leak tidy up * Sort of confused false positive - some pipeline SPIR-V blobs were leaking but it was because they weren't being cached when they should have, not because saving the shader cache doesn't destroy its blobs. --- renderdoc/driver/d3d11/d3d11_debug.cpp | 8 +++++--- renderdoc/driver/vulkan/vk_debug.cpp | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/renderdoc/driver/d3d11/d3d11_debug.cpp b/renderdoc/driver/d3d11/d3d11_debug.cpp index 6a2f4e708..62d497765 100644 --- a/renderdoc/driver/d3d11/d3d11_debug.cpp +++ b/renderdoc/driver/d3d11/d3d11_debug.cpp @@ -164,9 +164,11 @@ D3D11DebugManager::~D3D11DebugManager() SaveShaderCache("d3dshaders.cache", m_ShaderCacheMagic, m_ShaderCacheVersion, m_ShaderCache, ShaderCacheCallbacks); } - - for(auto it = m_ShaderCache.begin(); it != m_ShaderCache.end(); ++it) - ShaderCacheCallbacks.Destroy(it->second); + else + { + for(auto it = m_ShaderCache.begin(); it != m_ShaderCache.end(); ++it) + ShaderCacheCallbacks.Destroy(it->second); + } ShutdownFontRendering(); ShutdownStreamOut(); diff --git a/renderdoc/driver/vulkan/vk_debug.cpp b/renderdoc/driver/vulkan/vk_debug.cpp index a7e62720b..d2915cee4 100644 --- a/renderdoc/driver/vulkan/vk_debug.cpp +++ b/renderdoc/driver/vulkan/vk_debug.cpp @@ -2101,9 +2101,11 @@ VulkanDebugManager::~VulkanDebugManager() SaveShaderCache("vkshaders.cache", m_ShaderCacheMagic, m_ShaderCacheVersion, m_ShaderCache, ShaderCacheCallbacks); } - - for(auto it = m_ShaderCache.begin(); it != m_ShaderCache.end(); ++it) - ShaderCacheCallbacks.Destroy(it->second); + else + { + for(auto it = m_ShaderCache.begin(); it != m_ShaderCache.end(); ++it) + ShaderCacheCallbacks.Destroy(it->second); + } for(auto it = m_PostVSData.begin(); it != m_PostVSData.end(); ++it) {