diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index 4e7456f8e..093a33243 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -326,6 +326,12 @@ WrappedVulkan::WrappedVulkan(const char *logFilename) m_FrameTimer.Restart(); + threadSerialiserTLSSlot = Threading::AllocateTLSSlot(); + tempMemoryTLSSlot = Threading::AllocateTLSSlot(); + + + // VKTODOHIGH need to deallocate m_ThreadSerialisers and m_ThreadTempMem + m_TotalTime = m_AvgFrametime = m_MinFrametime = m_MaxFrametime = 0.0; m_RootEventID = 1; @@ -416,6 +422,15 @@ WrappedVulkan::~WrappedVulkan() } SAFE_DELETE(m_pSerialiser); + + for(size_t i=0; i < m_ThreadSerialisers.size(); i++) + delete m_ThreadSerialisers[i]; + + for(size_t i=0; i < m_ThreadTempMem.size(); i++) + { + delete[] m_ThreadTempMem[i]->memory; + delete m_ThreadTempMem[i]; + } } VkCmdBuffer WrappedVulkan::GetNextCmd() diff --git a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp index 76967cf15..51765d25a 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp @@ -38,12 +38,6 @@ VkResult WrappedVulkan::vkCreateInstance( VkResult ret = GetInstanceDispatchTable(*pInstance)->CreateInstance(pCreateInfo, &inst); - // VKTODOHIGH need to deallocate these - threadSerialiserTLSSlot = Threading::AllocateTLSSlot(); - tempMemoryTLSSlot = Threading::AllocateTLSSlot(); - - // VKTODOHIGH need to deallocate m_ThreadSerialisers and m_ThreadTempMem - GetResourceManager()->WrapResource(inst, inst); if(ret != VK_SUCCESS)