Snapshot: fog implementation + fidelity tooling baseline (pre bilinear-clamp fix)

Per-vertex GS fog end-to-end (gs_stub emit incl. persp_emit5, gs_prim_list_feeder
XYZ2->XYZF2 on PRIM.FGE, gs_make_sh3_scheduler_fixture.py F/FGE packing), new fog
TBs, fidelity attribution tooling. Functional baseline before removing the dead
bilinear lerp8 clamps (Codex: 161-node comb loop -> -0.042ns setup fail).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-20 19:56:46 -04:00
parent ec82764bef
commit ba74bbd5aa
476 changed files with 696247 additions and 130119 deletions
@@ -0,0 +1,32 @@
# Ch401 — fuller 56-draw static frame
Ch401 retains the accepted Ch400 chronological base, one correctly paired ABE
draw, two later-scene anchors, and the proven 24-draw central cluster. The
result is 56 authentic draws in 28 bounded epochs, within the existing 32-epoch
host/testbench limit.
## Simulation
- 638,022 fragments fed
- 321,817 fragments passed Z
- 28 ordered drains
- zero request drops, color FIFO overflows, or AXI BRESP errors
- Z mismatches: 0 / 307,200
- color mismatches: 0 / 128,998
## Silicon
No RTL changed after the accepted Ch400 RBF. The 28-epoch board run passed all
texture CRC, runtime palette, staging, record-count, drain, and zero-drop gates
and returned `rc=0`.
- nonzero pixels: 128,998
- bounds: `(36,10)..(599,399)`
- board/simulation MEM SHA-256:
`0383cc739aa8e9b921489a3fc1ffca7ab2a48763cb57028d4a90e3ae9a34142f`
- board/simulation PNG SHA-256:
`a4806d0ba39fcea1b904375f715d11f7a81d1364c78f201f40c1bb5906ac008b`
Board and simulation are byte-exact over all 307,200 framebuffer words.
Ch401 is accepted on silicon and remains displayed through the LPDDR HDMI
scanout.