OptionalclipOutlier clip factor around the current estimate. Default 4.
OptionalfallEMA weight when a sample is slower than the estimate. Default 0.5.
OptionalfirstTarget duration of the first pass, ms. Default 200.
OptionalinitialPrior read rate before any observation, points/ms. Default 1000.
OptionalminFloor for the first pass so it is never empty. Default 50 000.
OptionalriseEMA weight when a sample is faster than the estimate. Default 0.1.
Progressive-refinement pacing for LOD streaming (#6869). Pure: callers pass in measured durations; nothing here reads a clock.
After a camera move the first pass should land quickly, so its point budget is sized to a time budget (default 200 ms) from a learned read rate (points decoded and uploaded per millisecond). The estimate is an asymmetric EMA: it drops fast when reads get slower (a congested network should shrink the next first pass at once) and rises slowly when they get faster (one cache-warm read must not inflate it). Each sample is first clipped to
[rate / clipRatio, rate * clipRatio], so a single outlier, a stall in a background tab or a near-zero duration, moves the estimate by a bounded step.