Files
retroDE_ps2/docs/ch405_authentic_alpha_fans_prefit.md
T
thejayman77 ba74bbd5aa 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>
2026-07-20 19:56:46 -04:00

53 lines
2.5 KiB
Markdown

# Ch405 — authentic alpha-fan overlays (pre-fit gate)
## Objective
Add the 53 chronological PSMT8 alpha-fan draws at capture indices 196494
through 198058 after the accepted 75-epoch Ch404 opaque composite. These are
large translucent overlays using authentic `ZTE=1`, `GEQUAL`, `ZMSK=1`, and
`PSMZ16S`: they test the accumulated depth buffer, blend on pass, and must not
modify Z.
## RTL change
- Carry architectural `TEST.ZTE` and `ZBUF.ZMSK` alongside each perspective
fragment through `gs_stub` and `top_psmct32_raster_demo_bram` into the
existing external LPDDR Z/color ROP.
- Replace the de25 wrapper's former `ZTE=1/ZMSK=0` constants with those
sidebands.
- Increase the production async request FIFO from 4,096 to 16,384 entries.
The alpha writer preserves exact destination order and can be slower than
the unthrottled raster producer, so the fixture bounds each epoch to one
triangle. Measured worst-triangle occupancy is 12,953 entries, leaving
3,431 entries of observed headroom.
## Fixture
- `zsrt139c3`: 212 one-triangle alpha epochs, preserving all 212 triangles
expanded from the 53 authentic fan draws.
- `zsrt139c4`: Ch403 base + Ch404 detail tail + Ch405 alpha tail, 287 epochs.
- Authentic TEST/ZBUF header words are restored in the accepted base fixtures;
their geometry, colors, textures, palettes, and record counts are unchanged.
- Host/testbench epoch ceilings rise from 128 to 512.
## Pre-fit evidence
- The unbounded three-epoch diagnostic correctly failed closed at epoch 75:
169,213 request drops and FIFO high-water 4,096/4,096. It is retained only
as the measurement that justified bounded bursts.
- Worst-tail three-epoch test (empty Z): 43,680 fed/passed, zero drops,
high-water 12,953/16,384, exact color and Z, PASS.
- Checkerboard-Z test: 43,680 fed, 21,839 passed, zero drops, high-water
11,389/16,384, exact color, exact unchanged Z at all 307,200 pixels, PASS.
- Full Ch404 baseline replay with authentic headers reached its exact accepted
epoch-74 counts (667,279 fed / 351,074 passed) with zero drops before the
intentionally unbounded diagnostic alpha epoch.
- Host runner compiles cleanly; generated production assets total about 174 MiB.
## Status
Ready for owner Quartus 26.1 GUI compile. Do not deploy the prior
`28659ebf...` RBF as Ch405; the new RBF must contain the 16K request FIFO and
TEST/ZMSK sidebands. After a timing/resource-clean fit, deploy and run
`zsrt139c4`, then compare the board framebuffer byte-for-byte with RTL.