Log t88 phase 2b: GPU lighting checks, profile, and the gate mistake

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-27 20:06:39 -04:00
co-authored by Claude Opus 5.5
parent 31e3005816
commit 65054e691b
+16
View File
@@ -4,6 +4,22 @@ What agents have done, newest first. Add an entry for every piece of work: the d
note or request it was for, what changed, the files touched, the tests run, and anything left
open or not verified. Keep each entry short; the git history has the details.
## 2026-10-27: t88 phase 2b, lighting on the GPU (Codex + Claude Code)
- `src/render/gpu/light.js`: light sources per light cell (transmittance, sky from `roofY`, heat,
bot lamp), propagation as a left/up then right/down relaxation on float textures (the same
light paths as the CPU sweep), then packing. The WebGPU path no longer calls `computeLight`;
the upload rectangle widens by the light margin. Fixed CPU light buffers keeping stale sizes
after a renderer switch. Scene `tools/scenes/t88-light.js` (lamp, opening, magma, fire).
- Checked: light scenes legacy vs WebGPU, ImageMagick MAE 16-27/65535 (<0.1/255), identical by
eye; `test/t_gpu.py` light parity in full and fast modes. Profile (factory, pixel): drawWorld at
zoom 2 24.55 (baseline) -> 9.98 (2a) -> 6.79 ms, CPU light 0, uploads now the biggest part
(4.87 ms); real loop zoom 2 CPU p50/p95 31.7/35.3 -> 10.25/11.48 ms, a steady 60 fps.
- Commit 31e3005 went in after a full-suite run where `t_gpu.py` timed out once (a 30 s page wait
under load): the commit sat after a heredoc, outside the test gate. The suite was re-run and
passed in full, and `t_gpu.py` passes alone. Codex hit its usage limit before the final
checks; Claude Code ran them.
## 2026-10-27: t88 phase 2a, WebGPU pixel look (Claude Code + Codex)
- New `src/render/gpu/` (device, textures, colour compute, glow blur, draw) renders the pixel look