Skip to content

Commit 9636a4f

Browse files
authored
Merge pull request #787 from remo-lab/fix/dispose-intermediate-geometries
Fix GPU memory leak when loading Box-type hits
2 parents 5c97cb0 + ad79b44 commit 9636a4f

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

packages/phoenix-event-display/src/loaders/objects/phoenix-objects.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,10 @@ export class PhoenixObjects {
487487
geometries.push(boxGeometry);
488488
}
489489
const geometry = mergeGeometries(geometries);
490+
// Dispose intermediate geometries to free GPU memory
491+
for (const geom of geometries) {
492+
geom.dispose();
493+
}
490494
geometry.computeBoundingSphere();
491495
// material
492496
const material = new MeshPhongMaterial({
@@ -738,10 +742,13 @@ export class PhoenixObjects {
738742
color: caloCells[0].color ?? EVENT_DATA_TYPE_COLORS.PlanarCaloCells,
739743
});
740744

741-
const outerBox = new Mesh(
742-
BufferGeometryUtils.mergeGeometries(geoms),
743-
material,
744-
);
745+
const mergedGeometry = BufferGeometryUtils.mergeGeometries(geoms);
746+
// Dispose intermediate geometries to free GPU memory
747+
for (const geom of geoms) {
748+
geom.dispose();
749+
}
750+
751+
const outerBox = new Mesh(mergedGeometry, material);
745752

746753
outerBox.userData = Object.assign({}, caloCells[0]);
747754
outerBox.name = 'PlanarCaloCell';

0 commit comments

Comments
 (0)