Context
Follow-up from shader playback audit (PR #268). Circular hybrid shaders like patternv0.46.wgsl page rows with floor(playhead / numRows) * numRows. The WebGL overlay was fixed to fetch cell data from the current page instead of always rows 0..N-1.
This needs a visual regression check to confirm caps stay aligned with the WebGPU grid during playback and seek.
Test steps
- Start dev/preview server
- Select
patternv0.46.wgsl (WebGPU + hybrid overlay)
- Load a module with >64 rows (e.g.
4-mat_-_space_debris.mod)
- Play past row 64, or seek to rows 64, 80, 96
- Confirm frosted LED caps sit on the same cells as the WGSL grid (no offset/slide)
Automated option
npm run dev -- --host 0.0.0.0 --port 5173
npm run capture:trigger-tail # or extend audit script for v0.46 paging
Capture screenshots at rows 0, 32, 64, 96 and compare overlay alignment.
Acceptance criteria
Related
Context
Follow-up from shader playback audit (PR #268). Circular hybrid shaders like
patternv0.46.wgslpage rows withfloor(playhead / numRows) * numRows. The WebGL overlay was fixed to fetch cell data from the current page instead of always rows0..N-1.This needs a visual regression check to confirm caps stay aligned with the WebGPU grid during playback and seek.
Test steps
patternv0.46.wgsl(WebGPU + hybrid overlay)4-mat_-_space_debris.mod)Automated option
npm run dev -- --host 0.0.0.0 --port 5173 npm run capture:trigger-tail # or extend audit script for v0.46 pagingCapture screenshots at rows 0, 32, 64, 96 and compare overlay alignment.
Acceptance criteria
Related
scripts/audit-shader-modes.mjs