select a time series and play through time (repeatedly)
either observe an eventual performance degradation and exception, or observe the javascript heap graph growing using devtools profiler.
The fix is to use threejs's dispose in key places that hold references to the data textures that contain the volume pixels.
An alternative future code path was already presented in a TODO comment: allocate the Materials to be used in gpuFuse as members of Channel, so that they can be encapsulated alongside their DataTextures and created/destroyed in the same place.
Fixes a memory leak.
Reproduce:
The fix is to use threejs's
dispose
in key places that hold references to the data textures that contain the volume pixels.An alternative future code path was already presented in a TODO comment: allocate the Materials to be used in
gpuFuse
as members of Channel, so that they can be encapsulated alongside their DataTextures and created/destroyed in the same place.