"bad" = pixels with any channel differing from the raster render by more
than 16/255. PS7's residual diffs are single-pixel hardstop boundary
columns and F16 interpolation precision (OKLCH) — the same encoding
tradeoff as Graphite's texture gradient path.
1. hardstop_gradients_many — 2..200 stops, one row per count
1000×2000; rows 65-100 (130-200 stops) hit the buffered colorizer
The garbled bottom half on main is the bug this CL fixes:
rows ≥ 65 push 130+ stops through the 256-texel bitmap colorizer, so
bilinear sampling turns the hardstop rows into moire mush. PS6 failure
mode: row 65 (130 stops) seeded the loopCount=8 cached effect; rows 66-100
reused it and clamp at stop index 130 — e.g. row 100 renders the
last color for all t ≥ 0.65. PS7 matches raster row for row.
This GM exists to exercise the GPU texture fallback with an exotic
interpolation space. main: fully smeared. PS6: crisp up to stop 130, wrong
beyond. PS7: maxDiff 30 vs raster (F16 precision).
3. gradient_many_stops — 100 evenly spaced stops
500×500
PS7 is pixel-clean vs raster (maxDiff 12, zero pixels above threshold).
4. gradients_alpha_many_stops — alpha ramp
100×100
Identical in all states (stop count below the analytic colorizer caps) —
included as a no-regression control.