engine(windows-x64): publish e64890fd3 — G4 mergeable-draw counter on the 4fde0e94 pair; GodotSharp regenerated (new enum); headless boot clean

This commit is contained in:
ozan committed 2026-10-18 22:00:20 +01:00
1 parent 004ca6d959
commit ddb10953c6
38 files changed
+67 -60

No files matched your search

@@ -13,3 +13,10 @@ Steps (same flags as the `windows-x64` manifest block, Vulkan only — no D3D12
2. `--generate-mono-glue` + `build_assemblies.py` (Api + Tools). 2. `--generate-mono-glue` + `build_assemblies.py` (Api + Tools).
3. Smoke: host a world, 0 `Wrapper class not found`; `env gpucull status` shows `(N mergeable)`. 3. Smoke: host a world, 0 `Wrapper class not found`; `env gpucull status` shows `(N mergeable)`.
4. Publish `engine/windows-x64/` + manifest + README rows, `tinqs push`. 4. Publish `engine/windows-x64/` + manifest + README rows, `tinqs push`.
## 2026-10-18 Windows side done (Forge/ZCode)
Windows published `e64890fd3` (built at `e64890fd3b` — same hash as the Mac and the pin). Whole GodotSharp
published (Api + Tools, new enum baked in). Headless game boot clean, 0 binding errors. Step 3's in-world bit
(host a world, 0 wrapper errors, `env gpucull status` showing `(N mergeable)`) still owed — same list as the
G2 handoff: multimesh_cull_pool oracle on D3D12, --gpu-validation (Graphics Tools), gpucull census.
+2 -2
View File
@@ -32,9 +32,9 @@ into GodotSharp, so GodotSharp had to be regenerated — and must ship here alon
| Platform | Engine | Terrain3D | GodotSharp shipped? | | Platform | Engine | Terrain3D | GodotSharp shipped? |
|---|---|---|---| |---|---|---|---|
| `engine/macos-arm64/` | **4.7.2** (`e64890fd`) — `4fde0e94` plus the Apple render-thread autorelease drain (fixes the Mach-port / Metal leak under `thread_model=2`) and the G4 mergeable-draw counter | built-in module | ✅ yes (`GodotSharp/`) | | `engine/macos-arm64/` | **4.7.2** (`e64890fd`) — `4fde0e94` plus the Apple render-thread autorelease drain (fixes the Mach-port / Metal leak under `thread_model=2`) and the G4 mergeable-draw counter | 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/`) | | `engine/windows-x64/` | **4.7.2** (`e64890fd3`) — same hash as macos-arm64: `4fde0e94` (G2 pooled cull, fixed shadow band, `STATIC_SHADOW_AT_REST`) plus the G4 mergeable-draw counter (the autorelease-drain fix is Apple-only); `template_release` here is still the `1e7be28b` tree | built-in module | ✅ yes (`GodotSharp/`) |
Mac is engine `e64890fd` as of 2026-10-18 (`--version` prints `4.7.2.stable.mono.custom_build.e64890fd3`): `4fde0e94` plus the separate render thread draining an Objective-C autorelease pool each flush — before, autoreleased Metal command buffers, encoders and drawables leaked ~88 Mach ports/s until no new Metal process could start (66k ports / 23 GB after 1.5 h); now flat at ~640 ports — and `RENDERING_INFO_GPU_CULL_MERGEABLE_DRAWS_IN_FRAME`. Underneath, `4fde0e94` added: 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). Mac is engine `e64890fd` as of 2026-10-18 (`--version` prints `4.7.2.stable.mono.custom_build.e64890fd3`): `4fde0e94` plus the separate render thread draining an Objective-C autorelease pool each flush — before, autoreleased Metal command buffers, encoders and drawables leaked ~88 Mach ports/s until no new Metal process could start (66k ports / 23 GB after 1.5 h); now flat at ~640 ports — and `RENDERING_INFO_GPU_CULL_MERGEABLE_DRAWS_IN_FRAME`. Underneath, `4fde0e94` added: 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 `e64890fd` as of 2026-10-18 (`.agents/handoffs/forge-windows-e64890fd.md`) — both platforms and the `4.7.2@e64890fd3` pin share one hash; the autorelease-drain fix is Apple-only, Windows gains the G4 census counter (`env gpucull status` shows `(N mergeable)`). Headless game boot clean on Forge. Underneath, `4fde0e94` (`.agents/handoffs/forge-windows-g2-4fde0e94.md`) added: 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`; the game's `tree_wind.gdshader` uses it); all default off. 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, mergeable counter).
Long-term: CI (Gitea Actions) builds on push and publishes here / to S3 — Long-term: CI (Gitea Actions) builds on push and publishes here / to S3 —
`docs/ai/plans/build-pipeline-architecture-2026-06-07.md`. `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.
+6 -6
View File
@@ -19,17 +19,17 @@
"binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.exe", "binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.exe",
"console_binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.console.exe", "console_binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.console.exe",
"godotsharp": "engine/windows-x64/GodotSharp", "godotsharp": "engine/windows-x64/GodotSharp",
"version": "4.7.2.stable.mono.custom_build.4fde0e94d", "version": "4.7.2.stable.mono.custom_build.e64890fd3",
"engine_repo": "tinqs/engine", "engine_repo": "tinqs/engine",
"engine_commit": "4fde0e94d7", "engine_commit": "e64890fd3b",
"sha256": "4d0e6910db053a15686f7aecad946e4858dd27b823dc843cb8a0b5c139adbbc2", "sha256": "361d143f66bdc936655a16264a7aa85b397338ae22fef15719a2a9ac176e1cd3",
"sha256_console": "192aba5d6028fbf781fc0c41ff1cfc4bd5b51a3d84f99262b07bf6d61d9981ce", "sha256_console": "4146973210349f33e51fe5e53baa8b166433972f5313942e2807d18d0d8af89b",
"target": "editor", "target": "editor",
"built_on": "2026-10-18", "built_on": "2026-10-18",
"built_by": "Ozan/Forge via ZCode (forge-windows-g2-4fde0e94 handoff; built in parallel with the Mac)", "built_by": "Ozan/Forge via ZCode (forge-windows-e64890fd handoff)",
"toolchain": "MSVC 14.3 (VS2022 Build Tools), Windows SDK 10.0.26100, SCons 4.10.1, .NET SDK 10.0.103", "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", "scons_flags": "platform=windows target=editor module_mono_enabled=yes -j32",
"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." "note": "Windows carries e64890fd3 — SAME hash as macos-arm64 (built at e64890fd3b): 4fde0e94 G2 pooled cull pair (see its note in git history) PLUS e64890fd3b — Apple-only render-thread autorelease drain (no Windows effect), RENDERING_INFO_GPU_CULL_MERGEABLE_DRAWS_IN_FRAME (new enum value 13, G4 census — env gpucull status shows '(N mergeable)'), Metal draw_indirect_count null scratch errors loudly (no Windows effect). GodotSharp regenerated from this binary — Api AND Tools. Headless game boot clean (0 binding errors); in-world smoke (host world, 0 wrapper errors, gpucull mergeable counter) per handoff still owed. Owed on Windows (carried): multimesh_cull_pool oracle on D3D12, --gpu-validation pass (Graphics Tools not installed on Forge), in-world gpucull census + pooled on/off, tree_wind compile check, crash-report checklist (8 steps). Editor target only — template_release still 1e7be28b. D3D12 Agility DLLs not shipped (Vulkan game)."
} }
} }
} }