Files
builds/.agents/handoffs/forge-windows-g2-4fde0e94.md
T

2.5 KiB
Raw Blame History

Forge (Windows) — rebuild engine main at 4fde0e94 (G2 pooled GPU cull + static shadow fixes)

Mac engine/macos-arm64 is engine 4fde0e94 (2026-10-18, 4.7.2.stable.mono.custom_build.4fde0e94d). Windows is 9dcc5d458. The game pins 4.7.2@4fde0e94d (owner's call: publish Mac-only while Windows sleeps), and shaders/tree_wind.gdshader uses the new STATIC_SHADOW_AT_REST built-in, so a 9dcc5d45 engine both hits the mismatch dialog and fails that shader. Rebuild before anything else on Windows.

Build

tinqs pull the engine and git checkout 4fde0e94 (later main commits may be docs or G4 work; build the pinned hash). Flags from the windows-x64 manifest block. Regenerate GodotSharp from that binary (--generate-mono-glue modules/mono/glue, build_assemblies.py --godot-output-dir=bin --godot-platform=windows) and publish the WHOLE bin/GodotSharp (Api/ and Tools/).

New since 9dcc5d45 (not compiled on Windows yet)

  • G2 pooled GPU cull: servers/rendering/gpu_cull_arena.h, renderer_rd/shaders/effects/multimesh_cull.glsl, renderer_rd/effects/multimesh_cull.*, storage_rd/mesh_storage.*, forward_clustered/render_forward_clustered.cpp. Three shared storage arenas (each < 512 MiB, the D3D12 raw-buffer limit); no buffer device address. Switch rendering/occlusion_culling/gpu_cull_pooled / RenderingServer.multimesh_gpu_cull_set_pooled, default off.
  • Fixed shadow LOD band for gpu-culled MultiMeshes (gpu_cull_shadow_fixed_band, multimesh_set_gpu_shadow_band), default off.
  • STATIC_SHADOW_AT_REST shader built-in, true only in static shadow tile passes when rendering/lights_and_shadows/directional_shadow/static_casters_at_rest is on; default off.

Checks

  1. Oracle bash tests/gpu_oracle/multimesh_cull_pool/run.sh <exe> d3d12 (Mac Metal: 4524/4524). This gates making pool the default. Also re-run tests/gpu_oracle/draw_indirect_count/run.sh <exe> d3d12 (expect 22/2 as before).
  2. Game in-world on the new pair: tree_wind compiles (no Unknown identifier STATIC_SHADOW_AT_REST). env gpucull status; then the G0/G1 profile (.agents/handoffs/2026-10-18-windows-g0-render-thread-profile.md in ariki-game) with states "pool off=gpucull:pool off" "pool on=gpucull:pool on". Mac result: cull dispatches 258/422/464 → 2, fps +1/0/+1, render CPU −0.3 ms at the village; Windows records those dispatches on its render thread, so expect a larger gain there. Report the table.
  3. Publish windows-x64 here (binary + console binary + complete GodotSharp, sha256s, manifest note, CRLF), push.