Merge remote-tracking branch 'origin/main'
# Conflicts: # README.md # manifest.json
This commit is contained in:
commit
26cc48e674
36 files changed
+89
-58
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.
|
||||
@@ -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** (`4fde0e94d`) — everything `9dcc5d45` had **plus G2 pooled cull** (one reset + one cull dispatch per camera render, `gpu_cull_pooled` default off, fixed shadow band, STATIC_SHADOW_AT_REST); `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** (`4fde0e94d`) — same hash as macos-arm64: everything `9dcc5d45` had plus G2 pooled cull (`gpu_cull_pooled` default off), fixed shadow band, `STATIC_SHADOW_AT_REST` (tree_wind needs it); `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 one commit ahead: `4fde0e94d` (G2 pooled cull)** as of 2026-10-18 — Forge built engine main first; the game pin is version-only `4.7.2` until the Mac publishes `4fde0e94d` (then pin `4.7.2@4fde0e94d`). Windows oracle notes: `draw_indirect_count` on D3D12 at `9dcc5d458` was 22 passed / 2 failed (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); `multimesh_cull_pool` oracle not yet run on Windows. In-world checks (`herocombine`, `contactshadow`, SSCS in `--gpu-profile`, sun acne at bias 0.014, pooled gpucull census) 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. Windows is also engine `4fde0e94` as of 2026-10-18 — Forge built it in parallel with the Mac (`.agents/handoffs/forge-windows-g2-4fde0e94.md`), so both platforms and the `4.7.2@4fde0e94d` pin (the game's `tree_wind.gdshader` uses the new built-in) share one hash. Underneath is the `9dcc5d458` pair (SSCS contact shadows, hero shadow min-combine, upstream 4.8 shadow fixes #121775/#124348 with the game sun bias 0.014, `draw_list_draw_indirect_count`), where the D3D12 oracle on RTX 5080 was 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). Still owed on Windows: `multimesh_cull_pool` oracle (gates making pool the default), the validation pass, and in-world checks (`herocombine`, `contactshadow`, SSCS in `--gpu-profile`, sun acne at bias 0.014, pooled gpucull census).
|
||||
|
||||
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.
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.
+8
-8
@@ -4,16 +4,16 @@
|
||||
"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",
|
||||
"version": "4.7.2.stable.mono.custom_build.4fde0e94d",
|
||||
"engine_repo": "tinqs/engine",
|
||||
"engine_commit": "9dcc5d45",
|
||||
"sha256": "2da4c3a6dc363375033bc20fdb1604d5a0de896d580da76e39305c6aade2ef7f",
|
||||
"engine_commit": "4fde0e94",
|
||||
"sha256": "a37ceb6d8aa5772f50c61cad12ee738881b9d060df00d9f392ae40b2437d8e54",
|
||||
"target": "editor",
|
||||
"built_on": "2026-10-18",
|
||||
"built_by": "Ozan/Kraken via Claude (SSCS + hero shadow combine + shadow fixes + draw_indirect_count)",
|
||||
"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 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)."
|
||||
"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",
|
||||
@@ -26,10 +26,10 @@
|
||||
"sha256_console": "192aba5d6028fbf781fc0c41ff1cfc4bd5b51a3d84f99262b07bf6d61d9981ce",
|
||||
"target": "editor",
|
||||
"built_on": "2026-10-18",
|
||||
"built_by": "Ozan/Forge via ZCode (G2 pooled cull, first publisher — no Forge handoff written for this one)",
|
||||
"built_by": "Ozan/Forge via ZCode (forge-windows-g2-4fde0e94 handoff; built in parallel with the Mac)",
|
||||
"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 4fde0e94d — engine main = 9dcc5d45 (SSCS + hero combine + shadow fixes + draw_indirect_count, see that pair) PLUS 4fde0e94d7 G2 pooled cull: one reset + one cull dispatch per camera render over shared arenas (multimesh_gpu_cull_set_pooled / project setting rendering/occlusion_culling/gpu_cull_pooled, DEFAULT OFF), fixed shadow band (multimesh_gpu_cull_set_shadow_fixed_band, multimesh_set_gpu_shadow_band), STATIC_SHADOW_AT_REST spatial built-in, multimesh_get_cull_command_offset; either shadow switch re-renders every static tile. Validated on M1 Max Metal pre-push (doctests 7/7, multimesh_cull_pool oracle 4524/4524, draw_indirect_count 24/24, StaticShadow 21/21). GodotSharp regenerated from this binary — Api AND Tools (MultimeshGpuCullSetPooled + MultimeshGpuCullSetShadowFixedBand + MultimeshSetGpuShadowBand present). Headless game boot clean (0 binding errors). Windows oracle for multimesh_cull_pool NOT yet run (D3D12 base-instance gap may bite the pooled draws — owed). Game pin set to version-only 4.7.2: macos-arm64 is still 9dcc5d45 — when Kraken publishes 4fde0e94d, pin 4.7.2@4fde0e94d. In-world gpucull checks (pooled on/off, census via multimesh_get_cull_command_offset, shadow band) still owed on Windows. Editor target only — template_release still 1e7be28b. D3D12 Agility DLLs not shipped (Vulkan game). Crash-report checklist (8 steps) also still owed."
|
||||
"note": "Windows carries 4fde0e94d — SAME hash as macos-arm64 (built at 4fde0e94d7): engine main = 9dcc5d45 (SSCS + hero combine + shadow fixes + draw_indirect_count — for the 9dcc5d458 pair's Windows checks see its note in git history; oracle draw_indirect_count d3d12 was 22 passed / 2 failed, the base-instance pair being the documented D3D12 gap) PLUS 4fde0e94d7 G2 pooled cull: one reset + one cull dispatch per camera render over shared arenas (multimesh_gpu_cull_set_pooled / project setting rendering/occlusion_culling/gpu_cull_pooled, DEFAULT OFF), fixed shadow band (multimesh_gpu_cull_set_shadow_fixed_band, multimesh_set_gpu_shadow_band), STATIC_SHADOW_AT_REST spatial built-in (tree_wind.gdshader needs it), multimesh_get_cull_command_offset; either shadow switch re-renders every static tile. Validated on M1 Max Metal pre-push (doctests 7/7, multimesh_cull_pool oracle 4524/4524, draw_indirect_count 24/24, StaticShadow 21/21). GodotSharp regenerated from this binary — Api AND Tools (MultimeshGpuCullSetPooled + MultimeshGpuCullSetShadowFixedBand + MultimeshSetGpuShadowBand present). Headless game boot clean (0 binding errors). Owed on Windows: multimesh_cull_pool oracle (D3D12 base-instance gap may bite the pooled draws; gates making pool the default), --gpu-validation pass (D3D12 debug layer / Graphics Tools not installed on Forge), in-world gpucull census (multimesh_get_cull_command_offset) + pooled on/off, tree_wind compile check. Editor target only — template_release still 1e7be28b. D3D12 Agility DLLs not shipped (Vulkan game). Crash-report checklist (8 steps) also still owed."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user