You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
t27f token_floor: expose only the pixels a splat visited; the empty scene's bytes and row factors are computed once #10407
After the per-frame row index (PR #10402), most of a token_floor frame goes to work that does not depend on the frame. For every pixel of every frame the raster builds the empty scene's light (back_light times the tint), and then exposes it (quantize(expose(...)), three exp calls a pixel). It does this whether or not a splat reached the pixel. The empty scene is the same in all 450 frames, and so are the key, glint and fade factors of each row. That comes to about 2.8 billion exp calls a reel, almost all of them on pixels no splat touches.
The fix: compute the empty scene's bytes and the row factors once. In each row, mark the pixels a splat visits, give each the empty scene's light on its first visit, and expose only those pixels. Every other pixel is copied from the cached bytes. A visit that adds nothing leaves the light unchanged, so a marked pixel writes the same byte the cache holds. Splat order and every float sum stay as they are, so the frames stay byte-identical.
Given the 48-shard render, when each shard renders its 9 or 10 frames, then each of those frames pays the same full-frame exposure.
Requirements
FR-001: The spec MUST compute the empty scene's bytes and the per-row key, glint and fade factors once per process, not once per frame.
FR-002: The raster MUST expose only the pixels that a splat visited in the row and MUST copy every other pixel from the cached bytes.
FR-003: The splat order and the operand order of every float sum MUST stay unchanged, so that the frames are byte-identical.
FR-004: The new pure helpers (row_key, row_glint, row_fade, light_byte) MUST have tests that assert exact values, including bytes read off frame 0 of the reel.
Success Criteria
Frames sha256 is unchanged, 7e0c6662ddbf84a0a424c0aa119420eb34f90b0decec6e0c05753b2d37391e07, for one process and for 48 shards (TF_SHARD/TF_SHARDS) concatenated: 0 differing bytes.
One-process render time is measured before and after on the lab, with the same build flags (-O ReleaseSafe -lc).
t27c test-report specs/t27f/token_floor.t27: every test passes, with 0 vacuous tests.
The spec is resealed in .trinity/seals/t27f_token_floor.json.
Activity
t27f token_floor: expose only the pixels a splat visited; the empty s…
t27f token_floor: expose only the pixels a splat visited; the empty s…
t27f token_floor: PBR gold balls, a story of shots with spec cards, t…