CPU-side frame-delta fallback for when the 'timestamp-query' adapter
feature is unavailable (see decideTimingMode in frame-timing.ts).
This measures a DIFFERENT thing than GPU timestamp queries: the wall-clock
gap between successive tick() calls on the CPU, which includes JS work,
any main-thread contention, and the browser's own frame pacing — not just
GPU pass execution. It is reported through the same TimingMode === 'cpu-fallback' label everywhere (see frame-timing.ts's TimingMode
doc) specifically so it is never mistaken for a gpu-queries number.
Thin on purpose: the only thing here that touches a clock is tick().
The accumulated deltas are plain numbers fed straight into
computeDurationStats (frame-timing-stats.ts), the same pure statistics
GPU-queries mode uses.
CPU-side frame-delta fallback for when the
'timestamp-query'adapter feature is unavailable (seedecideTimingModeinframe-timing.ts).This measures a DIFFERENT thing than GPU timestamp queries: the wall-clock gap between successive
tick()calls on the CPU, which includes JS work, any main-thread contention, and the browser's own frame pacing — not just GPU pass execution. It is reported through the sameTimingMode === 'cpu-fallback'label everywhere (seeframe-timing.ts'sTimingModedoc) specifically so it is never mistaken for agpu-queriesnumber.Thin on purpose: the only thing here that touches a clock is
tick(). The accumulated deltas are plain numbers fed straight intocomputeDurationStats(frame-timing-stats.ts), the same pure statistics GPU-queries mode uses.