From 38e4381af2b527f9d792ae20d969c88b86dfed77 Mon Sep 17 00:00:00 2001 From: Dar of ClassX <55930104+dar-dev@users.noreply.github.com> Date: Fri, 16 Jun 2023 10:51:18 +0200 Subject: [PATCH] GL memory leak in IBLComposer: radiance fbo and default BRDF texture are never released (#111) * fix: possible npe when disposing EnvironmentBaker * fix: gl memory leak GL memory leak: radiance fbo and default BRDF texture are never released --- ibl-composer/src/net/mgsx/gltf/ibl/model/EnvironmentBaker.java | 2 +- ibl-composer/src/net/mgsx/gltf/ibl/model/IBLComposer.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ibl-composer/src/net/mgsx/gltf/ibl/model/EnvironmentBaker.java b/ibl-composer/src/net/mgsx/gltf/ibl/model/EnvironmentBaker.java index badf7820..2d46f5b2 100644 --- a/ibl-composer/src/net/mgsx/gltf/ibl/model/EnvironmentBaker.java +++ b/ibl-composer/src/net/mgsx/gltf/ibl/model/EnvironmentBaker.java @@ -36,7 +36,7 @@ public EnvironmentBaker() { public void dispose() { rectToCubeShader.dispose(); rectToCubeRenderer.dispose(); - fboEnv.dispose(); + if(fboEnv != null) fboEnv.dispose(); } private static ShaderProgram loadShader(String name){ diff --git a/ibl-composer/src/net/mgsx/gltf/ibl/model/IBLComposer.java b/ibl-composer/src/net/mgsx/gltf/ibl/model/IBLComposer.java index d10f36d5..6a905e60 100644 --- a/ibl-composer/src/net/mgsx/gltf/ibl/model/IBLComposer.java +++ b/ibl-composer/src/net/mgsx/gltf/ibl/model/IBLComposer.java @@ -63,6 +63,8 @@ public void dispose() { if(pixmapRaw != null) pixmapRaw.dispose(); if(textureRaw != null) textureRaw.dispose(); if(irradianceMap != null) irradianceMap.dispose(); + if(radianceMap != null) radianceMap.dispose(); + if(builtinBRDF != null) builtinBRDF.dispose(); environmentBaker.dispose(); irradianceBaker.dispose(); radianceBaker.dispose();