diff --git a/filament/backend/src/metal/MetalShaderCompiler.mm b/filament/backend/src/metal/MetalShaderCompiler.mm index 90d6a47721cc..0a5f9e345cc0 100644 --- a/filament/backend/src/metal/MetalShaderCompiler.mm +++ b/filament/backend/src/metal/MetalShaderCompiler.mm @@ -226,9 +226,11 @@ bool isReady() const noexcept { CompilerPriorityQueue const priorityQueue = program.getPriorityQueue(); mCompilerThreadPool.queue(priorityQueue, token, [this, name, device = mDevice, program = std::move(program), token]() { - MetalFunctionBundle compiledProgram = compileProgram(program, device); - token->set(compiledProgram); - mCallbackManager.put(token->handle); + @autoreleasepool { + MetalFunctionBundle compiledProgram = compileProgram(program, device); + token->set(compiledProgram); + mCallbackManager.put(token->handle); + } }); break;