Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Module profiling/load-timeline

    Load timeline — wall-clock milestones of one scene load.

    The viewer had no time-to-first-paint or time-to-full-load stamp anywhere: the only timeline was the console log, and __luxarDebug.getState() is installed only after the dataset load AND the blend warm-up settle (up to 5 s after first paint), so probes that wait for it under-observe the load. This module records the milestones as performance.mark() entries (visible in the DevTools Performance panel and via performance.getEntriesByType) and mirrors them into a small in-memory snapshot that costs nothing to read.

    Milestones are recorded ONCE per load: markLoad('loadStart') resets the timeline, and a repeated milestone name within the same load is ignored so a retry path cannot overwrite the first observation. Per-geometry first commits use markFirstCommit(kind); refinement passes are counted rather than marked (a 4-D scene with 16 nodes produces hundreds of passes).

    Everything here is best-effort: a runtime without performance.mark (jsdom, an old WebView) still gets the in-memory snapshot, and nothing throws into the load path.

    LoadMark
    RefinementCounters
    LoadTimelineSnapshot
    LoadGeometryKind
    LoadMilestone
    markLoad
    markFirstCommit
    noteRefinementPass
    noteRefinementDensityDeferral
    noteRefinementStarted
    noteRefinementAborted
    noteRefinementComplete
    resetLoadTimeline
    getLoadTimeline