From 9896403f9c79f6e320f233b313c3c6073143ee2b Mon Sep 17 00:00:00 2001 From: Dan Ginsburg Date: Fri, 14 Sep 2018 14:01:22 -0400 Subject: [PATCH] Fix memory leak not destroying spirv_cross objects. When creating a lot of pipelines this was causing a large memory leak. --- .../MoltenVKSPIRVToMSLConverter/SPIRVToMSLConverter.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MoltenVKShaderConverter/MoltenVKSPIRVToMSLConverter/SPIRVToMSLConverter.cpp b/MoltenVKShaderConverter/MoltenVKSPIRVToMSLConverter/SPIRVToMSLConverter.cpp index 4bc2b2cb..9c131bfa 100644 --- a/MoltenVKShaderConverter/MoltenVKSPIRVToMSLConverter/SPIRVToMSLConverter.cpp +++ b/MoltenVKShaderConverter/MoltenVKSPIRVToMSLConverter/SPIRVToMSLConverter.cpp @@ -229,6 +229,7 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConverterContext& // Populate content extracted from the SPRI-V compiler. populateEntryPoint(_entryPoint, pMSLCompiler, context.options); context.options.isRasterizationDisabled = pMSLCompiler && pMSLCompiler->get_is_rasterization_disabled(); + delete pMSLCompiler; // Copy whether the vertex attributes and resource bindings are used by the shader uint32_t vaCnt = (uint32_t)vtxAttrs.size(); @@ -261,6 +262,7 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConverterContext& } } #endif + delete pGLSLCompiler; } return _wasConverted;