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
+44
View File
@@ -0,0 +1,44 @@
# Ch364 Audit Log - Mixed Texture Rebind And Residency
## Scope
- Native 640x480 persistent-Z composite of 28 ordered authentic SH3 draws.
- Four early single-draw texture/CLUT rebind epochs (`5328`, `11671`, `77112`, `89164`) followed by the 24-draw
`tbp=8192` cluster in eight 204-triangle feeder lists.
- Twelve epochs total: five upload/fill operations and seven consecutive, fail-closed verified reuses of the final
resident texture.
## Fixture Contract
- `gs_make_sh3_scheduler_fixture.py` now accepts `--group-sizes`, an explicit ordered epoch partition. Every
multi-draw group must have identical feeder-visible state and byte-identical texture/CLUT data; reuse is emitted
only when the immediately preceding descriptor leaves those same bytes resident.
- The selected partition is `1,1,1,1,3,3,3,3,3,3,3,3`. It passed authentic ordering, native bounds, state,
texture/CLUT, staging-capacity, and depth-state gates.
- The Ch364 BIOS and payload memory words hash identically to Ch363 MT5. The existing GUI-fitted RBF is therefore
provenance-valid; no RTL, QSF, SDC, GUI compile, or RBF reload was required.
## Simulation Proof
- Capture/residency: PASS. Five CRC-verified fills, seven verified reuses, 12 ordered fresh drains, no writer
overflow or scanout underflow, and exactly 38,400 scanout beats/frame.
- Texture oracle: ALL `105761/110544` (95.7%), MULTI `40756/42861` (95.1%), `clut_bad=0`.
- Real Z integration: PASS. 465,250 fragments fed, 214,897 persistent-Z updates, zero drops, 12 markers/drains,
exact Z `0/307200`, and exact color `0/110324`.
- Request FIFO high-water by epoch: `415,401,64,222,341,21,112,166,72,176,311,240`; all remain bounded below the
1024-entry production FIFO.
## Board Closure
- Board host gate: all five texture uploads passed CRC, all seven cache reuses verified the resident CRC, all 12
drains returned their expected records, and every epoch reported zero fragment drops.
- Final board framebuffer: 110,324 nonzero pixels, bounds `(36,10)..(568,399)`, sum `0x61884052`, xor `0x802cf68e`.
- Board and zint framebuffer SHA-256 match exactly:
`fdff2f34eac22ee140b64d8fac129627549bbb0f6db37d4b91807a9058e47a04`.
- Replay-color is exact: 465,250 fragments, 214,897 Z-pass updates, 110,324 covered pixels, no stray coverage, and
`307200/307200` exact framebuffer pixels.
## Result
Ch364 is closed on silicon: 28 authentic SH3 draws, five texture/CLUT bindings, seven verified residency reuses,
native 640x480 scanout, and persistent depth all agree with integration simulation and the independent replay oracle.