@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.
- package/README.md +54 -0
- package/dist/byte-streaming-prepass-result.d.ts +11 -0
- package/dist/byte-streaming-prepass-result.d.ts.map +1 -1
- package/dist/domain-export-call.d.ts.map +1 -1
- package/dist/domain-export-call.js +8 -1
- package/dist/domain-export-call.js.map +1 -1
- package/dist/export-errors.d.ts +7 -0
- package/dist/export-errors.d.ts.map +1 -1
- package/dist/export-errors.js +12 -0
- package/dist/export-errors.js.map +1 -1
- package/dist/geometry-parallel-options.d.ts +15 -0
- package/dist/geometry-parallel-options.d.ts.map +1 -1
- package/dist/geometry-parallel.d.ts +2 -47
- package/dist/geometry-parallel.d.ts.map +1 -1
- package/dist/geometry-parallel.js +59 -157
- package/dist/geometry-parallel.js.map +1 -1
- package/dist/geometry-worker-pool.d.ts +72 -0
- package/dist/geometry-worker-pool.d.ts.map +1 -0
- package/dist/geometry-worker-pool.js +176 -0
- package/dist/geometry-worker-pool.js.map +1 -0
- package/dist/geometry.worker.d.ts.map +1 -1
- package/dist/geometry.worker.js +19 -25
- package/dist/geometry.worker.js.map +1 -1
- package/dist/hung-job-recovery.d.ts +26 -2
- package/dist/hung-job-recovery.d.ts.map +1 -1
- package/dist/hung-job-recovery.js +42 -7
- package/dist/hung-job-recovery.js.map +1 -1
- package/dist/ifc-lite-bridge.d.ts +13 -2
- package/dist/ifc-lite-bridge.d.ts.map +1 -1
- package/dist/ifc-lite-bridge.js +27 -26
- package/dist/ifc-lite-bridge.js.map +1 -1
- package/dist/in-call-heartbeat.d.ts +20 -0
- package/dist/in-call-heartbeat.d.ts.map +1 -0
- package/dist/in-call-heartbeat.js +39 -0
- package/dist/in-call-heartbeat.js.map +1 -0
- package/dist/index.d.ts +21 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -28
- package/dist/index.js.map +1 -1
- package/dist/landxml-terrain-export.d.ts +41 -0
- package/dist/landxml-terrain-export.d.ts.map +1 -0
- package/dist/landxml-terrain-export.js +14 -0
- package/dist/landxml-terrain-export.js.map +1 -0
- package/dist/main-engine-init.d.ts +5 -0
- package/dist/main-engine-init.d.ts.map +1 -0
- package/dist/main-engine-init.js +42 -0
- package/dist/main-engine-init.js.map +1 -0
- package/dist/perf-flags.d.ts +55 -0
- package/dist/perf-flags.d.ts.map +1 -0
- package/dist/perf-flags.js +66 -0
- package/dist/perf-flags.js.map +1 -0
- package/dist/prepass-routing.d.ts +53 -0
- package/dist/prepass-routing.d.ts.map +1 -0
- package/dist/prepass-routing.js +100 -0
- package/dist/prepass-routing.js.map +1 -0
- package/dist/scan-proposals.d.ts +132 -0
- package/dist/scan-proposals.d.ts.map +1 -0
- package/dist/scan-proposals.js +12 -0
- package/dist/scan-proposals.js.map +1 -0
- package/dist/scan-segmentation.d.ts +205 -0
- package/dist/scan-segmentation.d.ts.map +1 -0
- package/dist/scan-segmentation.js +17 -0
- package/dist/scan-segmentation.js.map +1 -0
- package/dist/warm-pool.d.ts +27 -0
- package/dist/warm-pool.d.ts.map +1 -0
- package/dist/warm-pool.js +48 -0
- package/dist/warm-pool.js.map +1 -0
- package/dist/wasm-shared-module.d.ts +17 -19
- package/dist/wasm-shared-module.d.ts.map +1 -1
- package/dist/wasm-shared-module.js +90 -77
- package/dist/wasm-shared-module.js.map +1 -1
- package/dist/wasm-streaming-guard.d.ts +2 -0
- package/dist/wasm-streaming-guard.d.ts.map +1 -0
- package/dist/wasm-streaming-guard.js +22 -0
- package/dist/wasm-streaming-guard.js.map +1 -0
- package/dist/worker-count.d.ts +10 -0
- package/dist/worker-count.d.ts.map +1 -1
- package/dist/worker-count.js +19 -0
- package/dist/worker-count.js.map +1 -1
- package/dist/worker-trace.d.ts +16 -0
- package/dist/worker-trace.d.ts.map +1 -0
- package/dist/worker-trace.js +39 -0
- package/dist/worker-trace.js.map +1 -0
- package/dist/world-frame.d.ts +24 -0
- package/dist/world-frame.d.ts.map +1 -1
- package/dist/world-frame.js +34 -0
- package/dist/world-frame.js.map +1 -1
- 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 {
|
|
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
|
-
|
|
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.
|
|
217
|
-
|
|
218
|
-
|
|
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
|
|
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.
|
|
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.
|
|
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
|
-
|
|
647
|
-
|
|
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.
|
|
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.
|
|
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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"}
|