engine(macos-arm64): publish a967d12b - parallel draw-list replay (Vulkan) + parallel draw-list recording (all drivers); GodotSharp regenerated

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018hSLRwirUk2NF4j1v2kH4Z
This commit is contained in:
ozanandClaude Opus 5.5 committed 2026-10-19 01:18:41 +01:00
1 parent 431d213451
commit 4485763114
35 files changed
+56 -56

No files matched your search

+2 -2
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** (`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** (`a967d12b`) — `e64890fd` plus parallel draw-list replay (Vulkan secondary command buffers) and parallel draw-list recording (Forward+ render lists over worker threads, every driver) | 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 `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).
Mac is engine `a967d12b` as of 2026-10-19 (`--version` `4.7.2.stable.mono.custom_build.a967d12bf`): `e64890fd` plus parallel draw-list replay (Vulkan only) and parallel draw-list recording (every driver), both engine-default off and turned on by the game; GodotSharp regenerated; oracle `parallel_draw_replay` Vulkan 10/10, Metal 5/5 (`engine/.agents/wiki/parallel-draw-replay.md`). Windows to follow (`.agents/handoffs/forge-windows-parallel-replay.md`). Before that, Mac was 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 —
`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.
+7 -7
View File
@@ -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.e64890fd3",
"version": "4.7.2.stable.mono.custom_build.a967d12bf",
"engine_repo": "tinqs/engine",
"engine_commit": "e64890fd",
"sha256": "ee3f58dd973f571599eed5f3d043c1b8c84bc7ee38b0e180ea8d31523e0b932b",
"engine_commit": "a967d12b",
"sha256": "abc6dc79990ad53949b35bee0f5a2029a0c0b49803c25ae3b3b792c0d233f563",
"target": "editor",
"built_on": "2026-10-18",
"built_by": "Ozan/Kraken via Claude (render-thread autorelease drain on Apple + G4 mergeable-draw counter)",
"built_on": "2026-10-19",
"built_by": "Ozan/Kraken via Claude (parallel draw-list replay + recording)",
"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 e64890fd = 4fde0e94 + Apple render-thread fix: the separate render thread (thread_model=2, the game default) now drains an Objective-C autorelease pool each flush - before, autoreleased Metal command buffers/encoders/drawables leaked ~88 Mach ports/s until Metal could not start new processes (66k ports / 23 GB after 1.5 h); now flat at ~640. Also RENDERING_INFO_GPU_CULL_MERGEABLE_DRAWS_IN_FRAME (G4 census) and draw_indirect_count null scratch now errors loudly. GodotSharp regenerated (with Tools/). Oracles on Metal: multimesh_cull_pool 4524/4524, draw_indirect_count 24/24. Windows at 4fde0e94; Forge to rebuild e64890fd (handoff forge-windows-e64890fd.md) - the leak fix is Apple-only, Windows gains only the counter."
"note": "Mac. Engine a967d12b = e64890fd + parallel draw-list replay (06ecc5df: large draw lists recorded into Vulkan secondary command buffers on worker threads at frame end; Vulkan only, no effect on Metal) + parallel draw-list recording (Forward+ render lists split over worker threads into RenderingDevice sub-lists; every driver) + PipelineHashMapRD RWLock. Project settings rendering/rendering_device/parallel_draw_{replay,recording}/* (engine default off; the game turns both on). GodotSharp regenerated (with Tools/). Oracle tests/gpu_oracle/parallel_draw_replay: Vulkan/MoltenVK 10/10, Metal 5/5 pixel-identical. Windows at e64890fd3; Forge to build a967d12b (handoff forge-windows-parallel-replay.md)."
},
"windows-x64": {
"binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.exe",
@@ -29,7 +29,7 @@
"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",
"scons_flags": "platform=windows target=editor module_mono_enabled=yes -j32",
"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)."
"note": "Windows carries e64890fd3 \u2014 SAME hash as macos-arm64 (built at e64890fd3b): 4fde0e94 G2 pooled cull pair (see its note in git history) PLUS e64890fd3b \u2014 Apple-only render-thread autorelease drain (no Windows effect), RENDERING_INFO_GPU_CULL_MERGEABLE_DRAWS_IN_FRAME (new enum value 13, G4 census \u2014 env gpucull status shows '(N mergeable)'), Metal draw_indirect_count null scratch errors loudly (no Windows effect). GodotSharp regenerated from this binary \u2014 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 \u2014 template_release still 1e7be28b. D3D12 Agility DLLs not shipped (Vulkan game)."
}
}
}