engine(macos-arm64): publish 0ec39c95 — normal-roughness pre-pass built-in, tonemap cinematic stack, render-thread CPU profile, R0 P5 crash/freeze/device-lost reporting + structured engine errors; GodotSharp regenerated; Windows handoff
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:
1 parent
1f19c87607
commit
935b73e624
36 files changed
+80
-57
No files matched your search
@@ -0,0 +1,23 @@
|
|||||||
|
# Forge (Windows) — rebuild engine main at 0ec39c95 (GPU diet + R0 P5)
|
||||||
|
|
||||||
|
Mac `engine/macos-arm64` is engine `0ec39c95` (2026-10-17). Windows is still `1e7be28b1`. The game pins `4.7.2`
|
||||||
|
without a hash until Windows carries the same commit; then pin `4.7.2@0ec39c95` in ariki-game `project.godot`.
|
||||||
|
|
||||||
|
## Build
|
||||||
|
`tinqs pull` the engine, then the `windows-x64` manifest flags (MSVC, `platform=windows target=editor
|
||||||
|
module_mono_enabled=yes`), regenerate GodotSharp from that binary, publish binary + console binary + GodotSharp here
|
||||||
|
with sha256s, note in `manifest.json`.
|
||||||
|
|
||||||
|
## New and NOT yet compiled on Windows (no toolchain on the Mac)
|
||||||
|
- `platform/windows/crash_report_windows.{h,cpp}`, `crash_handler_windows_seh.cpp` / `_signal.cpp` (MiniDumpWriteDump,
|
||||||
|
pre-started writer thread, unhandled-exception filter), `os_windows_stack_sampling.cpp` (freeze watchdog stack walk),
|
||||||
|
dbghelp/psapi linked in every target (`detect.py`, `SCsub`).
|
||||||
|
- `drivers/d3d12/rendering_device_driver_d3d12.{h,cpp}`: GetDeviceRemovedReason + DRED on device removal.
|
||||||
|
- Verification checklist: engine `.agents/wiki/crash-freeze-and-error-reporting.md` (8 steps: main-thread crash,
|
||||||
|
worker-thread crash, stack overflow, native freeze, C# freeze, D3D12 TDR via `dxcap -forcetdr --gpu-breadcrumbs`,
|
||||||
|
`--disable-crash-handler` writes nothing, release template build links dbghelp).
|
||||||
|
|
||||||
|
## Bench after the build (the pacer box)
|
||||||
|
ariki-game `.agents/plans/gpu-frame-diet-ui-opaque-prepass-2026-10-17.md` and `render-thread-diet-2026-10-17.md`:
|
||||||
|
run the Jungle/Main stands with `--gpu-profile`; the RENDER CPU PROFILE block now prints `_draw wall` and
|
||||||
|
`end_frame (graph replay + submit)` — the split of the 12.6 ms render-thread floor that Phase 0 asked for.
|
||||||
@@ -31,10 +31,10 @@ 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** (`1e7be28b`) — GPU-driven MultiMesh culling Stage A+B+B2+C (HZB occlusion, default off) + static cache single-sample / hard-filter options + true Metal GPU profile + parallel shadow fill, on top of the shadow diet, `get_video_adapter_memory()`, device-lost diagnostics | built-in module | ✅ yes (`GodotSharp/`) |
|
| `engine/macos-arm64/` | **4.7.2** (`0ec39c95`) — normal-roughness pre-pass built-in, tonemap cinematic stack, render-thread CPU profile, crash/freeze/device-lost reporting + structured engine errors (R0 P5), on top of everything `1e7be28b` had | built-in module | ✅ yes (`GodotSharp/`) |
|
||||||
| `engine/windows-x64/` | **4.7.2** (`b1bc0aef`) — upstream bugfixes + static shadow cache (no memory query yet) | built-in module | ✅ yes (`GodotSharp/`) |
|
| `engine/windows-x64/` | **4.7.2** (`b1bc0aef`) — upstream bugfixes + static shadow cache (no memory query yet) | built-in module | ✅ yes (`GodotSharp/`) |
|
||||||
|
|
||||||
Mac is engine `1e7be28b` as of 2026-10-05 night (`--version` prints `4.7.2.stable.mono.custom_build.1e7be28b1`; same code as `b0daf759`, relinked to match the Windows pair so `required_engine_build` is pinned to `4.7.2@1e7be28b`): GPU culling Stage C (previous-frame depth-pyramid occlusion, default off), zero per-frame cull uploads, static-cache single-sample + hard-filter options (default = unchanged), true per-pass Metal GPU profile, parallel shadow instance fill, on top of Stage B2 CPU band skip for GPU-culled MultiMeshes (the x4.7 draw explosion of `gpucull veg on` is gone; the path still stays off by default) on top of everything 51ed21d5 had (shadow diet incl. tile budget / live caster size cull / inverted-contract switch, video adapter memory query, GPU device-lost diagnostics) plus GPU-driven MultiMesh culling Stage A (compute frustum cull + indirect draws, `multimesh_set_gpu_cull`) and Stage B (per-instance GPU LOD bands, `multimesh_set_gpu_lods`), real Metal GPU timestamps (`renderGpuMs`), staggered far cascades, fit-to-visible-depth (SDSM-lite, default off), the Metal argument-buffer copy-queue stall fix and the Vulkan breadcrumb barrier fix (#185). Windows is `b1bc0aef` (2026-09-28, 4.7.2 + static shadow cache) and gets all of the above when Forge rebuilds from main - do not pin `required_engine_build` before that. Windows is `b1bc0aef` (2026-09-28, 4.7.2 + static shadow cache) and gets the memory query when Forge rebuilds from main. The engine source repo stays private. Check `manifest.json` for sha256. The 4.7 Windows cutover handoff is resolved: [`.agents/handoffs/forge-windows-4.7.md`](.agents/handoffs/forge-windows-4.7.md).
|
Mac is engine `0ec39c95` as of 2026-10-17 (`--version` prints `4.7.2.stable.mono.custom_build.0ec39c954`): `IN_NORMAL_ROUGHNESS_PASS` (heavy materials skip their texture work in the SSAO/SSIL pre-pass), the cinematic stack (CA, vignette, grain) inside the tonemap pass, render-thread CPU in `--gpu-profile`, and R0 P5 crash dumps / freeze watchdog / D3D12 device-removed reason / structured engine errors. Windows is still `1e7be28b1` until Forge rebuilds from engine main ([`.agents/handoffs/forge-windows-gpu-diet-r0-p5.md`](.agents/handoffs/forge-windows-gpu-diet-r0-p5.md)); the game pins `4.7.2` without a hash until both platforms carry `0ec39c95`. Earlier: Mac is engine `1e7be28b` as of 2026-10-05 night (`--version` prints `4.7.2.stable.mono.custom_build.1e7be28b1`; same code as `b0daf759`, relinked to match the Windows pair so `required_engine_build` is pinned to `4.7.2@1e7be28b`): GPU culling Stage C (previous-frame depth-pyramid occlusion, default off), zero per-frame cull uploads, static-cache single-sample + hard-filter options (default = unchanged), true per-pass Metal GPU profile, parallel shadow instance fill, on top of Stage B2 CPU band skip for GPU-culled MultiMeshes (the x4.7 draw explosion of `gpucull veg on` is gone; the path still stays off by default) on top of everything 51ed21d5 had (shadow diet incl. tile budget / live caster size cull / inverted-contract switch, video adapter memory query, GPU device-lost diagnostics) plus GPU-driven MultiMesh culling Stage A (compute frustum cull + indirect draws, `multimesh_set_gpu_cull`) and Stage B (per-instance GPU LOD bands, `multimesh_set_gpu_lods`), real Metal GPU timestamps (`renderGpuMs`), staggered far cascades, fit-to-visible-depth (SDSM-lite, default off), the Metal argument-buffer copy-queue stall fix and the Vulkan breadcrumb barrier fix (#185). Windows is `b1bc0aef` (2026-09-28, 4.7.2 + static shadow cache) and gets all of the above when Forge rebuilds from main - do not pin `required_engine_build` before that. Windows is `b1bc0aef` (2026-09-28, 4.7.2 + static shadow cache) and gets the memory query when Forge rebuilds from main. The engine source repo stays private. Check `manifest.json` for sha256. The 4.7 Windows cutover handoff is resolved: [`.agents/handoffs/forge-windows-4.7.md`](.agents/handoffs/forge-windows-4.7.md).
|
||||||
|
|
||||||
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.
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.
+6
-6
@@ -4,16 +4,16 @@
|
|||||||
"macos-arm64": {
|
"macos-arm64": {
|
||||||
"binary": "engine/macos-arm64/tinqs.macos.editor.arm64.mono",
|
"binary": "engine/macos-arm64/tinqs.macos.editor.arm64.mono",
|
||||||
"godotsharp": "engine/macos-arm64/GodotSharp",
|
"godotsharp": "engine/macos-arm64/GodotSharp",
|
||||||
"version": "4.7.2.stable.mono.custom_build.1e7be28b1",
|
"version": "4.7.2.stable.mono.custom_build.0ec39c954",
|
||||||
"engine_repo": "tinqs/engine",
|
"engine_repo": "tinqs/engine",
|
||||||
"engine_commit": "1e7be28b",
|
"engine_commit": "0ec39c95",
|
||||||
"sha256": "5facd3e614ead0f5bb93bcd49b468a7b8b4dd7f23e26a5aa81d7243645547c0a",
|
"sha256": "dcc7a6d183806d3a88d055c3d5c394f22d6b8e4f0750a897c99189b8f602707c",
|
||||||
"target": "editor",
|
"target": "editor",
|
||||||
"built_on": "2026-10-05",
|
"built_on": "2026-10-17",
|
||||||
"built_by": "Ozan/Kraken via Claude (engine round 2 evening: Stage C + housekeeping, single-sample static cache, Metal profiler fix, parallel shadow fill)",
|
"built_by": "Ozan/Kraken via Claude (GPU frame diet + R0 P5 crash/freeze reporting)",
|
||||||
"toolchain": "Xcode (Apple Silicon), SCons, VulkanSDK 1.4.350.0",
|
"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",
|
"scons_flags": "platform=macos target=editor arch=arm64 module_mono_enabled=yes vulkan_sdk_path=~/VulkanSDK/1.4.350.0/macOS",
|
||||||
"note": "Mac. Engine 1e7be28b = b0daf759 code + one docs commit, relinked so macOS and Windows carry the SAME engine commit for the pin. Mac. Engine 1e7be28b = b0daf759 code + a docs commit, relinked so macOS and Windows carry the SAME engine commit for the required_engine_build pin (4.7.2@1e7be28b). Engine b0daf759 on top of 615e852f: GPU-driven MultiMesh culling Stage C (previous-frame HZB occlusion for the camera cull set, default off: multimesh_gpu_cull_set_occlusion / rendering/occlusion_culling/gpu_hzb) + housekeeping (one command buffer per MultiMesh, zero per-frame uploads, one dispatch per MultiMesh, RENDERING_INFO_GPU_CULL_DISPATCHES/INDIRECT_DRAWS_IN_FRAME = 11/12); static shadow cache single-sample mode (static_single_sample + directional_static_shadow_set_single_sample, default off) and static_soft_filter (default true = today's soft PCF; false = hard 2x2, measured -16 ms GPU at a village stand on M1 with the cache on); Metal GPU profile timestamps drain before sampling (per-pass table is true now); shadow passes fill instance data in parallel. GodotSharp regenerated (MultimeshGpuCullSetOcclusion, DirectionalStaticShadowSetSingleSample present). Smoke on Kraken: 0 wrapper errors, world + large village. windows-x64 is 1e7be28b1 too (Forge, d4cf0b7); pin set in ariki-game project.godot."
|
"note": "Mac. Engine 0ec39c95 on top of 1e7be28b: IN_NORMAL_ROUGHNESS_PASS spatial built-in (heavy materials skip texture work in the SSAO/SSIL normal-roughness pre-pass: terrain pre-pass 2.5 -> 0.6 ms on M1 Max); per-Environment cinematic stack in the tonemap pass (RenderingServer.environment_set_tinqs_cinematic: chromatic aberration, vignette, film grain); --gpu-profile prints render-thread CPU per label + _draw wall + end_frame; R0 P5: crash reports in user://crash/ in every build (Windows minidump + JSON sidecar, macOS JSON + backtrace), freeze watchdog (debug/settings/freeze_watchdog/timeout_sec, default 10), D3D12 device-removed reason + DRED, AgentLog structured error records (get_error_records / get_last_error_id / set_crash_context). GodotSharp regenerated (EnvironmentSetTinqsCinematic present). Smoke on Kraken: new API + AgentLog methods + shader built-in; the game ran the same commit (symbol build) in-world at 60-70 fps. windows-x64 is still 1e7be28b1 until Forge rebuilds from engine main (handoff forge-windows-gpu-diet-r0-p5.md); the game pins 4.7.2 (no hash) until both platforms carry 0ec39c95."
|
||||||
},
|
},
|
||||||
"windows-x64": {
|
"windows-x64": {
|
||||||
"binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.exe",
|
"binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.exe",
|
||||||
|
|||||||
Reference in new issue
Block a user