From 017badfc4d3ccb324dacc2a4c40cd2b441e4dd04 Mon Sep 17 00:00:00 2001 From: Ozan Bozkurt Date: Mon, 19 Oct 2026 02:31:13 +0100 Subject: [PATCH] handoff(forge): add GPU HZB occlusion A/B (gpucull hzb off/on) to the parallel replay run Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_018hSLRwirUk2NF4j1v2kH4Z --- .../handoffs/forge-windows-parallel-replay.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.agents/handoffs/forge-windows-parallel-replay.md b/.agents/handoffs/forge-windows-parallel-replay.md index 8819db6..15dce34 100644 --- a/.agents/handoffs/forge-windows-parallel-replay.md +++ b/.agents/handoffs/forge-windows-parallel-replay.md @@ -46,6 +46,21 @@ Also: `curl -s -X POST 127.0.0.1:4328/command -d '{"command":"occlusion","value" (5 `/perf` reads each) — the 1.2–1.3 ms "Update Occlusion Buffer" label decides whether CPU occlusion culling earns its cost now that vegetation is GPU-culled. +Also, after the run above (it can be its own run if the first one has already started), GPU depth-pyramid +occlusion for the gpu-culled vegetation (`rendering/occlusion_culling/gpu_hzb`, default off). It costs the render +thread nothing. On the Mac it cut kept plants by 16 % and GPU time by ~2 ms; it has never been measured on Windows: + +```bash +OUT=.game-cli/hzb-windows-$(date +%Y%m%d-%H%M) +ARIKI_API=http://127.0.0.1:4328 python tools/render_thread_profile.py --log "$LOG" \ + --poses tools/render_thread_poses.json --out "$OUT" --blocks 8 \ + --states "hzb off=gpucull:hzb off" "hzb on=gpucull:hzb on" \ + --restore "gpucull:hzb off" +``` + +Eye check with `hzb on`: turn the camera fast past a hill and a house. Plants must not pop in a frame late or +vanish while visible. + Report per pose and state: frame ms, `_draw` wall, `end_frame`, render-CPU labels, fps p25, `/perf gpucullCounters.parallelReplay` (lists / chunks), pixel diff vs the A/A floor, and the full `results.json`. @@ -60,3 +75,5 @@ at the same spot. Default flips on (`rendering/rendering_device/parallel_draw_replay/enabled=true` in the game's `project.godot`, then publish + pin) only if: oracle clean, soak clean, and frame time / `end_frame` drop at all 3 poses. +`gpu_hzb` flips on (game `project.godot`) if frame time and render-GPU ms do not rise at any pose and the eye check +is clean.