@ifc-lite/renderer 6.0.1 → 6.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/dist/ao-pass.d.ts +0 -16
- package/dist/ao-pass.d.ts.map +1 -1
- package/dist/ao-pass.js +2 -0
- package/dist/ao-pass.js.map +1 -1
- package/dist/camera-animation.d.ts +1 -1
- package/dist/camera-animation.d.ts.map +1 -1
- package/dist/camera-animation.js +11 -11
- package/dist/camera-animation.js.map +1 -1
- package/dist/camera-controls.d.ts +0 -21
- package/dist/camera-controls.d.ts.map +1 -1
- package/dist/camera-controls.js +8 -90
- package/dist/camera-controls.js.map +1 -1
- package/dist/camera-inertia.d.ts +27 -0
- package/dist/camera-inertia.d.ts.map +1 -0
- package/dist/camera-inertia.js +33 -0
- package/dist/camera-inertia.js.map +1 -0
- package/dist/camera-surface-zoom.d.ts +1 -1
- package/dist/camera-zoom.d.ts +55 -0
- package/dist/camera-zoom.d.ts.map +1 -0
- package/dist/camera-zoom.js +138 -0
- package/dist/camera-zoom.js.map +1 -0
- package/dist/camera.d.ts.map +1 -1
- package/dist/camera.js +8 -0
- package/dist/camera.js.map +1 -1
- package/dist/deviation/deviation-computer.d.ts +5 -1
- package/dist/deviation/deviation-computer.d.ts.map +1 -1
- package/dist/deviation/deviation-computer.js +13 -6
- package/dist/deviation/deviation-computer.js.map +1 -1
- package/dist/deviation/deviation-readback.d.ts +16 -3
- package/dist/deviation/deviation-readback.d.ts.map +1 -1
- package/dist/deviation/deviation-readback.js +46 -36
- package/dist/deviation/deviation-readback.js.map +1 -1
- package/dist/deviation/deviation-statistics-kernel.d.ts +111 -0
- package/dist/deviation/deviation-statistics-kernel.d.ts.map +1 -0
- package/dist/deviation/deviation-statistics-kernel.js +303 -0
- package/dist/deviation/deviation-statistics-kernel.js.map +1 -0
- package/dist/deviation/deviation-statistics.d.ts +100 -0
- package/dist/deviation/deviation-statistics.d.ts.map +1 -0
- package/dist/deviation/deviation-statistics.js +100 -0
- package/dist/deviation/deviation-statistics.js.map +1 -0
- package/dist/device-recovery.d.ts.map +1 -1
- package/dist/device-recovery.js +5 -0
- package/dist/device-recovery.js.map +1 -1
- package/dist/device.d.ts +0 -3
- package/dist/device.d.ts.map +1 -1
- package/dist/device.js +5 -1
- package/dist/device.js.map +1 -1
- package/dist/edge-pass.d.ts +0 -12
- package/dist/edge-pass.d.ts.map +1 -1
- package/dist/edge-pass.js +3 -0
- package/dist/edge-pass.js.map +1 -1
- package/dist/edl-pass.d.ts +0 -21
- package/dist/edl-pass.d.ts.map +1 -1
- package/dist/edl-pass.js +23 -0
- package/dist/edl-pass.js.map +1 -1
- package/dist/frame-timing-gpu.d.ts +11 -15
- package/dist/frame-timing-gpu.d.ts.map +1 -1
- package/dist/frame-timing-gpu.js +57 -26
- package/dist/frame-timing-gpu.js.map +1 -1
- package/dist/gpu-counters.d.ts +30 -0
- package/dist/gpu-counters.d.ts.map +1 -0
- package/dist/gpu-counters.js +84 -0
- package/dist/gpu-counters.js.map +1 -0
- package/dist/gpu-static-upload.d.ts.map +1 -1
- package/dist/gpu-static-upload.js +2 -0
- package/dist/gpu-static-upload.js.map +1 -1
- package/dist/index.d.ts +33 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +71 -60
- package/dist/index.js.map +1 -1
- package/dist/pick-rte-snapshot.d.ts +4 -0
- package/dist/pick-rte-snapshot.d.ts.map +1 -1
- package/dist/pick-rte-snapshot.js +10 -0
- package/dist/pick-rte-snapshot.js.map +1 -1
- package/dist/picker-depth-sample.d.ts +9 -0
- package/dist/picker-depth-sample.d.ts.map +1 -0
- package/dist/picker-depth-sample.js +63 -0
- package/dist/picker-depth-sample.js.map +1 -0
- package/dist/picker-readbacks.d.ts +10 -1
- package/dist/picker-readbacks.d.ts.map +1 -1
- package/dist/picker-readbacks.js +30 -1
- package/dist/picker-readbacks.js.map +1 -1
- package/dist/picker.d.ts +4 -4
- package/dist/picker.d.ts.map +1 -1
- package/dist/picker.js +77 -102
- package/dist/picker.js.map +1 -1
- package/dist/picking-manager.d.ts +5 -2
- package/dist/picking-manager.d.ts.map +1 -1
- package/dist/picking-manager.js +32 -11
- package/dist/picking-manager.js.map +1 -1
- package/dist/pipeline.d.ts +8 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +22 -0
- package/dist/pipeline.js.map +1 -1
- package/dist/pointcloud/point-cloud-keyed-chunks.d.ts +23 -0
- package/dist/pointcloud/point-cloud-keyed-chunks.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-keyed-chunks.js +44 -0
- package/dist/pointcloud/point-cloud-keyed-chunks.js.map +1 -0
- package/dist/pointcloud/point-cloud-node.d.ts +5 -1
- package/dist/pointcloud/point-cloud-node.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-node.js +8 -4
- package/dist/pointcloud/point-cloud-node.js.map +1 -1
- package/dist/pointcloud/point-cloud-placement.d.ts +6 -0
- package/dist/pointcloud/point-cloud-placement.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-placement.js +8 -0
- package/dist/pointcloud/point-cloud-placement.js.map +1 -1
- package/dist/pointcloud/point-cloud-ray-transform.d.ts +17 -8
- package/dist/pointcloud/point-cloud-ray-transform.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-ray-transform.js +17 -13
- package/dist/pointcloud/point-cloud-ray-transform.js.map +1 -1
- package/dist/pointcloud/point-cloud-renderer.d.ts +10 -8
- package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-renderer.js +20 -31
- package/dist/pointcloud/point-cloud-renderer.js.map +1 -1
- package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts +8 -1
- package/dist/pointcloud/point-cloud-stream-lifecycle.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-stream-lifecycle.js +17 -2
- package/dist/pointcloud/point-cloud-stream-lifecycle.js.map +1 -1
- package/dist/pointcloud/point-cloud-uniforms.d.ts +11 -0
- package/dist/pointcloud/point-cloud-uniforms.d.ts.map +1 -1
- package/dist/pointcloud/point-cloud-uniforms.js +8 -0
- package/dist/pointcloud/point-cloud-uniforms.js.map +1 -1
- package/dist/post-pass-chain.d.ts +2 -0
- package/dist/post-pass-chain.d.ts.map +1 -1
- package/dist/post-pass-chain.js +1 -1
- package/dist/post-pass-chain.js.map +1 -1
- package/dist/raycast-point-cloud-query.d.ts.map +1 -1
- package/dist/raycast-point-cloud-query.js +11 -1
- package/dist/raycast-point-cloud-query.js.map +1 -1
- package/dist/relative-to-eye.d.ts +3 -0
- package/dist/relative-to-eye.d.ts.map +1 -1
- package/dist/relative-to-eye.js +4 -1
- package/dist/relative-to-eye.js.map +1 -1
- package/dist/renderer-frame-timing.d.ts +21 -0
- package/dist/renderer-frame-timing.d.ts.map +1 -0
- package/dist/renderer-frame-timing.js +104 -0
- package/dist/renderer-frame-timing.js.map +1 -0
- package/dist/renderer-viewport.d.ts +13 -7
- package/dist/renderer-viewport.d.ts.map +1 -1
- package/dist/renderer-viewport.js +15 -7
- package/dist/renderer-viewport.js.map +1 -1
- package/dist/scene-batch-rebuild.d.ts +7 -0
- package/dist/scene-batch-rebuild.d.ts.map +1 -1
- package/dist/scene-batch-rebuild.js +12 -0
- package/dist/scene-batch-rebuild.js.map +1 -1
- package/dist/scene-contents.d.ts +3 -2
- package/dist/scene-contents.d.ts.map +1 -1
- package/dist/scene-flush.d.ts +43 -0
- package/dist/scene-flush.d.ts.map +1 -0
- package/dist/scene-flush.js +103 -0
- package/dist/scene-flush.js.map +1 -0
- package/dist/scene-geometry.d.ts.map +1 -1
- package/dist/scene-geometry.js +2 -0
- package/dist/scene-geometry.js.map +1 -1
- package/dist/scene.d.ts +26 -27
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +66 -109
- package/dist/scene.js.map +1 -1
- package/dist/selection-mask-pass.d.ts +2 -27
- package/dist/selection-mask-pass.d.ts.map +1 -1
- package/dist/selection-mask-pass.js +44 -39
- package/dist/selection-mask-pass.js.map +1 -1
- package/dist/selection-mask-pipelines.d.ts +3 -3
- package/dist/selection-mask-pipelines.d.ts.map +1 -1
- package/dist/selection-mask-pipelines.js +11 -8
- package/dist/selection-mask-pipelines.js.map +1 -1
- package/dist/shaders/depth-nudge.wgsl.d.ts +67 -0
- package/dist/shaders/depth-nudge.wgsl.d.ts.map +1 -0
- package/dist/shaders/depth-nudge.wgsl.js +130 -0
- package/dist/shaders/depth-nudge.wgsl.js.map +1 -0
- package/dist/shaders/ghost.wgsl.d.ts +2 -0
- package/dist/shaders/ghost.wgsl.d.ts.map +1 -0
- package/dist/shaders/ghost.wgsl.js +46 -0
- package/dist/shaders/ghost.wgsl.js.map +1 -0
- package/dist/shaders/main.wgsl.d.ts +1 -1
- package/dist/shaders/main.wgsl.d.ts.map +1 -1
- package/dist/shaders/main.wgsl.js +6 -4
- package/dist/shaders/main.wgsl.js.map +1 -1
- package/dist/shaders/section-2d-overlay.wgsl.d.ts +1 -16
- package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -1
- package/dist/shaders/section-2d-overlay.wgsl.js +6 -6
- package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -1
- package/dist/shaders/selection-mask.wgsl.d.ts +2 -10
- package/dist/shaders/selection-mask.wgsl.d.ts.map +1 -1
- package/dist/shaders/selection-mask.wgsl.js +9 -42
- package/dist/shaders/selection-mask.wgsl.js.map +1 -1
- package/dist/shaders/symbolic-overlay.wgsl.d.ts +1 -1
- package/dist/shaders/symbolic-overlay.wgsl.d.ts.map +1 -1
- package/dist/shaders/symbolic-overlay.wgsl.js +5 -4
- package/dist/shaders/symbolic-overlay.wgsl.js.map +1 -1
- package/dist/shadow-pass.d.ts +0 -19
- package/dist/shadow-pass.d.ts.map +1 -1
- package/dist/shadow-pass.js +19 -0
- package/dist/shadow-pass.js.map +1 -1
- package/dist/test/frame-timing-device.d.ts +17 -0
- package/dist/test/frame-timing-device.d.ts.map +1 -0
- package/dist/test/frame-timing-device.js +70 -0
- package/dist/test/frame-timing-device.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/xray-alpha.d.ts +8 -0
- package/dist/xray-alpha.d.ts.map +1 -1
- package/dist/xray-alpha.js +23 -0
- package/dist/xray-alpha.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-geometry.js","sourceRoot":"","sources":["../src/scene-geometry.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAU/D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAQhG;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAwC;IAC1E,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,IAAI,IAAI,GAAG,QAAQ,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,GAAG,QAAQ,CAAC;IACtD,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC;IACzD,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,wEAAwE;QACxE,sCAAsC;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,SAAS;YAChF,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO;QACL,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;QAClC,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AACvC,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAEhC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgC;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC;IACrB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,IAAI,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,QAAgB;IAC5D,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,CAA8G;IAE9G,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACxB,IAAI,CAAC,CAAC,aAAa;QAAE,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC/C,IAAI,CAAC,CAAC,eAAe;QAAE,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,aAAyB;AACzB,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,0EAA0E;AAC1E,4EAA4E;AAC5E,8EAA8E;AAC9E,2EAA2E;AAC3E,0DAA0D;AAC1D,YAAuC;IAUvC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,wBAAwB;IACxB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACtC,CAAC;
|
|
1
|
+
{"version":3,"file":"scene-geometry.js","sourceRoot":"","sources":["../src/scene-geometry.ts"],"names":[],"mappings":"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"}
|
package/dist/scene.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { type InstancedTemplateGPU } from './scene-instance-types.js';
|
|
|
5
5
|
import type { Mesh, BatchedMesh, Vec3, PickClipState, Material, MeshFinish } from './types.js';
|
|
6
6
|
import type { MeshData } from '@ifc-lite/geometry';
|
|
7
7
|
import type { RenderPipeline } from './pipeline.js';
|
|
8
|
+
import type { IndividualMeshFrame } from './individual-mesh-upload.js';
|
|
8
9
|
import { type BoundingBox, type RaycastHit } from './scene-raycaster.js';
|
|
9
10
|
import { type RectangleRteFrame } from './scene-rect-select.js';
|
|
10
11
|
import { type ResidentGpuBytes } from './render-stats.js';
|
|
@@ -12,6 +13,7 @@ import { type SpatialChunkingConfig } from './chunk-grid.js';
|
|
|
12
13
|
import { EntityColorTable } from './entity-color-table.js';
|
|
13
14
|
import { type ColdGeometryProvider } from './residency.js';
|
|
14
15
|
import { type ModelYaw } from './model-translation.js';
|
|
16
|
+
import { type LoadTrace } from '@ifc-lite/load-trace';
|
|
15
17
|
import type { DecodedInstancedShard } from '@ifc-lite/geometry';
|
|
16
18
|
import { type SceneDeviceRecoveryPreparation } from './scene-device-recovery.js';
|
|
17
19
|
/**
|
|
@@ -78,31 +80,7 @@ export interface TexturedMesh {
|
|
|
78
80
|
* `drawIndexed(indexCount, instanceCount)`. Buffers are Scene-owned, freed in clear().
|
|
79
81
|
*/
|
|
80
82
|
export type { InstancedTemplateGPU } from './scene-instance-types.js';
|
|
81
|
-
|
|
82
|
-
* Pure helper: compute the exclusive end index of the next flushPending()
|
|
83
|
-
* append chunk, starting at `readIndex` and bounded by BOTH mesh count
|
|
84
|
-
* (`hardEnd`, computed by the caller) and index volume (`maxIndicesPerAppend`).
|
|
85
|
-
* Always takes at least one mesh past `readIndex` -- a single oversize mesh is
|
|
86
|
-
* split upstream by splitMeshForStreaming, so the volume cap never blocks the
|
|
87
|
-
* first mesh of a chunk.
|
|
88
|
-
*
|
|
89
|
-
* Non-finite-safe by construction: every non-finite `next` (a malformed mesh
|
|
90
|
-
* reporting NaN, +Infinity, or -Infinity for `indices.length`) closes the
|
|
91
|
-
* chunk explicitly instead of being folded into the running `chunkIndices`
|
|
92
|
-
* total. Only NaN would have made a naive cap check `chunkIndices + next >
|
|
93
|
-
* maxIndicesPerAppend` silently `false` forever (`NaN > cap` is always
|
|
94
|
-
* `false`); +Infinity actually made that same check fire immediately
|
|
95
|
-
* (`chunkIndices + Infinity > cap` is `true`), closing the chunk after a
|
|
96
|
-
* single oversize mesh instead of growing it unbounded. The current
|
|
97
|
-
* `!(chunkIndices + next <= maxIndicesPerAppend)` form below rejects both
|
|
98
|
-
* NaN and +Infinity explicitly rather than relying on that asymmetry.
|
|
99
|
-
* -Infinity needed a separate, explicit check: `-Infinity <= cap` is always
|
|
100
|
-
* `true`, so `!(... <= cap)` lets it straight through, and folding it into
|
|
101
|
-
* `chunkIndices` would poison the running total to -Infinity permanently,
|
|
102
|
-
* keeping the cap vacuous for every mesh after it, not just the malformed
|
|
103
|
-
* one.
|
|
104
|
-
*/
|
|
105
|
-
export declare function computeFlushChunkEnd(getIndicesLength: (meshIndex: number) => number, readIndex: number, hardEnd: number, maxIndicesPerAppend: number): number;
|
|
83
|
+
export { computeFlushChunkEnd } from './scene-flush.js';
|
|
106
84
|
export declare class Scene {
|
|
107
85
|
private meshes;
|
|
108
86
|
private batchedMeshes;
|
|
@@ -113,6 +91,10 @@ export declare class Scene {
|
|
|
113
91
|
private meshDataMap;
|
|
114
92
|
private boundingBoxes;
|
|
115
93
|
private texturedMeshes;
|
|
94
|
+
/** The `positions` each textured drawable was uploaded from. Matched by the
|
|
95
|
+
* array, not the MeshData: the appearance preview installs `{...part}`
|
|
96
|
+
* copies, which share the array but not the object identity. */
|
|
97
|
+
private texturedSourcePositions;
|
|
116
98
|
/** #1781: GPU textures shared across meshes, keyed by `MeshTextureRef.textureId`
|
|
117
99
|
* (one `IfcImageTexture` → one upload, sampled by every face set mapping it).
|
|
118
100
|
* Refcounted: entries die when the last referencing mesh is removed / on clear(). */
|
|
@@ -290,6 +272,17 @@ export declare class Scene {
|
|
|
290
272
|
* depth-equal overlay matching and cross-batch coincidence stay bit-exact.
|
|
291
273
|
*/
|
|
292
274
|
setQuantizedBatches(enabled: boolean): void;
|
|
275
|
+
/** The draw origin of the textured drawable rendering `meshData`, or null
|
|
276
|
+
* when it renders through a colour batch. A textured mesh never enters a
|
|
277
|
+
* bucket: it draws its RAW positions against its own per-element origin,
|
|
278
|
+
* unquantized, so a highlight/hover copy must use that frame — the batch
|
|
279
|
+
* frame lands a few f32 ulps off and z-fights the texture. */
|
|
280
|
+
getTexturedDrawOrigin(meshData: MeshData): readonly [number, number, number] | null;
|
|
281
|
+
/** The frame a highlight/hover copy of `meshData` is built in, so it renders
|
|
282
|
+
* bit-coincident with its source. A textured piece draws raw positions
|
|
283
|
+
* against its own origin, never quantized: relativizing against that origin
|
|
284
|
+
* is a +0 fold, where the batch frame would z-fight the texture (#7503). */
|
|
285
|
+
getIndividualMeshFrame(meshData: MeshData): IndividualMeshFrame;
|
|
293
286
|
/** Whether THIS mesh's source batch renders quantized — drives the hydrated-mesh
|
|
294
287
|
* lattice snap in createMeshFromData (an f32 batch must NOT snap). Same rule
|
|
295
288
|
* as overlay/partial batches; global flag while unbucketed. */
|
|
@@ -612,9 +605,13 @@ export declare class Scene {
|
|
|
612
605
|
* @param budgetMs Time slice per call. The 12 ms default keeps the main
|
|
613
606
|
* thread returning to the worker-message pump while geometry streams; a
|
|
614
607
|
* host with nothing else to serve may drain faster (#6436).
|
|
608
|
+
* @param trace The streaming load's trace (#6979): a call that uploaded
|
|
609
|
+
* anything records one `scene.flushPending` span.
|
|
610
|
+
* @param deterministicUploads Benchmark-only per-mesh fragments with count
|
|
611
|
+
* and index-volume bounds. These totals describe a different timing workload.
|
|
615
612
|
* @returns true if any meshes were processed (caller should render)
|
|
616
613
|
*/
|
|
617
|
-
flushPending(device: GPUDevice, pipeline: RenderPipeline, budgetMs?: number): boolean;
|
|
614
|
+
flushPending(device: GPUDevice, pipeline: RenderPipeline, budgetMs?: number, trace?: LoadTrace, deterministicUploads?: boolean): boolean;
|
|
618
615
|
/**
|
|
619
616
|
* Create lightweight fragment batches from a single streaming batch.
|
|
620
617
|
* Fragments are grouped by color and added to batchedMeshes for immediate
|
|
@@ -646,9 +643,11 @@ export declare class Scene {
|
|
|
646
643
|
* @param device GPU device
|
|
647
644
|
* @param pipeline Render pipeline
|
|
648
645
|
* @param budgetMs Max milliseconds per chunk (default 8 — half a 60fps frame)
|
|
646
|
+
* @param trace The load's trace (#6979): `scene.finalize` from this call
|
|
647
|
+
* until the promise settles, with `scene.finalize.regroup` under it
|
|
649
648
|
* @returns Promise that resolves when all batches are rebuilt
|
|
650
649
|
*/
|
|
651
|
-
finalizeStreamingAsync(device: GPUDevice, pipeline: RenderPipeline, budgetMs?: number): Promise<void>;
|
|
650
|
+
finalizeStreamingAsync(device: GPUDevice, pipeline: RenderPipeline, budgetMs?: number, trace?: LoadTrace): Promise<void>;
|
|
652
651
|
finishEphemeralStreaming(): void;
|
|
653
652
|
/**
|
|
654
653
|
* Release JS-side mesh geometry data (positions, normals, indices) after
|
package/dist/scene.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"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"}
|
package/dist/scene.js
CHANGED
|
@@ -9,6 +9,7 @@ import { createInstancedRteDeltaStream, invalidateInstancedRteDeltas } from './i
|
|
|
9
9
|
import { materializeInstances } from './scene-instance-materialization.js';
|
|
10
10
|
import { InstanceSuppression } from './scene-instance-suppression.js';
|
|
11
11
|
import { createSceneBatch } from './scene-batch-upload.js';
|
|
12
|
+
import { flushQueuedMeshes } from './scene-flush.js';
|
|
12
13
|
import { createStaticGpuBuffer } from './gpu-static-upload.js';
|
|
13
14
|
import { createSceneAppearancePreview, rebindSceneAppearanceAccess } from './scene-appearance-preview.js';
|
|
14
15
|
import { AppearanceBuckets } from './scene-appearance-buckets.js';
|
|
@@ -36,62 +37,15 @@ import { translateSceneModel, rotateSceneModelInstances, releaseInstanceVertices
|
|
|
36
37
|
import { ModelTranslations } from './model-translation.js';
|
|
37
38
|
import { unionInstancedWorldAabb as unionInstanceBounds } from './scene-instance-bounds.js';
|
|
38
39
|
import { DerivedMeshProvenance } from './scene-derived-mesh-provenance.js';
|
|
39
|
-
import { rebuildSceneBatches } from './scene-batch-rebuild.js';
|
|
40
|
+
import { forgetEmptyModelFrames, rebuildSceneBatches } from './scene-batch-rebuild.js';
|
|
40
41
|
import { regroupStreamedBuckets } from './scene-finalize-regroup.js';
|
|
42
|
+
import { perfCount, perfCounters, perfTally } from '@ifc-lite/load-trace';
|
|
41
43
|
import { dropAllPartialCaches as dropAllPartialCachesIn, dropPartialCacheForBatch as dropPartialCacheForBatchIn, retireUnusedAlphaSlots as retireUnusedAlphaSlotsIn, } from './partial-batch-cache.js';
|
|
42
44
|
import { prepareInstancedRender, foldOccurrenceWorldBox, INSTANCE_STRIDE_BYTES, INSTANCE_COLOR_OFFSET, INSTANCE_FLAGS_OFFSET, INSTANCE_FLAG_SELECTED, INSTANCE_FLAG_HIDDEN, INSTANCE_FINISH_FLAGS_MASK, } from './instanced-render.js';
|
|
43
45
|
import { translateInstanceRecord } from './scene-instance-translation.js';
|
|
44
46
|
import { discardSceneGpuResourcesForRecovery, prepareSceneDeviceRecovery, repartitionHydratedRecoveryBucket, restoreSceneGpuResourcesAfterRecovery } from './scene-device-recovery.js';
|
|
45
47
|
const EMPTY_INSTANCED_TEMPLATES = [];
|
|
46
|
-
|
|
47
|
-
* Pure helper: compute the exclusive end index of the next flushPending()
|
|
48
|
-
* append chunk, starting at `readIndex` and bounded by BOTH mesh count
|
|
49
|
-
* (`hardEnd`, computed by the caller) and index volume (`maxIndicesPerAppend`).
|
|
50
|
-
* Always takes at least one mesh past `readIndex` -- a single oversize mesh is
|
|
51
|
-
* split upstream by splitMeshForStreaming, so the volume cap never blocks the
|
|
52
|
-
* first mesh of a chunk.
|
|
53
|
-
*
|
|
54
|
-
* Non-finite-safe by construction: every non-finite `next` (a malformed mesh
|
|
55
|
-
* reporting NaN, +Infinity, or -Infinity for `indices.length`) closes the
|
|
56
|
-
* chunk explicitly instead of being folded into the running `chunkIndices`
|
|
57
|
-
* total. Only NaN would have made a naive cap check `chunkIndices + next >
|
|
58
|
-
* maxIndicesPerAppend` silently `false` forever (`NaN > cap` is always
|
|
59
|
-
* `false`); +Infinity actually made that same check fire immediately
|
|
60
|
-
* (`chunkIndices + Infinity > cap` is `true`), closing the chunk after a
|
|
61
|
-
* single oversize mesh instead of growing it unbounded. The current
|
|
62
|
-
* `!(chunkIndices + next <= maxIndicesPerAppend)` form below rejects both
|
|
63
|
-
* NaN and +Infinity explicitly rather than relying on that asymmetry.
|
|
64
|
-
* -Infinity needed a separate, explicit check: `-Infinity <= cap` is always
|
|
65
|
-
* `true`, so `!(... <= cap)` lets it straight through, and folding it into
|
|
66
|
-
* `chunkIndices` would poison the running total to -Infinity permanently,
|
|
67
|
-
* keeping the cap vacuous for every mesh after it, not just the malformed
|
|
68
|
-
* one.
|
|
69
|
-
*/
|
|
70
|
-
export function computeFlushChunkEnd(getIndicesLength, readIndex, hardEnd, maxIndicesPerAppend) {
|
|
71
|
-
let chunkEnd = readIndex;
|
|
72
|
-
let chunkIndices = 0;
|
|
73
|
-
while (chunkEnd < hardEnd) {
|
|
74
|
-
const next = getIndicesLength(chunkEnd);
|
|
75
|
-
if (!Number.isFinite(next)) {
|
|
76
|
-
// A malformed mesh reporting a non-finite indices.length (NaN, +/-Infinity)
|
|
77
|
-
// must close the chunk here rather than being folded into chunkIndices:
|
|
78
|
-
// `chunkIndices += -Infinity` would poison the running total to -Infinity
|
|
79
|
-
// permanently, making `!(chunkIndices + next <= maxIndicesPerAppend)`
|
|
80
|
-
// false forever and letting the volume cap never fire again for the
|
|
81
|
-
// rest of this chunk. Always take at least the first mesh past
|
|
82
|
-
// readIndex (same progress guarantee as the NaN case below).
|
|
83
|
-
if (chunkEnd === readIndex)
|
|
84
|
-
chunkEnd++;
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
if (chunkEnd > readIndex && !(chunkIndices + next <= maxIndicesPerAppend)) {
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
chunkIndices += next;
|
|
91
|
-
chunkEnd++;
|
|
92
|
-
}
|
|
93
|
-
return chunkEnd;
|
|
94
|
-
}
|
|
48
|
+
export { computeFlushChunkEnd } from './scene-flush.js';
|
|
95
49
|
export class Scene {
|
|
96
50
|
meshes = [];
|
|
97
51
|
batchedMeshes = []; // flat render array (rebuilt from buckets)
|
|
@@ -102,6 +56,10 @@ export class Scene {
|
|
|
102
56
|
meshDataMap = new Map(); // Map expressId -> MeshData[] (for lazy buffer creation, accumulates multiple pieces)
|
|
103
57
|
boundingBoxes = new Map(); // Map expressId -> bounding box (computed lazily)
|
|
104
58
|
texturedMeshes = []; // #961: IFC surface-textured meshes (own buffers/texture/bindGroup)
|
|
59
|
+
/** The `positions` each textured drawable was uploaded from. Matched by the
|
|
60
|
+
* array, not the MeshData: the appearance preview installs `{...part}`
|
|
61
|
+
* copies, which share the array but not the object identity. */
|
|
62
|
+
texturedSourcePositions = new WeakMap();
|
|
105
63
|
/** #1781: GPU textures shared across meshes, keyed by `MeshTextureRef.textureId`
|
|
106
64
|
* (one `IfcImageTexture` → one upload, sampled by every face set mapping it).
|
|
107
65
|
* Refcounted: entries die when the last referencing mesh is removed / on clear(). */
|
|
@@ -488,6 +446,26 @@ export class Scene {
|
|
|
488
446
|
setQuantizedBatches(enabled) {
|
|
489
447
|
this.quantizedBatchesEnabled = enabled;
|
|
490
448
|
}
|
|
449
|
+
/** The draw origin of the textured drawable rendering `meshData`, or null
|
|
450
|
+
* when it renders through a colour batch. A textured mesh never enters a
|
|
451
|
+
* bucket: it draws its RAW positions against its own per-element origin,
|
|
452
|
+
* unquantized, so a highlight/hover copy must use that frame — the batch
|
|
453
|
+
* frame lands a few f32 ulps off and z-fights the texture. */
|
|
454
|
+
getTexturedDrawOrigin(meshData) {
|
|
455
|
+
const positions = this.derivedMeshProvenance.placedSourceFor(meshData, this.modelTranslations).positions;
|
|
456
|
+
const tm = this.texturedMeshes.find((m) => m.expressId === meshData.expressId && this.texturedSourcePositions.get(m) === positions);
|
|
457
|
+
return tm ? tm.origin : null;
|
|
458
|
+
}
|
|
459
|
+
/** The frame a highlight/hover copy of `meshData` is built in, so it renders
|
|
460
|
+
* bit-coincident with its source. A textured piece draws raw positions
|
|
461
|
+
* against its own origin, never quantized: relativizing against that origin
|
|
462
|
+
* is a +0 fold, where the batch frame would z-fight the texture (#7503). */
|
|
463
|
+
getIndividualMeshFrame(meshData) {
|
|
464
|
+
const texturedOrigin = this.getTexturedDrawOrigin(meshData);
|
|
465
|
+
if (texturedOrigin)
|
|
466
|
+
return { sharedOrigin: texturedOrigin, quantized: false };
|
|
467
|
+
return { sharedOrigin: this.getSharedFrameOrigin(meshData.modelIndex, meshData), quantized: this.isMeshQuantized(meshData) };
|
|
468
|
+
}
|
|
491
469
|
/** Whether THIS mesh's source batch renders quantized — drives the hydrated-mesh
|
|
492
470
|
* lattice snap in createMeshFromData (an f32 batch must NOT snap). Same rule
|
|
493
471
|
* as overlay/partial batches; global flag while unbucketed. */
|
|
@@ -1199,6 +1177,7 @@ export class Scene {
|
|
|
1199
1177
|
}, device, pipeline);
|
|
1200
1178
|
this.batchedMeshes = [...this.buckets.values()].flatMap(bucket => bucket.batchedMesh ? [bucket.batchedMesh] : []);
|
|
1201
1179
|
this.pendingBatchKeys.clear();
|
|
1180
|
+
forgetEmptyModelFrames(this.buckets, this.sharedFrameOrigins);
|
|
1202
1181
|
}
|
|
1203
1182
|
/**
|
|
1204
1183
|
* Check if there are pending batch rebuilds
|
|
@@ -1782,64 +1761,20 @@ export class Scene {
|
|
|
1782
1761
|
* @param budgetMs Time slice per call. The 12 ms default keeps the main
|
|
1783
1762
|
* thread returning to the worker-message pump while geometry streams; a
|
|
1784
1763
|
* host with nothing else to serve may drain faster (#6436).
|
|
1764
|
+
* @param trace The streaming load's trace (#6979): a call that uploaded
|
|
1765
|
+
* anything records one `scene.flushPending` span.
|
|
1766
|
+
* @param deterministicUploads Benchmark-only per-mesh fragments with count
|
|
1767
|
+
* and index-volume bounds. These totals describe a different timing workload.
|
|
1785
1768
|
* @returns true if any meshes were processed (caller should render)
|
|
1786
1769
|
*/
|
|
1787
|
-
flushPending(device, pipeline, budgetMs = 12) {
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
// Drain the queue in chunks bounded by BOTH mesh count AND triangle volume,
|
|
1791
|
-
// yielding the frame back at the TOP of the loop. The mesh-count-only chunker
|
|
1792
|
-
// could merge a 512-mesh chunk of high-poly meshes (e.g. 899 Velux roof
|
|
1793
|
-
// windows at 7624 tris each → ~3.9M tris) in ONE indivisible mergeGeometry +
|
|
1794
|
-
// GPU buffer upload copy — hundreds of ms that parked the main thread
|
|
1795
|
-
// past the 16s stream watchdog. Capping each appendToBatches by index volume
|
|
1796
|
-
// keeps every synchronous slice ≈ one bounded fragment merge (~12-15ms).
|
|
1797
|
-
const MAX_MESHES_PER_FLUSH = 4096;
|
|
1798
|
-
const MESHES_PER_APPEND = 512;
|
|
1799
|
-
const MAX_INDICES_PER_APPEND = Scene.STREAMING_FRAGMENT_MAX_INDICES;
|
|
1800
|
-
const start = performance.now();
|
|
1801
|
-
let processed = 0;
|
|
1802
|
-
while (this.meshQueueReadIndex < this.meshQueue.length && processed < MAX_MESHES_PER_FLUSH) {
|
|
1803
|
-
// Yield once the budget is spent (after at least one append) so the main
|
|
1804
|
-
// thread returns to the worker-message pump and the watchdog never trips.
|
|
1805
|
-
if (processed > 0 && performance.now() - start >= budgetMs) {
|
|
1806
|
-
break;
|
|
1807
|
-
}
|
|
1808
|
-
const hardEnd = Math.min(this.meshQueue.length, this.meshQueueReadIndex + MESHES_PER_APPEND, this.meshQueueReadIndex + (MAX_MESHES_PER_FLUSH - processed));
|
|
1809
|
-
const chunkEnd = computeFlushChunkEnd((i) => this.meshQueue[i].indices.length, this.meshQueueReadIndex, hardEnd, MAX_INDICES_PER_APPEND);
|
|
1810
|
-
// Defensive, not reachable today: chunkEnd is provably > meshQueueReadIndex
|
|
1811
|
-
// here because hardEnd is provably > meshQueueReadIndex whenever this outer
|
|
1812
|
-
// loop iterates, via three invariants that hold simultaneously above:
|
|
1813
|
-
// (1) this.meshQueue.length > this.meshQueueReadIndex -- the outer while
|
|
1814
|
-
// condition that got us into this iteration;
|
|
1815
|
-
// (2) this.meshQueueReadIndex + MESHES_PER_APPEND, and MESHES_PER_APPEND
|
|
1816
|
-
// (512) is a positive constant;
|
|
1817
|
-
// (3) this.meshQueueReadIndex + (MAX_MESHES_PER_FLUSH - processed), and
|
|
1818
|
-
// processed < MAX_MESHES_PER_FLUSH -- the other half of the outer
|
|
1819
|
-
// while condition -- so that term is >= readIndex + 1 too.
|
|
1820
|
-
// hardEnd is the min of all three, so hardEnd >= readIndex + 1, and
|
|
1821
|
-
// computeFlushChunkEnd always advances by at least one past readIndex.
|
|
1822
|
-
// If a future change breaks any one of those three invariants, hardEnd
|
|
1823
|
-
// could collapse to readIndex and the loop would spin the main thread at
|
|
1824
|
-
// 100% CPU doing zero allocation -- the exact signature that made #2379
|
|
1825
|
-
// expensive to diagnose. This break turns that failure mode into "flush
|
|
1826
|
-
// stops early" instead.
|
|
1827
|
-
if (chunkEnd === this.meshQueueReadIndex)
|
|
1828
|
-
break;
|
|
1829
|
-
const chunk = this.meshQueue.slice(this.meshQueueReadIndex, chunkEnd);
|
|
1830
|
-
this.meshQueueReadIndex = chunkEnd;
|
|
1770
|
+
flushPending(device, pipeline, budgetMs = 12, trace, deterministicUploads = false) {
|
|
1771
|
+
const result = flushQueuedMeshes(this.meshQueue, this.meshQueueReadIndex, (chunk, nextReadIndex) => {
|
|
1772
|
+
this.meshQueueReadIndex = nextReadIndex;
|
|
1831
1773
|
this.appendToBatches(chunk, device, pipeline, true);
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
this.meshQueueReadIndex = 0;
|
|
1837
|
-
}
|
|
1838
|
-
else if (this.meshQueueReadIndex >= 8192 && this.meshQueueReadIndex * 2 >= this.meshQueue.length) {
|
|
1839
|
-
this.meshQueue = this.meshQueue.slice(this.meshQueueReadIndex);
|
|
1840
|
-
this.meshQueueReadIndex = 0;
|
|
1841
|
-
}
|
|
1842
|
-
return processed > 0;
|
|
1774
|
+
}, { budgetMs, trace, deterministicUploads, maxIndicesPerAppend: Scene.STREAMING_FRAGMENT_MAX_INDICES });
|
|
1775
|
+
this.meshQueue = result.queue;
|
|
1776
|
+
this.meshQueueReadIndex = result.readIndex;
|
|
1777
|
+
return result.processed > 0;
|
|
1843
1778
|
}
|
|
1844
1779
|
/**
|
|
1845
1780
|
* Create lightweight fragment batches from a single streaming batch.
|
|
@@ -1925,6 +1860,7 @@ export class Scene {
|
|
|
1925
1860
|
// Save references to old fragments/batches — keep them rendering
|
|
1926
1861
|
// until the new proper batches are fully built (no visual gap).
|
|
1927
1862
|
const oldFragments = this.streamingFragments;
|
|
1863
|
+
perfTally('render.finalize', oldFragments.length, 'fragments'); // #6957 fragment rebuilds
|
|
1928
1864
|
const oldBatches = this.batchedMeshes;
|
|
1929
1865
|
const fragmentSet = new Set(oldFragments);
|
|
1930
1866
|
const oldBatchSet = new Set(oldBatches);
|
|
@@ -1962,6 +1898,9 @@ export class Scene {
|
|
|
1962
1898
|
// already retired by rebuildPendingBatches.
|
|
1963
1899
|
this.retireFinalizedBatches(oldFragments);
|
|
1964
1900
|
this.retireFinalizedBatches(regroup?.retired ?? []);
|
|
1901
|
+
// #6957: same batch tally as the time-sliced path (only reached when the rebuild succeeded).
|
|
1902
|
+
if (perfCounters.enabled)
|
|
1903
|
+
perfCount('render.finalize.batches', this.batchedMeshes.filter((b) => !oldBatchSet.has(b)).length);
|
|
1965
1904
|
}
|
|
1966
1905
|
/**
|
|
1967
1906
|
* Time-sliced version of finalizeStreaming.
|
|
@@ -1972,15 +1911,21 @@ export class Scene {
|
|
|
1972
1911
|
* @param device GPU device
|
|
1973
1912
|
* @param pipeline Render pipeline
|
|
1974
1913
|
* @param budgetMs Max milliseconds per chunk (default 8 — half a 60fps frame)
|
|
1914
|
+
* @param trace The load's trace (#6979): `scene.finalize` from this call
|
|
1915
|
+
* until the promise settles, with `scene.finalize.regroup` under it
|
|
1975
1916
|
* @returns Promise that resolves when all batches are rebuilt
|
|
1976
1917
|
*/
|
|
1977
|
-
finalizeStreamingAsync(device, pipeline, budgetMs = 8) {
|
|
1918
|
+
finalizeStreamingAsync(device, pipeline, budgetMs = 8, trace) {
|
|
1919
|
+
const span = trace?.enabled ? trace.begin('scene.finalize', { fragments: this.streamingFragments.length, ephemeral: this.ephemeralStreamingMode }) : -1;
|
|
1978
1920
|
if (this.ephemeralStreamingMode) {
|
|
1979
1921
|
this.finishEphemeralStreaming();
|
|
1922
|
+
trace?.end(span);
|
|
1980
1923
|
return Promise.resolve();
|
|
1981
1924
|
}
|
|
1982
|
-
if (this.streamingFragments.length === 0)
|
|
1925
|
+
if (this.streamingFragments.length === 0) {
|
|
1926
|
+
trace?.end(span);
|
|
1983
1927
|
return Promise.resolve();
|
|
1928
|
+
}
|
|
1984
1929
|
// Mark the rebuild as in-flight: the preamble empties streamingFragments
|
|
1985
1930
|
// synchronously, so settle-sensitive consumers need this flag until the
|
|
1986
1931
|
// time-sliced rebuild swaps the new batch array in.
|
|
@@ -1989,6 +1934,7 @@ export class Scene {
|
|
|
1989
1934
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
1990
1935
|
const scene = this;
|
|
1991
1936
|
const oldFragments = this.streamingFragments;
|
|
1937
|
+
perfTally('render.finalize', oldFragments.length, 'fragments'); // #6957 fragment rebuilds
|
|
1992
1938
|
const oldBatches = this.batchedMeshes;
|
|
1993
1939
|
const fragmentSet = new Set(oldFragments);
|
|
1994
1940
|
const oldBatchSet = new Set(oldBatches);
|
|
@@ -2010,6 +1956,7 @@ export class Scene {
|
|
|
2010
1956
|
let regroup = null;
|
|
2011
1957
|
let pendingKeys = [];
|
|
2012
1958
|
let keyIdx = 0;
|
|
1959
|
+
let chunks = 0;
|
|
2013
1960
|
function rollback() {
|
|
2014
1961
|
for (const { bucket, previous, previousFrameOrigin, batch } of createdOwned) {
|
|
2015
1962
|
// Repair the owner BEFORE the free, so no bucket is ever observable
|
|
@@ -2031,6 +1978,7 @@ export class Scene {
|
|
|
2031
1978
|
function processChunk() {
|
|
2032
1979
|
try {
|
|
2033
1980
|
const chunkStart = performance.now();
|
|
1981
|
+
chunks++;
|
|
2034
1982
|
while (keyIdx < pendingKeys.length) {
|
|
2035
1983
|
const key = pendingKeys[keyIdx++];
|
|
2036
1984
|
const bucket = scene.buckets.get(key);
|
|
@@ -2070,23 +2018,30 @@ export class Scene {
|
|
|
2070
2018
|
...scene.streamingFragments,
|
|
2071
2019
|
];
|
|
2072
2020
|
scene.retireFinalizedBatches(retired);
|
|
2021
|
+
perfCount('render.finalize.batches', createdOwned.length);
|
|
2073
2022
|
scene.finalizeInProgress = false;
|
|
2023
|
+
trace?.end(span, { batches: createdOwned.length, chunks });
|
|
2074
2024
|
resolve();
|
|
2075
2025
|
}
|
|
2076
2026
|
catch (err) {
|
|
2077
2027
|
rollback();
|
|
2028
|
+
trace?.end(span, { error: true });
|
|
2078
2029
|
reject(err);
|
|
2079
2030
|
}
|
|
2080
2031
|
}
|
|
2081
2032
|
try {
|
|
2082
2033
|
// --- Synchronous preamble: re-group the streamed meshes only ---
|
|
2083
2034
|
scene.streamingFragments = [];
|
|
2035
|
+
const regroupStart = performance.now();
|
|
2084
2036
|
regroup = scene.regroupStreamed();
|
|
2037
|
+
if (trace?.enabled)
|
|
2038
|
+
trace.record('scene.finalize.regroup', regroupStart, performance.now(), undefined, span);
|
|
2085
2039
|
pendingKeys = Array.from(scene.pendingBatchKeys);
|
|
2086
2040
|
scene.pendingBatchKeys.clear();
|
|
2087
2041
|
}
|
|
2088
2042
|
catch (err) {
|
|
2089
2043
|
rollback();
|
|
2044
|
+
trace?.end(span, { error: true });
|
|
2090
2045
|
reject(err);
|
|
2091
2046
|
return;
|
|
2092
2047
|
}
|
|
@@ -3333,7 +3288,7 @@ export class Scene {
|
|
|
3333
3288
|
});
|
|
3334
3289
|
const bindGroup = pipeline.createTexturedBindGroup(uniformBuffer, texture.createView(), sampler);
|
|
3335
3290
|
const box = worldAabbFromPieces([meshData]);
|
|
3336
|
-
this.
|
|
3291
|
+
const drawable = this.modelTranslations.registerDrawable({
|
|
3337
3292
|
expressId: meshData.expressId, modelIndex: meshData.modelIndex,
|
|
3338
3293
|
bounds: box ? { min: [box.min.x, box.min.y, box.min.z], max: [box.max.x, box.max.y, box.max.z] } : undefined,
|
|
3339
3294
|
vertexBuffer,
|
|
@@ -3351,7 +3306,9 @@ export class Scene {
|
|
|
3351
3306
|
? [meshData.origin[0], meshData.origin[1], meshData.origin[2]]
|
|
3352
3307
|
: [0, 0, 0],
|
|
3353
3308
|
...(sharedTextureKey !== undefined ? { sharedTextureKey } : {}),
|
|
3354
|
-
}, meshData.modelIndex ?? 0)
|
|
3309
|
+
}, meshData.modelIndex ?? 0);
|
|
3310
|
+
this.texturedMeshes.push(drawable);
|
|
3311
|
+
this.texturedSourcePositions.set(drawable, meshData.positions);
|
|
3355
3312
|
}
|
|
3356
3313
|
catch (error) {
|
|
3357
3314
|
vertexBuffer?.destroy();
|