Loader configuration (cache flags, prefetch flags).
Current view state — read after initializeSceneDimensions for logging.
Active per-type loader maps for the post-load monitor wiring.
Mesh loaders, for the post-load refinement kick and the monitor's LOD-progress provider.
Deliberately NOT passed to reportLoadOutcome below, which has never
carried mesh — widening the load-outcome grading is a separate change with
its own observable output. The refinement kick is needed because a mesh
reveal ladder commits only its first level during loadScene, so without it
the surface would sit at that first patch until the user moved a slider; the
LOD-progress provider is needed because the scene-graph converter stamps
additiveSublods on a laddered mesh parent, and a node with that stamp but
no live loader state renders as LOD -/N ("not streaming") throughout.
Current GPU buffer pool reference (may be null when disabled).
Current monitor reference.
Profiler reference.
LOD-group registry for the live LOD-progress provider (substitutive levels).
Await any previous loader's teardown before constructing the new one.
Reset the predictive-prefetch baseline.
Validate scene_dimensions blob and update the loader's viewState.
Implementation in initialize-scene-dimensions.ts; the orchestrator
writes the result back to its own viewState field.
Build the NodeBuildCtx used by the recursive scene-graph walk.
Built once before loadSceneNodes runs so the leaves all see the
same viewState snapshot.
Stats helper used by the post-load monitor wiring.
Registered failed-load paths — graded against the registered path set by
reportLoadOutcome to log an honest load outcome.
Recorded failure messages in the same encounter order as the paths.
The shared failed-loads provider (paths + retry-all + per-path reason). Single construction point so the monitor banner and the layers-panel error badge read the same live failure set.
OptionalrefinementWhy this path's next rung is held back, if it is (SceneLoader. refinementHoldReason: density gate or residency ceiling); the monitor
marks such rungs as held rather than streaming. Optional so headless test
contexts need not supply it.
Kick the GSplats LOD refinement loop after initial load.
Drain any view-state queued while the serialization lock was held,
re-entering updateView with it. Only used by the post-load refinement
kick's rejection handler — see the comment at that call site.
True when a state was drained (the re-entered pass then settles the parked waiters itself); false when nothing was queued.
Settle callers parked in updateView's supersede branch. Only used by the
post-load refinement kick's rejection handler, for the case where nothing
was queued and so no re-entered pass will resolve them.
Hand the started scene-identity watchdog to the orchestrator, which owns its disposal (dataset switch / teardown).
Resolved per-tier cache budgets (for the Settings popover readout).
Current abort controller — loadScene aborts it before disposing.
Narrow context the load-scene path needs. Captures the orchestrator's mutable resource references via getter callbacks so the helper can read the latest snapshot of
gpuBufferPool/monitor/ etc., and uses explicit setters to write the new dataset-scoped resources back.