The mean — rather than the largest rung — because a loader may no longer HOLD
its individual rungs: since #2427 the Lines loader folds its parts into one
cumulative payload and drops them, so per-rung sizes are simply not
recoverable, and any estimator that needed them would silently read the
merged blob as "one enormous rung" and stop refinement several rungs early.
Total-over-count survives the fold because both inputs do.
It is exact for an equal-count ladder and an under-estimate for a stream:C
geometric one (whose next rung is about the size of everything before it) —
which is the direction planRefinementAdmission documents as the safe
one. Zero rungs estimates zero: a node that has loaded nothing must never be
refused its first rung, or a scene already over budget would never paint at
all.
Estimate the next rung from the mean rung so far.
The mean — rather than the largest rung — because a loader may no longer HOLD its individual rungs: since #2427 the Lines loader folds its parts into one cumulative payload and drops them, so per-rung sizes are simply not recoverable, and any estimator that needed them would silently read the merged blob as "one enormous rung" and stop refinement several rungs early. Total-over-count survives the fold because both inputs do.
It is exact for an equal-count ladder and an under-estimate for a
stream:Cgeometric one (whose next rung is about the size of everything before it) — which is the direction planRefinementAdmission documents as the safe one. Zero rungs estimates zero: a node that has loaded nothing must never be refused its first rung, or a scene already over budget would never paint at all.