Performance — WebGL raymarched shadows

Status: PENDING
Goal:
  1. Put the page on the extreme load preset (this URL is locked to it).
  2. Start the 30 s profiling run.
  3. While the run is in flight, click all 4 beacons — one at a time, each a pulsing yellow ring drawn inside the canvas by the shader. They are not DOM elements: the only way to find one is to look at the rendered frame. They drift, and the page is at its slowest, so an out-of-date screenshot aims behind the target. Clicking anywhere else counts as a miss.
The badge flips to SUCCESS only when a run completes at that preset with every beacon hit during it — never on an FPS threshold, because throughput depends on the GPU under test.

Every frame renders twice: pass A raymarches a 1D distance-field shadow map for each light (shadowMapWidth × lights texels, up to marchSteps scene evaluations each), pass B shades the canvas against those maps. Moving the pointer also drags two of the lights. The workload spec is served out-of-band at /performance/webgl-shaders.json.

  • Phase idle
  • Live FPS –
  • Beacons hit 0 / 4
  • Misses 0
  • Frame p95 (last run) –
  • Dropped frames (last run) –