Open Bambosh opened 4 months ago
To address the memory leak issue in Phaser 3.80.1, please check the following updates and fixes:
DynamicTexture: Ensure setSize(width, height)
is called for both WebGL and Canvas. This prevents width and height from being set to -1 in Canvas mode.
DynamicTexture.setSize(width, height);
DynamicTexture: Check if the glTexture
bound to the current frame is stale and destroy it before binding the one from the Render Target to prevent memory leaks.
if (this.glTextureIsStale) {
this.destroyGLTexture();
this.bindRenderTargetTexture();
}
Refer to the changelog for version 3.80.1 for more details on these fixes.
/changelog/3.80.1/CHANGELOG-v3.80.1.md /changelog/3.80/CHANGELOG-v3.80.md
I see this with later versions of spine as well. If you use preFX and spine in the same scene, a significant memory leak begins. I'm using spine 4.1 I think
I'd like to confirm that this is still an issue with Phaser v3.86.0 and @esotericsoftware/spine-phaser v4.2.61.
I can't use a Spine object in the same scene as an object with preFX appplied to it, without a serious memory leak.
Version
Description
If you assign preFX to any gameObject in a scene that also contains a 3.8 spine object, something goes wacky in the renderer and starts spewing the same instructions into
this.renderer.glAttribLocationWrappers
on repeat. Game performance eventually tanks, asrenderer.glAttribLocationWrappers.indexOf()
is run multiple times per render cycle.Example Test Code
Click the text to trigger the bug https://codepen.io/Bambosh/pen/KKjKdxP
Additional Information