@ifc-lite/geometry 7.7.0 → 7.9.0

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.
Files changed (88) hide show
  1. package/README.md +54 -0
  2. package/dist/byte-streaming-prepass-result.d.ts +11 -0
  3. package/dist/byte-streaming-prepass-result.d.ts.map +1 -1
  4. package/dist/domain-export-call.d.ts.map +1 -1
  5. package/dist/domain-export-call.js +8 -1
  6. package/dist/domain-export-call.js.map +1 -1
  7. package/dist/export-errors.d.ts +7 -0
  8. package/dist/export-errors.d.ts.map +1 -1
  9. package/dist/export-errors.js +12 -0
  10. package/dist/export-errors.js.map +1 -1
  11. package/dist/geometry-parallel-options.d.ts +15 -0
  12. package/dist/geometry-parallel-options.d.ts.map +1 -1
  13. package/dist/geometry-parallel.d.ts +2 -47
  14. package/dist/geometry-parallel.d.ts.map +1 -1
  15. package/dist/geometry-parallel.js +59 -157
  16. package/dist/geometry-parallel.js.map +1 -1
  17. package/dist/geometry-worker-pool.d.ts +72 -0
  18. package/dist/geometry-worker-pool.d.ts.map +1 -0
  19. package/dist/geometry-worker-pool.js +176 -0
  20. package/dist/geometry-worker-pool.js.map +1 -0
  21. package/dist/geometry.worker.d.ts.map +1 -1
  22. package/dist/geometry.worker.js +19 -25
  23. package/dist/geometry.worker.js.map +1 -1
  24. package/dist/hung-job-recovery.d.ts +26 -2
  25. package/dist/hung-job-recovery.d.ts.map +1 -1
  26. package/dist/hung-job-recovery.js +42 -7
  27. package/dist/hung-job-recovery.js.map +1 -1
  28. package/dist/ifc-lite-bridge.d.ts +13 -2
  29. package/dist/ifc-lite-bridge.d.ts.map +1 -1
  30. package/dist/ifc-lite-bridge.js +27 -26
  31. package/dist/ifc-lite-bridge.js.map +1 -1
  32. package/dist/in-call-heartbeat.d.ts +20 -0
  33. package/dist/in-call-heartbeat.d.ts.map +1 -0
  34. package/dist/in-call-heartbeat.js +39 -0
  35. package/dist/in-call-heartbeat.js.map +1 -0
  36. package/dist/index.d.ts +21 -8
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +27 -28
  39. package/dist/index.js.map +1 -1
  40. package/dist/landxml-terrain-export.d.ts +41 -0
  41. package/dist/landxml-terrain-export.d.ts.map +1 -0
  42. package/dist/landxml-terrain-export.js +14 -0
  43. package/dist/landxml-terrain-export.js.map +1 -0
  44. package/dist/main-engine-init.d.ts +5 -0
  45. package/dist/main-engine-init.d.ts.map +1 -0
  46. package/dist/main-engine-init.js +42 -0
  47. package/dist/main-engine-init.js.map +1 -0
  48. package/dist/perf-flags.d.ts +55 -0
  49. package/dist/perf-flags.d.ts.map +1 -0
  50. package/dist/perf-flags.js +66 -0
  51. package/dist/perf-flags.js.map +1 -0
  52. package/dist/prepass-routing.d.ts +53 -0
  53. package/dist/prepass-routing.d.ts.map +1 -0
  54. package/dist/prepass-routing.js +100 -0
  55. package/dist/prepass-routing.js.map +1 -0
  56. package/dist/scan-proposals.d.ts +132 -0
  57. package/dist/scan-proposals.d.ts.map +1 -0
  58. package/dist/scan-proposals.js +12 -0
  59. package/dist/scan-proposals.js.map +1 -0
  60. package/dist/scan-segmentation.d.ts +205 -0
  61. package/dist/scan-segmentation.d.ts.map +1 -0
  62. package/dist/scan-segmentation.js +17 -0
  63. package/dist/scan-segmentation.js.map +1 -0
  64. package/dist/warm-pool.d.ts +27 -0
  65. package/dist/warm-pool.d.ts.map +1 -0
  66. package/dist/warm-pool.js +48 -0
  67. package/dist/warm-pool.js.map +1 -0
  68. package/dist/wasm-shared-module.d.ts +17 -19
  69. package/dist/wasm-shared-module.d.ts.map +1 -1
  70. package/dist/wasm-shared-module.js +90 -77
  71. package/dist/wasm-shared-module.js.map +1 -1
  72. package/dist/wasm-streaming-guard.d.ts +2 -0
  73. package/dist/wasm-streaming-guard.d.ts.map +1 -0
  74. package/dist/wasm-streaming-guard.js +22 -0
  75. package/dist/wasm-streaming-guard.js.map +1 -0
  76. package/dist/worker-count.d.ts +10 -0
  77. package/dist/worker-count.d.ts.map +1 -1
  78. package/dist/worker-count.js +19 -0
  79. package/dist/worker-count.js.map +1 -1
  80. package/dist/worker-trace.d.ts +16 -0
  81. package/dist/worker-trace.d.ts.map +1 -0
  82. package/dist/worker-trace.js +39 -0
  83. package/dist/worker-trace.js.map +1 -0
  84. package/dist/world-frame.d.ts +24 -0
  85. package/dist/world-frame.d.ts.map +1 -1
  86. package/dist/world-frame.js +34 -0
  87. package/dist/world-frame.js.map +1 -1
  88. package/package.json +18 -7
@@ -3,7 +3,8 @@
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  import { postGeometryWorkerInit } from './geometry-worker-init.js';
5
5
  import { mergeGeometryDiagnostics } from './diagnostics.js';
6
- import { computeWorkerCount } from './worker-count.js';
6
+ import { planLoadWorkerCount } from './worker-count.js';
7
+ import { readBatchSizingOverride, readShardScanFlag, readVisibilityFilterOverride } from './perf-flags.js';
7
8
  import { notifyIfWasmAssetUnavailable, notifyIfWorkerScriptUnavailable } from './wasm-asset-error.js';
8
9
  import { restashWasmPanicLocation } from './wasm-panic-forward.js';
9
10
  import { mergeShardStyleSlices } from './shard-style-merge.js';
@@ -12,138 +13,14 @@ import { mergeShardStyleSlices } from './shard-style-merge.js';
12
13
  // (and vice versa) instead of fetching the same binary a second time.
13
14
  import { compileSharedWasmModule } from './wasm-shared-module.js';
14
15
  import { stitchShards } from './shard-stitch.js';
16
+ import { spawnGeometryWorker } from './geometry-worker-pool.js';
17
+ export { GeometryWorkerPool, DEFAULT_POOL_LIMITS, FRESH_WORKER_HEAP_BYTES } from './geometry-worker-pool.js';
18
+ import { NOOP_LOAD_TRACE, accountWorkerMessages, countCopy, enableWorkerTrace, isTraceSpansMessage } from '@ifc-lite/load-trace';
15
19
  import { resolveRtcFrame } from './rtc-frame.js';
16
20
  import { emptyStylesPrepassEvent, frozenStallPhase, GateTracker, PhaseBoundTimers, preWorkerPhaseFailureDiagnostics, } from './stall-phase.js';
17
21
  import { SkippedHungElementsCollector, startHungJobMonitor, WorkerJobLedger, } from './hung-job-recovery.js';
18
- /**
19
- * Prepass class-byte layout, mirroring the `PREPASS_CLASS_*` definitions in
20
- * `rust/processing/src/shard_classes.rs` (the source of truth — these are
21
- * pinned to it by `prepass-class-spans.test.ts`).
22
- *
23
- * The producer packs a named code in the LOW bits and composes FLAG bits on
24
- * top (`PREPASS_CLASS_FLAG_GEOMETRY_JOB` 0x80, `..._FLAG_TYPE_CANDIDATE`
25
- * 0x40), so a consumer must mask before comparing — the Rust consumer does
26
- * (`gpu_meshes/prepass_discovery.rs`), and so does {@link extractPrepassSpanLists}.
27
- */
28
- export const PREPASS_CLASS_CODE_MASK = 0x3f;
29
- /** `IFCSTYLEDITEM`. */
30
- export const PREPASS_CLASS_STYLED_ITEM = 4;
31
- /** `IFCINDEXEDCOLOURMAP`. */
32
- export const PREPASS_CLASS_INDEXED_COLOUR_MAP = 5;
33
- /** `IFCMATERIALDEFINITIONREPRESENTATION`. */
34
- export const PREPASS_CLASS_MATERIAL_DEF_REPR = 6;
35
- /** `IFCRELASSOCIATESMATERIAL`. */
36
- export const PREPASS_CLASS_REL_ASSOCIATES_MATERIAL = 7;
37
- /** `IFCRELVOIDSELEMENT`. */
38
- export const PREPASS_CLASS_REL_VOIDS = 8;
39
- /** `IFCRELFILLSELEMENT`. */
40
- export const PREPASS_CLASS_REL_FILLS = 9;
41
- /** `IFCRELAGGREGATES`. */
42
- export const PREPASS_CLASS_REL_AGGREGATES = 10;
43
- /** The classes the host builds span lists for (every other code is ignored). */
44
- const HOST_SPAN_CLASSES = [
45
- PREPASS_CLASS_STYLED_ITEM,
46
- PREPASS_CLASS_INDEXED_COLOUR_MAP,
47
- PREPASS_CLASS_MATERIAL_DEF_REPR,
48
- PREPASS_CLASS_REL_ASSOCIATES_MATERIAL,
49
- PREPASS_CLASS_REL_VOIDS,
50
- PREPASS_CLASS_REL_FILLS,
51
- PREPASS_CLASS_REL_AGGREGATES,
52
- ];
53
- /**
54
- * Build one `(id, start, length)` span list per host-consumed prepass class
55
- * from the stitched shard columns, in FILE ORDER. Every comparison goes
56
- * through {@link PREPASS_CLASS_CODE_MASK}, so a record that carries a flag bit
57
- * alongside its named code still lands in its list instead of being dropped.
58
- * Returns exact-size arrays (one entry per class in `HOST_SPAN_CLASSES`,
59
- * empty when the file has none).
60
- */
61
- export function extractPrepassSpanLists(classes, ids, starts, lengths) {
62
- // Sized by the code mask rather than by the highest class the host consumes:
63
- // a masked code is always < 64, so a class added on the Rust side cannot
64
- // write out of bounds here (typed arrays discard such writes silently).
65
- const counts = new Uint32Array(PREPASS_CLASS_CODE_MASK + 1);
66
- for (let i = 0; i < classes.length; i++)
67
- counts[classes[i] & PREPASS_CLASS_CODE_MASK]++;
68
- const slots = new Map();
69
- for (const k of HOST_SPAN_CLASSES)
70
- slots.set(k, { arr: new Uint32Array(counts[k] * 3), w: 0 });
71
- for (let i = 0; i < classes.length; i++) {
72
- const slot = slots.get(classes[i] & PREPASS_CLASS_CODE_MASK);
73
- if (!slot)
74
- continue;
75
- slot.arr[slot.w] = ids[i];
76
- slot.arr[slot.w + 1] = starts[i];
77
- slot.arr[slot.w + 2] = lengths[i];
78
- slot.w += 3;
79
- }
80
- const spans = new Map();
81
- for (const [k, slot] of slots)
82
- spans.set(k, slot.arr);
83
- return spans;
84
- }
85
- /**
86
- * Plan content-affinity routing for one chunk: assign each job (by index) to a
87
- * worker bucket so that every job sharing an affinity key lands on the SAME
88
- * worker — across the whole stream, since `keyToWorker` is the caller's sticky
89
- * map. New keys are handed out round-robin from `startWorker`, so each worker
90
- * owns roughly `1/workerCount` of the distinct keys (≈ distinct geometries, the
91
- * dominant meshing cost). Pure: mutates only the passed `keyToWorker` and returns
92
- * the advanced round-robin cursor. (#1130 follow-up — see `affinity_key` in Rust.)
93
- */
94
- export function planAffinityRouting(affinity, totalJobs, workerCount, keyToWorker, startWorker) {
95
- const buckets = Array.from({ length: workerCount }, () => []);
96
- let nextWorker = startWorker % workerCount;
97
- for (let j = 0; j < totalJobs; j++) {
98
- const key = affinity[j];
99
- let w = keyToWorker.get(key);
100
- if (w === undefined) {
101
- w = nextWorker;
102
- nextWorker = (nextWorker + 1) % workerCount;
103
- keyToWorker.set(key, w);
104
- }
105
- buckets[w].push(j);
106
- }
107
- return { buckets, nextWorker };
108
- }
109
- /**
110
- * Optional runtime override for the geometry worker's adaptive batch sizing
111
- * (#1097), read off `globalThis` on the host thread. A zero-cost escape hatch
112
- * for hardware-specific tuning / field-debugging the watchdog↔throughput
113
- * trade-off without a rebuild; unset ⇒ the worker uses DEFAULT_BATCH_SIZING.
114
- * Validation/merge happens in the worker via `resolveBatchSizing`.
115
- */
116
- function readBatchSizingOverride() {
117
- const g = globalThis;
118
- const v = g.__IFC_LITE_BATCH_SIZING;
119
- return v && typeof v === 'object' ? v : undefined;
120
- }
121
- /**
122
- * Optional load-time visibility filter (#1097), read off `globalThis` on the
123
- * host thread (tuning / benchmarking escape hatch). `{ disabledTypes,
124
- * skipTypeGeometry }` skip the matching geometry jobs at the prepass so they're
125
- * never decoded/meshed/uploaded. Unset ⇒ load everything.
126
- */
127
- function readVisibilityFilterOverride() {
128
- const g = globalThis;
129
- const v = g.__IFC_LITE_VISIBILITY_FILTER;
130
- return v && typeof v === 'object' ? v : undefined;
131
- }
132
- /**
133
- * SPIKE flag: shard the entity-index scan across the idle geometry workers and
134
- * deliver the stitched index early, instead of waiting for the pre-pass
135
- * worker's single-threaded post-scan `entity-index` emission. Read off
136
- * `globalThis.__IFC_LITE_SHARD_SCAN` (benchmark A/B knob). Truthy ⇒ on.
137
- */
138
- function readShardScanFlag() {
139
- const g = globalThis;
140
- const v = g.__IFC_LITE_SHARD_SCAN;
141
- // ON by default; 0/'0'/false is the kill switch (same convention as the
142
- // other #1682 load/render knobs).
143
- if (v === 0 || v === '0' || v === false)
144
- return false;
145
- return true;
146
- }
22
+ export { PREPASS_CLASS_CODE_MASK, PREPASS_CLASS_STYLED_ITEM, PREPASS_CLASS_INDEXED_COLOUR_MAP, PREPASS_CLASS_MATERIAL_DEF_REPR, PREPASS_CLASS_REL_ASSOCIATES_MATERIAL, PREPASS_CLASS_REL_VOIDS, PREPASS_CLASS_REL_FILLS, PREPASS_CLASS_REL_AGGREGATES, extractPrepassSpanLists, planAffinityRouting, } from './prepass-routing.js';
23
+ import { PREPASS_CLASS_STYLED_ITEM, PREPASS_CLASS_INDEXED_COLOUR_MAP, PREPASS_CLASS_MATERIAL_DEF_REPR, PREPASS_CLASS_REL_ASSOCIATES_MATERIAL, PREPASS_CLASS_REL_VOIDS, PREPASS_CLASS_REL_FILLS, PREPASS_CLASS_REL_AGGREGATES, extractPrepassSpanLists, planAffinityRouting, } from './prepass-routing.js';
147
24
  /**
148
25
  * Terminate a pool worker on a teardown path that is already unwinding.
149
26
  *
@@ -182,10 +59,15 @@ function entityIndexSetup(columns) {
182
59
  };
183
60
  }
184
61
  let nextSourceSessionId = 0;
62
+ /** A load above this size terminates the prewarmed workers it did not lease (#7036). */
63
+ const LARGE_LOAD_POOL_DRAIN_MB = 64;
185
64
  export async function* processParallel(buffer, coordinator, sharedRtcOffset,
186
65
  /** Optional pre-allocated SAB the caller already shares with another worker. */
187
66
  existingSab, options) {
188
67
  const sourceSessionId = `geometry-source-${++nextSourceSessionId}`;
68
+ // #6956: spans for this pool; worker spans hang under `geometry.pool`.
69
+ const trace = options?.trace ?? NOOP_LOAD_TRACE;
70
+ let poolSpan = -1, tracedWorkers = 0;
189
71
  coordinator.reset();
190
72
  yield { type: 'start', totalEstimate: buffer.length / 1000 };
191
73
  yield { type: 'model-open', modelID: 0 };
@@ -210,12 +92,18 @@ existingSab, options) {
210
92
  }
211
93
  else {
212
94
  sharedBuffer = new SharedArrayBuffer(buffer.byteLength);
213
- new Uint8Array(sharedBuffer).set(buffer);
95
+ new Uint8Array(sharedBuffer).set(countCopy('source.geometrySab', buffer));
214
96
  }
215
97
  // N independent WASM-instance workers, each running
216
- // `geometry.worker.js` (one `@ifc-lite/wasm` instance per worker).
217
- const makeGeometryWorker = () => new Worker(new URL('./geometry.worker.js', import.meta.url), { type: 'module' });
218
- const makePrepassWorker = () => new Worker(new URL('./geometry.worker.js', import.meta.url), { type: 'module' });
98
+ // `geometry.worker.ts` (one `@ifc-lite/wasm` instance per worker).
99
+ // #6957: `accountWorkerMessages` counts each pool's messages per direction (identity when counters are off).
100
+ // #7036: lease the workers a host prewarmed when this load was requested
101
+ // (spawned beside the file read); spawn the rest. Either way a worker serves
102
+ // this load only and is terminated by it, exactly as before.
103
+ const pool = options?.workerPool ?? null, poolKey = options?.wasmUrls?.wasm ?? '';
104
+ const acquireWorker = (role, thread) => enableWorkerTrace(pool ? pool.acquire(role, poolKey).worker : accountWorkerMessages(spawnGeometryWorker(), role), trace, thread);
105
+ const makeGeometryWorker = () => acquireWorker('geometry', `geom-${tracedWorkers++}`);
106
+ const makePrepassWorker = () => acquireWorker('prepass', 'prepass');
219
107
  // Shared aggregator state used by every worker callback below.
220
108
  const eventQueue = [];
221
109
  let resolveWaiting = null;
@@ -274,7 +162,7 @@ existingSab, options) {
274
162
  let entityIndexDeliveredEarly = false;
275
163
  const shardResults = [];
276
164
  let shardResultsRemaining = 0;
277
- let shardScanDispatchedAt = -1;
165
+ let shardScanDispatchedAt = -1, shardScanSpan = -1;
278
166
  // #4902: settles once, normally or via the bounded-wait timeout below.
279
167
  let shardScanSettled = false;
280
168
  let stylesSlicesSettled = false;
@@ -316,6 +204,10 @@ existingSab, options) {
316
204
  workerSpoke = true;
317
205
  ledger.onHeard(workerIndex, performance.now());
318
206
  const msg = e.data;
207
+ if (isTraceSpansMessage(msg)) {
208
+ trace.merge(msg.payload, poolSpan);
209
+ return;
210
+ }
319
211
  if (msg.type === 'ready') {
320
212
  console.log(`[stream] worker[${workerIndex}] WASM ready @ ${elapsed()}ms`);
321
213
  return;
@@ -394,6 +286,11 @@ existingSab, options) {
394
286
  }
395
287
  if (msg.diagnostics)
396
288
  diagnostics = mergeGeometryDiagnostics(diagnostics, msg.diagnostics);
289
+ // An in-call heartbeat (no seq) past the absolute call bound no longer
290
+ // counts as liveness, so with recovery off the consumer watchdog still
291
+ // bounds a call that reports progress forever (MAX_GEOMETRY_CALL_MS).
292
+ if (typeof msg.seq !== 'number' && ledger.callOverCap(workerIndex, performance.now()))
293
+ return;
397
294
  eventQueue.push({ type: 'progress', phase: 'workers' });
398
295
  wake();
399
296
  return;
@@ -405,6 +302,7 @@ existingSab, options) {
405
302
  if (msg.type === 'batch') {
406
303
  if (firstBatchByWorker[workerIndex] === undefined) {
407
304
  firstBatchByWorker[workerIndex] = elapsed();
305
+ trace.milestone('geometry.firstBatch');
408
306
  console.log(`[stream] worker[${workerIndex}] first batch @ ${elapsed()}ms (${msg.meshes?.length ?? 0} meshes)`);
409
307
  }
410
308
  // The worker already emits `MeshData`-shaped objects (see the worker's
@@ -521,18 +419,8 @@ existingSab, options) {
521
419
  // totalJobs estimate; use file-size proxy. The memory-budget cap in
522
420
  // `computeWorkerCount` keeps an over-estimate harmless, and still bounds an
523
421
  // explicit `workerCountOverride` so the A/B knob can't OOM the tab.
524
- const cores = typeof navigator !== 'undefined' ? (navigator.hardwareConcurrency ?? 2) : 2;
525
- const deviceMemoryGB = typeof navigator !== 'undefined'
526
- ? (navigator.deviceMemory ?? 8) : 8;
527
422
  const fileSizeMB = buffer.byteLength / (1024 * 1024);
528
- const estimatedJobs = Math.max(1, Math.ceil(fileSizeMB * 100));
529
- const workerCountResult = computeWorkerCount({
530
- fileSizeMB,
531
- cores,
532
- deviceMemoryGB,
533
- totalJobs: estimatedJobs,
534
- workerCountOverride: options?.workerCountOverride,
535
- });
423
+ const { cores, ...workerCountResult } = planLoadWorkerCount(fileSizeMB, options?.workerCountOverride);
536
424
  const workerCount = workerCountResult.count;
537
425
  // Await the ONE shared compile (started up-front) so every worker instantiates
538
426
  // the SAME module via `initSync` instead of recompiling the binary N+1 times.
@@ -582,7 +470,7 @@ existingSab, options) {
582
470
  * Terminate and replace pool worker `index` (#4902 review). A silent
583
471
  * `scan-shard` / `resolve-styles-shard` / `finalize-styles` reply means
584
472
  * that worker is wedged inside ONE synchronous WASM call —
585
- * `geometry.worker.js` serializes every message behind its tail promise, so
473
+ * `geometry.worker.ts` serializes every message behind its tail promise, so
586
474
  * continuing the fallback without replacing it would queue the fallback's
587
475
  * own `stream-start`/chunks/`stream-end` forever behind the stuck call, and
588
476
  * `workersCompleted` would never reach `workers.length`. None of the three
@@ -615,7 +503,7 @@ existingSab, options) {
615
503
  // A structured-clonable payload posted to a terminated worker is a
616
504
  // no-op, not a throw — so this means the port is in a state we did
617
505
  // not expect. That worker will never flush its tail: `complete` is
618
- // posted ONLY from `emitSessionEnd` in geometry.worker.js, which
506
+ // posted ONLY from `emitSessionEnd` in geometry.worker.ts, which
619
507
  // fires ONLY in response to `stream-end`. The drain loop below waits
620
508
  // for a `complete` from every worker (`workersCompleted >=
621
509
  // workers.length`), so leaving this as a log would make the load
@@ -642,11 +530,9 @@ existingSab, options) {
642
530
  // georeferencing and externally-resolved geometry consumers.
643
531
  coordinator.setWasmMetadata(prepassMeta.unitScale, effectiveNeedsShift ? { x: rtcX, y: rtcY, z: rtcZ } : null, frame);
644
532
  wasmFrameResolved = true;
645
- eventQueue.push({
646
- type: 'rtcOffset',
647
- rtcOffset: { x: rtcX, y: rtcY, z: rtcZ },
648
- hasRtc: effectiveNeedsShift,
649
- });
533
+ eventQueue.push({ type: 'rtcOffset', rtcOffset: { x: rtcX, y: rtcY, z: rtcZ }, hasRtc: effectiveNeedsShift });
534
+ if (prepassMeta.unitRefused)
535
+ eventQueue.push({ type: 'unitRefused' });
650
536
  wake();
651
537
  const emptyU32 = new Uint32Array(0);
652
538
  const emptyU8 = new Uint8Array(0);
@@ -788,6 +674,8 @@ existingSab, options) {
788
674
  // Step-by-step timing so we can tell exactly where time goes.
789
675
  const t0 = performance.now();
790
676
  const elapsed = () => Math.round(performance.now() - t0);
677
+ trace.setAttrs({ workerCount });
678
+ poolSpan = trace.begin('geometry.pool', { workerCount });
791
679
  const overrideNote = options?.workerCountOverride != null
792
680
  ? ` (override=${options.workerCountOverride}, bound=${workerCountResult.reason})`
793
681
  : ` (cores=${cores}, bound=${workerCountResult.reason})`;
@@ -807,6 +695,7 @@ existingSab, options) {
807
695
  // record the parser will not find" but "every record after it is missing".
808
696
  malformedRecordCount) => {
809
697
  console.log(`[stream] entity-index (${source}) @ ${elapsed()}ms (${ids.length} entries)`);
698
+ trace.milestone('geometry.entityIndex');
810
699
  if (typeof SharedArrayBuffer !== 'undefined') {
811
700
  // Sharded-stitch columns arrive already SAB-backed (stitchShards writes
812
701
  // its exact-size output into SABs) — share them as-is. The serial
@@ -874,8 +763,9 @@ existingSab, options) {
874
763
  return;
875
764
  shardScanSettled = true;
876
765
  gateTracker.markShardScanDone();
766
+ trace.end(shardScanSpan);
877
767
  const shards = shardResults;
878
- const stitched = stitchShards(shards);
768
+ const stitched = trace.span('shard.stitch', () => stitchShards(shards), undefined, poolSpan);
879
769
  if (!stitched) {
880
770
  console.warn('[stream][shard] stitch fallback triggered (handoff not found) — serial pre-pass');
881
771
  startPrepass(false);
@@ -1020,6 +910,7 @@ existingSab, options) {
1020
910
  shardResults.length = n;
1021
911
  shardResultsRemaining = n;
1022
912
  shardScanDispatchedAt = elapsed();
913
+ shardScanSpan = trace.begin('geometry.shardScan', { shards: n }, poolSpan);
1023
914
  gateTracker.markShardScanStarted();
1024
915
  console.log(`[stream][shard] dispatching ${n} shard scans over ${(len / (1024 * 1024)).toFixed(1)}MB @ ${shardScanDispatchedAt}ms`);
1025
916
  for (let i = 0; i < n; i++) {
@@ -1039,6 +930,7 @@ existingSab, options) {
1039
930
  shardScanSettled = true;
1040
931
  gateTracker.markShardScanDone();
1041
932
  console.warn(`[stream][shard] ${shardResultsRemaining}/${n} shard scan(s) silent — falling back to the serial pre-pass (#4902)`);
933
+ trace.end(shardScanSpan, { fallback: true });
1042
934
  diagnostics = mergeGeometryDiagnostics(diagnostics, preWorkerPhaseFailureDiagnostics('shard-scan-timeout'));
1043
935
  // Replace every worker still silent on scan-shard BEFORE continuing:
1044
936
  // `scan-shard` is a synchronous WASM call, so a missing reply means
@@ -1052,6 +944,9 @@ existingSab, options) {
1052
944
  });
1053
945
  }
1054
946
  const prepassWorker = makePrepassWorker();
947
+ // #7036: idle workers this large load did not lease would only add to its peak.
948
+ if (pool && fileSizeMB > LARGE_LOAD_POOL_DRAIN_MB)
949
+ pool.drain('large-load');
1055
950
  // Wrap the rest of the pipeline so worker teardown runs not only on
1056
951
  // normal completion / error / zero-jobs branches, but also when the
1057
952
  // consumer abandons the generator via `.return()` / `.throw()` while it
@@ -1086,7 +981,7 @@ existingSab, options) {
1086
981
  }, hungJobTimeoutMs);
1087
982
  // Forward the consumer-supplied wasm URL to the pre-pass worker so it
1088
983
  // doesn't fall back to wasm-bindgen's `import.meta.url` default. The
1089
- // pre-pass worker uses the same `geometry.worker.js` bundle and the
984
+ // pre-pass worker uses the same `geometry.worker.ts` bundle and the
1090
985
  // legacy (non-threaded) wasm, so `wasmUrls.wasm` is the right key.
1091
986
  // Skipped entirely when no URL was provided — keeps Vite/webpack
1092
987
  // consumers on the bundler-native resolution path.
@@ -1111,6 +1006,10 @@ existingSab, options) {
1111
1006
  prepassWorker.onmessage = (e) => {
1112
1007
  prepassSpoke = true;
1113
1008
  const data = e.data;
1009
+ if (isTraceSpansMessage(data)) {
1010
+ trace.merge(data.payload, poolSpan);
1011
+ return;
1012
+ }
1114
1013
  if (data.type === 'prepass-progress') {
1115
1014
  eventQueue.push({ type: 'progress', phase: 'prepass' });
1116
1015
  wake();
@@ -1120,7 +1019,7 @@ existingSab, options) {
1120
1019
  const evt = data.event;
1121
1020
  if (evt.type === 'meta') {
1122
1021
  prepassMeta = {
1123
- unitScale: evt.unitScale,
1022
+ unitScale: evt.unitScale, unitRefused: evt.unitRefused === true,
1124
1023
  planeAngleToRadians: evt.planeAngleToRadians ?? undefined,
1125
1024
  rtcOffset: evt.rtcOffset,
1126
1025
  needsShift: evt.needsShift,
@@ -1164,6 +1063,7 @@ existingSab, options) {
1164
1063
  const materialColorCounts = evt.materialColorCounts ?? new Uint32Array(0);
1165
1064
  const materialColors = evt.materialColors ?? new Uint8Array(0);
1166
1065
  console.log(`[stream] styles @ ${elapsed()}ms (${styleIds.length} styled, ${voidKeys.length} void hosts), draining ${queuedChunks.length} queued chunks`);
1066
+ trace.milestone('prepass.styles');
1167
1067
  broadcastSetup((w) => {
1168
1068
  // Slice each typed array per-worker so each can be in its own
1169
1069
  // transfer list without conflict. The slice cost is bounded by
@@ -1290,6 +1190,7 @@ existingSab, options) {
1290
1190
  else if (evt.type === 'complete') {
1291
1191
  prepassJobsTotal = evt.totalJobs;
1292
1192
  console.log(`[stream] prepass complete @ ${elapsed()}ms totalJobs=${prepassJobsTotal} chunks=${chunkArrivals}`);
1193
+ trace.milestone('prepass.complete');
1293
1194
  // Unconditionally drive the prepass-complete handler here.
1294
1195
  // The outer loop's `prepassJobsTotal > 0` gate would skip
1295
1196
  // zero-geometry files (no IFC geometry entities), causing
@@ -1311,7 +1212,7 @@ existingSab, options) {
1311
1212
  // (if this error was a wasm trap) on THIS realm's global, before the
1312
1213
  // error below is thrown, so `attachWasmPanicLocation` in
1313
1214
  // analytics-scrub.ts sees it exactly as it would a main-thread trap.
1314
- // This is the SAME `geometry.worker.js` as the main process-worker
1215
+ // This is the SAME `geometry.worker.ts` as the main process-worker
1315
1216
  // pool below, so it forwards the same `wasmPanicLocation`/`wasmPanicAt`
1316
1217
  // fields on its `{type:'error'}` message — this handler previously
1317
1218
  // dropped them on the floor.
@@ -1501,6 +1402,7 @@ existingSab, options) {
1501
1402
  };
1502
1403
  }
1503
1404
  finally {
1405
+ trace.end(poolSpan);
1504
1406
  phaseBoundTimers.clearAll();
1505
1407
  // Re-seat the caller's handle to a frozen snapshot (#4979 review): the
1506
1408
  // live reader closes over `gateTracker`, and transitively this whole
@@ -1 +1 @@
1
- {"version":3,"file":"geometry-parallel.js","sourceRoot":"","sources":["../src/geometry-parallel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geometry-parallel.js","sourceRoot":"","sources":["../src/geometry-parallel.ts"],"names":[],"mappings":"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"}