From d7c5a995bc6b85115852f2857f8f15e160be19d4 Mon Sep 17 00:00:00 2001 From: Madison Rickert <3495636+madisonrickert@users.noreply.github.com> Date: Thu, 2 Apr 2026 16:43:48 -0700 Subject: [PATCH] fix: dispose variable ShaderMaterials in GPUComputationRenderer.dispose() ShaderMaterials created by createShaderMaterial() for each variable are stored in variable.material but never disposed. The existing mesh.material.dispose() call only disposes the passThruShader, not the per-variable materials. This leaks WebGL programs on every teardown. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/misc/GPUComputationRenderer.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/misc/GPUComputationRenderer.js b/src/misc/GPUComputationRenderer.js index a5ad1e7a..d944b9a8 100644 --- a/src/misc/GPUComputationRenderer.js +++ b/src/misc/GPUComputationRenderer.js @@ -279,6 +279,8 @@ class GPUComputationRenderer { const renderTarget = renderTargets[j] renderTarget.dispose() } + + variable.material.dispose() } }