# 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.
