engine(macos-arm64): publish 4fde0e94 - G2 pooled GPU cull, fixed shadow band, STATIC_SHADOW_AT_REST; GodotSharp regenerated; Forge handoff for Windows

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NCXU49xtHLSry4TQEzVN2m
This commit is contained in:
ozanandClaude Opus 5.5 committed 2026-10-18 04:56:22 +01:00
1 parent bdb2dc8ca8
commit 76f088e6a0
36 files changed
+116 -85

No files matched your search

@@ -0,0 +1,31 @@
# 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.
+3 -3
View File
@@ -31,10 +31,10 @@ into GodotSharp, so GodotSharp had to be regenerated — and must ship here alon
| Platform | Engine | Terrain3D | GodotSharp shipped? |
|---|---|---|---|
| `engine/macos-arm64/` | **4.7.2** (`9dcc5d45`) — screen-space contact shadows (directional), hero shadow min-combine, cascade caster-culling + shadow-bias fixes from upstream 4.8, `draw_list_draw_indirect_count` (Metal), on top of everything `7fb81364` had | built-in module | ✅ yes (`GodotSharp/`) |
| `engine/windows-x64/` | **4.7.2** (`9dcc5d45`) — same hash as macos-arm64: screen-space contact shadows (directional), hero shadow min-combine, cascade caster-culling + shadow-bias fixes from upstream 4.8, `draw_list_draw_indirect_count` (D3D12), on top of everything `7fb81364` had; `template_release` here is still the `1e7be28b` tree | built-in module | ✅ yes (`GodotSharp/`) |
| `engine/macos-arm64/` | **4.7.2** (`4fde0e94`) — G2 pooled GPU cull (one reset + one cull dispatch per camera render), fixed shadow LOD band and `STATIC_SHADOW_AT_REST` for static shadow tiles (all default off), on top of everything `9dcc5d45` had | built-in module | ✅ yes (`GodotSharp/`) |
| `engine/windows-x64/` | **4.7.2** (`9dcc5d45`) — one commit behind macos-arm64 (pin is 4fde0e94d, rebuild pending): screen-space contact shadows (directional), hero shadow min-combine, cascade caster-culling + shadow-bias fixes from upstream 4.8, `draw_list_draw_indirect_count` (D3D12), on top of everything `7fb81364` had; `template_release` here is still the `1e7be28b` tree | built-in module | ✅ yes (`GodotSharp/`) |
Mac is engine `9dcc5d45` as of 2026-10-18 (`--version` prints `4.7.2.stable.mono.custom_build.9dcc5d458`): screen-space contact shadows for directional lights (default off; game dial `env contactshadow`), hero shadow min-combine, upstream 4.8 shadow fixes #121775 (cascade caster culling) and #124348 (blur < 1 no longer shrinks the bias; the game sun bias is 0.014 with it), and `draw_list_draw_indirect_count` with Metal emulation. GodotSharp regenerated (API + Tools). Windows is also engine `9dcc5d45` as of 2026-10-18 — Forge rebuilt at `9dcc5d458f` so both platforms and the `4.7.2@9dcc5d458` pin share one hash. Oracle `draw_indirect_count` on D3D12 (RTX 5080): 22 passed, 2 failed — the base-instance pair, the documented D3D12 gap (`.agents/handoffs/forge-windows-sscs-9dcc5d45.md`); `--gpu-validation` needs the D3D12 debug layer, which Forge lacks (Graphics Tools not installed). In-world checks (`herocombine`, `contactshadow`, SSCS in `--gpu-profile`, sun acne at bias 0.014) still owed on Windows.
Mac is engine `4fde0e94` as of 2026-10-18 (`--version` prints `4.7.2.stable.mono.custom_build.4fde0e94d`): G2 pooled GPU cull over shared storage arenas (`rendering/occlusion_culling/gpu_cull_pooled`, game dial `env gpucull pool`), a fixed shadow LOD band for gpu-culled MultiMeshes (`gpu_cull_shadow_fixed_band`, `env gpucull shadowband`) and the `STATIC_SHADOW_AT_REST` shader built-in (`static_casters_at_rest`, `env gpucull staticrest`); all default off. GodotSharp regenerated (API + Tools). Oracles on Metal: `multimesh_cull_pool` 4524/4524, `draw_indirect_count` 24/24. The game pins `4.7.2@4fde0e94d` (its `tree_wind.gdshader` uses the new built-in), so Windows is locked out until Forge rebuilds 4fde0e94 (`.agents/handoffs/forge-windows-g2-4fde0e94.md`). Windows is engine `9dcc5d45`: Forge rebuilt at `9dcc5d458f` so both platforms and the `4.7.2@9dcc5d458` pin share one hash. Oracle `draw_indirect_count` on D3D12 (RTX 5080): 22 passed, 2 failed — the base-instance pair, the documented D3D12 gap (`.agents/handoffs/forge-windows-sscs-9dcc5d45.md`); `--gpu-validation` needs the D3D12 debug layer, which Forge lacks (Graphics Tools not installed). In-world checks (`herocombine`, `contactshadow`, SSCS in `--gpu-profile`, sun acne at bias 0.014) still owed on Windows.
Long-term: CI (Gitea Actions) builds on push and publishes here / to S3 —
`docs/ai/plans/build-pipeline-architecture-2026-06-07.md`.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+35 -35
View File
@@ -1,35 +1,35 @@
{
"_install": "Use the update-engine skill in the GAME repo (tinqs/ariki-game .agents/skills/update-engine) \u2014 everyone has ariki-game; nobody but Ozan has the engine source. It tinqs-pulls ariki-game + builds, installs the binary AND GodotSharp together into ../engine/bin, and clears stale caches. GodotSharp ships WITH the binary (matched pair); the engine does NOT regenerate it.",
"engine": {
"macos-arm64": {
"binary": "engine/macos-arm64/tinqs.macos.editor.arm64.mono",
"godotsharp": "engine/macos-arm64/GodotSharp",
"version": "4.7.2.stable.mono.custom_build.9dcc5d458",
"engine_repo": "tinqs/engine",
"engine_commit": "9dcc5d45",
"sha256": "2da4c3a6dc363375033bc20fdb1604d5a0de896d580da76e39305c6aade2ef7f",
"target": "editor",
"built_on": "2026-10-18",
"built_by": "Ozan/Kraken via Claude (SSCS + hero shadow combine + shadow fixes + draw_indirect_count)",
"toolchain": "Xcode (Apple Silicon), SCons, VulkanSDK 1.4.350.0",
"scons_flags": "platform=macos target=editor arch=arm64 module_mono_enabled=yes vulkan_sdk_path=~/VulkanSDK/1.4.350.0/macOS",
"note": "Mac. Engine 9dcc5d45 = 7fb81364 + screen-space contact shadows for directional lights (backport of upstream 4.8 #118045/#123814; ProjectSettings rendering/lights_and_shadows/contact_shadow/{enabled,shadow_length,surface_thickness}, Light3D.shadow_contact_shadows_allow/blur, RenderingServer.light_set_allow_contact_shadows; default off, game dial env contactshadow; ~0.43 ms on M1 Max), hero shadow min-combine (RenderingServer.instance_light_directional_set_hero_shadow_spot), tight cascade caster culling on the real cascade frustum (#121775), shadow bias no longer shrunk by blur < 1 (#124348; the game retunes the sun ShadowBias 0.04 -> 0.014 with the pin), RenderingDevice.draw_list_draw_indirect_count (Metal emulation; oracle 24/24 on M1 Max). GodotSharp regenerated from this binary (API + Tools). Smoke: the owner's game in-world, horizon + static prefill OK, hero combine on, contact shadows on/off, ~72 fps, no new error types. windows-x64 is STILL 7fb81364b: Forge must rebuild from engine main (handoff .agents/handoffs/forge-windows-sscs-9dcc5d45.md). The game pin is 4.7.2@9dcc5d458, so Windows engines are refused until that publish (owner's call, 2026-10-18)."
},
"windows-x64": {
"binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.exe",
"console_binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.console.exe",
"godotsharp": "engine/windows-x64/GodotSharp",
"version": "4.7.2.stable.mono.custom_build.9dcc5d458",
"engine_repo": "tinqs/engine",
"engine_commit": "9dcc5d458f",
"sha256": "46bfbfd6bcb18e9a5925b9a6ce10aca9254859927e14fde40657e87d29eb916d",
"sha256_console": "83be146902fa35784084a247eee1afbc30eac0c603cd0e7b24c4bd42d1b3b5ad",
"target": "editor",
"built_on": "2026-10-18",
"built_by": "Ozan/Forge via ZCode (forge-windows-sscs-9dcc5d45 handoff)",
"toolchain": "MSVC 14.3 (VS2022 Build Tools), Windows SDK 10.0.26100, SCons 4.10.1, .NET SDK 10.0.103",
"scons_flags": "platform=windows target=editor module_mono_enabled=yes -j32",
"note": "Windows carries 9dcc5d458 — SAME hash as macos-arm64 (built at 9dcc5d458f, the docs-only commits 91b11b70/a77eb1781 excluded so both platforms and the 4.7.2@9dcc5d458 pin share one hash): screen-space contact shadows for directional lights (SSCS, default off, env contactshadow dial), hero shadow min-combine (instance_light_directional_set_hero_shadow_spot), tight cascade caster culling on the real cascade frustum (#121775), shadow bias no longer shrunk by blur < 1 (#124348; game sun ShadowBias 0.014 applies with this pin), RenderingDevice.draw_list_draw_indirect_count (D3D12 native path). GodotSharp regenerated from this binary — Api AND Tools (InstanceLightDirectionalSetHeroShadowSpot + DrawListDrawIndirectCount present). Checks: headless game boot clean (0 binding errors); oracle draw_indirect_count on D3D12 (RTX 5080): 22 passed, 2 failed — the 2 base-instance cases are the documented D3D12 gap (shaders do not see base instance there yet; expected-fail per draw-indirect-count.md). WITH --gpu-validation the D3D12 run could not start (debug layer not installed on Forge — Graphics Tools owed); validation-layer cleanliness still to verify. In-world checks (herocombine, contactshadow, SSCS in --gpu-profile, sun acne with bias 0.014) still owed on Windows. Editor target only — template_release in this folder is still the 1e7be28b tree. D3D12 Agility DLLs (D3D12Core.dll, d3d12SDKLayers.dll) are NOT shipped — the game runs Vulkan, same decision as 2026-10-05. Crash-report checklist (8 steps) also still owed on Windows."
}
}
}
{
"_install": "Use the update-engine skill in the GAME repo (tinqs/ariki-game .agents/skills/update-engine) \u2014 everyone has ariki-game; nobody but Ozan has the engine source. It tinqs-pulls ariki-game + builds, installs the binary AND GodotSharp together into ../engine/bin, and clears stale caches. GodotSharp ships WITH the binary (matched pair); the engine does NOT regenerate it.",
"engine": {
"macos-arm64": {
"binary": "engine/macos-arm64/tinqs.macos.editor.arm64.mono",
"godotsharp": "engine/macos-arm64/GodotSharp",
"version": "4.7.2.stable.mono.custom_build.4fde0e94d",
"engine_repo": "tinqs/engine",
"engine_commit": "4fde0e94",
"sha256": "a37ceb6d8aa5772f50c61cad12ee738881b9d060df00d9f392ae40b2437d8e54",
"target": "editor",
"built_on": "2026-10-18",
"built_by": "Ozan/Kraken via Claude (G2 pooled GPU cull + static shadow fixed band / casters at rest)",
"toolchain": "Xcode (Apple Silicon), SCons, VulkanSDK 1.4.350.0",
"scons_flags": "platform=macos target=editor arch=arm64 module_mono_enabled=yes vulkan_sdk_path=~/VulkanSDK/1.4.350.0/macOS",
"note": "Mac. Engine 4fde0e94 = 9dcc5d45 + G2 pooled GPU cull (one reset + one cull dispatch per camera render over shared arenas; rendering/occlusion_culling/gpu_cull_pooled, default off) + fixed shadow LOD band for gpu-culled MultiMeshes (gpu_cull_shadow_fixed_band, default off) + STATIC_SHADOW_AT_REST shader built-in for static shadow tiles (rendering/lights_and_shadows/directional_shadow/static_casters_at_rest, default off). GodotSharp regenerated (with Tools/). Oracles: multimesh_cull_pool 4524/4524, draw_indirect_count 24/24 on Metal. Windows at 9dcc5d45; Forge to rebuild 4fde0e94 (handoff forge-windows-g2-4fde0e94.md)."
},
"windows-x64": {
"binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.exe",
"console_binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.console.exe",
"godotsharp": "engine/windows-x64/GodotSharp",
"version": "4.7.2.stable.mono.custom_build.9dcc5d458",
"engine_repo": "tinqs/engine",
"engine_commit": "9dcc5d458f",
"sha256": "46bfbfd6bcb18e9a5925b9a6ce10aca9254859927e14fde40657e87d29eb916d",
"sha256_console": "83be146902fa35784084a247eee1afbc30eac0c603cd0e7b24c4bd42d1b3b5ad",
"target": "editor",
"built_on": "2026-10-18",
"built_by": "Ozan/Forge via ZCode (forge-windows-sscs-9dcc5d45 handoff)",
"toolchain": "MSVC 14.3 (VS2022 Build Tools), Windows SDK 10.0.26100, SCons 4.10.1, .NET SDK 10.0.103",
"scons_flags": "platform=windows target=editor module_mono_enabled=yes -j32",
"note": "Windows carries 9dcc5d458 \u2014 SAME hash as macos-arm64 (built at 9dcc5d458f, the docs-only commits 91b11b70/a77eb1781 excluded so both platforms and the 4.7.2@9dcc5d458 pin share one hash): screen-space contact shadows for directional lights (SSCS, default off, env contactshadow dial), hero shadow min-combine (instance_light_directional_set_hero_shadow_spot), tight cascade caster culling on the real cascade frustum (#121775), shadow bias no longer shrunk by blur < 1 (#124348; game sun ShadowBias 0.014 applies with this pin), RenderingDevice.draw_list_draw_indirect_count (D3D12 native path). GodotSharp regenerated from this binary \u2014 Api AND Tools (InstanceLightDirectionalSetHeroShadowSpot + DrawListDrawIndirectCount present). Checks: headless game boot clean (0 binding errors); oracle draw_indirect_count on D3D12 (RTX 5080): 22 passed, 2 failed \u2014 the 2 base-instance cases are the documented D3D12 gap (shaders do not see base instance there yet; expected-fail per draw-indirect-count.md). WITH --gpu-validation the D3D12 run could not start (debug layer not installed on Forge \u2014 Graphics Tools owed); validation-layer cleanliness still to verify. In-world checks (herocombine, contactshadow, SSCS in --gpu-profile, sun acne with bias 0.014) still owed on Windows. Editor target only \u2014 template_release in this folder is still the 1e7be28b tree. D3D12 Agility DLLs (D3D12Core.dll, d3d12SDKLayers.dll) are NOT shipped \u2014 the game runs Vulkan, same decision as 2026-10-05. Crash-report checklist (8 steps) also still owed on Windows."
}
}
}