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:
@@ -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.
|
||||
Reference in New Issue
Block a user