Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NCXU49xtHLSry4TQEzVN2m
40 lines
2.7 KiB
Markdown
40 lines
2.7 KiB
Markdown
# 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.
|
|
|
|
|
|
## Next: both platforms to 7fb81364 (crash-report review fixes)
|
|
|
|
Engine main is `7fb81364` (`a040761b` + `7fb81364` on top of `0ec39c95`): freeze-report note/context read under a lock,
|
|
debugger pauses never count as stall time, macOS sidecar `thread_id`, one first-wins atomic claims a Windows crash.
|
|
No API change — GodotSharp is unchanged. Mac has built `7fb81364` (Kraken, `4.7.2.stable.mono.custom_build.7fb81364b`)
|
|
but does NOT publish it yet: the game pins `4.7.2@0ec39c954`, so a lone Mac publish would lock every Mac out.
|
|
|
|
Windows (Forge):
|
|
1. Build `7fb81364` with the manifest flags. The Windows files changed here were NOT compiled on the Mac:
|
|
`platform/windows/crash_handler_windows_seh.cpp`, `platform/windows/crash_report_windows.{h,cpp}` — if they fail,
|
|
write the error here.
|
|
2. If you have a `tests=yes` build: `--test --test-case="*CrashReport*,*FreezeDetector*,*FreezeWatchdog*,*AgentLog*"`.
|
|
3. Publish windows-x64 `7fb81364`, then tell Kraken: Mac publishes its `7fb81364` binary and the pin moves to
|
|
`4.7.2@7fb81364b` in the same game push.
|