Compare commits

..
29 Commits
Author SHA1 Message Date
ozan 07f7b42d64 manifest(windows-x64): 73d20a40b verification closed — oracle 10/10 zero VUIDs, DIC 22/0, cull_pool 4524/4524, headless smoke clean 2026-10-19 20:03:54 +01:00
ozan 76edf9ccc9 engine(windows-x64): publish 73d20a40b — #250 parallel-recording nest FATAL fix + texture_rid bind-race fix (milky ocean); GodotSharp regenerated; fast publish per owner (oracle on this hash owed) 2026-10-19 19:54:23 +01:00
ozanandClaude Opus 5.5 c632796638 engine(macos-arm64): publish 73d20a40 - #250 parallel draw-list sub-recordings nest + RD texture wrappers allocate their RS texture before the render-thread bind (milky ocean under the separate render thread); GodotSharp regenerated
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018hSLRwirUk2NF4j1v2kH4Z
2026-10-19 18:41:17 +01:00
ozan 736e3e9bc3 engine(windows-x64): publish d49400463 — VUID-00050 pool-reset fix VERIFIED (oracle 10/10, zero VUIDs, validation on) before publish; GodotSharp regenerated 2026-10-19 04:15:43 +01:00
ozanandClaude Opus 5.5 05704fd826 docs(readme): Mac current-contents sentence names d4940046
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018hSLRwirUk2NF4j1v2kH4Z
2026-10-19 04:03:11 +01:00
ozanandClaude Opus 5.5 74072b67d7 engine(macos-arm64): publish d4940046 - parallel-replay secondary command pools reset per frame (VUID-vkBeginCommandBuffer-00050 fix); GodotSharp regenerated, API unchanged; Windows still a967d12bf, pin moves when Forge publishes d4940046
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018hSLRwirUk2NF4j1v2kH4Z
2026-10-19 04:01:03 +01:00
ozanandClaude Opus 5.5 af72922179 docs: drop throttled Windows perf claims (Forge power plan); keep oracle + VUID facts
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018hSLRwirUk2NF4j1v2kH4Z
2026-10-19 03:50:20 +01:00
ozanandClaude Opus 5.5 6b7dab6242 chore: delete every Forge handoff from builds - Windows test steps and results live on the engine wiki page that owns the feature; README and master plan point there
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018hSLRwirUk2NF4j1v2kH4Z
2026-10-19 03:09:33 +01:00
ozanandClaude Opus 5.5 e16736c518 handoff(forge): laptop setup checklist (power mode, MUX dGPU-only, CPU name, core placement) + main-thread rendering control run (--render-thread safe) with /mainthread reads
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018hSLRwirUk2NF4j1v2kH4Z
2026-10-19 03:07:19 +01:00
ozan 17d80b0004 Merge branch 'main' of ssh.tinqs.com:tinqs/builds
# Conflicts:
#	.agents/handoffs/forge-windows-parallel-replay.md
2026-10-19 02:31:58 +01:00
ozanandClaude Opus 5.5 017badfc4d handoff(forge): add GPU HZB occlusion A/B (gpucull hzb off/on) to the parallel replay run
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018hSLRwirUk2NF4j1v2kH4Z
2026-10-19 02:31:13 +01:00
ozan c1b7e0809a engine(windows-x64): publish a967d12bf — parallel draw-list replay + recording (default off); GodotSharp regenerated; engine-side tests: oracle 10/10 (VUID-00050 finding recorded), DIC d3d12 22/0 validated, cull_pool 4524/4524 validated 2026-10-19 01:50:44 +01:00
ozan 22943169cc handoff(forge): engine-side oracle results on a967d12b — replay+record 10/10 (VUID-00050 finding), DIC d3d12 22/0 validated, cull_pool d3d12 4524/4524 validated; Vulkan SDK + D3D12 debug layer installed on Forge 2026-10-19 01:40:43 +01:00
ozanandClaude Opus 5.5 4485763114 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
2026-10-19 01:18:41 +01:00
ozanandClaude Opus 5.5 431d213451 handoff(forge): parallel replay + recording A/B on engine a967d12b, occlusion A/B added
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018hSLRwirUk2NF4j1v2kH4Z
2026-10-19 01:10:15 +01:00
ozanandClaude Opus 5.5 bde94a1bca handoff(forge): windows A/B of parallel draw-list replay, engine 06ecc5df
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018hSLRwirUk2NF4j1v2kH4Z
2026-10-19 00:10:45 +01:00
ozan ddb10953c6 engine(windows-x64): publish e64890fd3 — G4 mergeable-draw counter on the 4fde0e94 pair; GodotSharp regenerated (new enum); headless boot clean 2026-10-18 22:00:20 +01:00
ozanandClaude Opus 5.5 004ca6d959 engine(macos-arm64): publish e64890fd — Apple render-thread autorelease drain (Mach-port/Metal leak under thread_model=2), G4 mergeable-draw counter; GodotSharp regenerated; Forge handoff
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NCXU49xtHLSry4TQEzVN2m
2026-10-18 21:05:12 +01:00
ozan 26cc48e674 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	README.md
#	manifest.json
2026-10-18 05:12:54 +01:00
ozan bb9c51a665 engine(windows-x64): publish 4fde0e94d — G2 pooled cull on top of 9dcc5d45; GodotSharp regenerated (pooled/band APIs); pin version-only until Mac publishes 2026-10-18 05:06:52 +01:00
ozanandClaude Opus 5.5 49ab3756b4 chore(manifest): restore CRLF line endings
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NCXU49xtHLSry4TQEzVN2m
2026-10-18 04:58:29 +01:00
ozanandClaude Opus 5.5 76f088e6a0 engine(macos-arm64): publish 4fde0e94 - G2 pooled GPU cull, fixed shadow band, STATIC_SHADOW_AT_REST; GodotSharp regenerated; Forge handoff for Windows
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NCXU49xtHLSry4TQEzVN2m
2026-10-18 04:56:22 +01:00
ozan bdb2dc8ca8 engine(windows-x64): publish 9dcc5d458 — SSCS + hero shadow min-combine + shadow fixes + draw_indirect_count (D3D12); GodotSharp regenerated (Api + Tools); oracle 22/24 (base-instance gap) 2026-10-18 04:35:59 +01:00
ozanandClaude Opus 5.5 9d90e417ba engine(macos-arm64): publish 9dcc5d45 - screen-space contact shadows, hero shadow min-combine, upstream 4.8 shadow fixes #121775/#124348, draw_indirect_count (Metal); GodotSharp regenerated (API + Tools); Windows still 7fb81364b, Forge rebuild handoff forge-windows-sscs-9dcc5d45.md
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NCXU49xtHLSry4TQEzVN2m
2026-10-18 02:50:40 +01:00
ozanandClaude Opus 5.5 50ac90c232 docs(macos-arm64): 7fb81364 note - Windows already carries 7fb81364, both platforms match; no skip-check needed
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NCXU49xtHLSry4TQEzVN2m
2026-10-17 23:03:19 +01:00
ozanandClaude Opus 5.5 187d0dace5 engine(macos-arm64): publish 7fb81364 - 0ec39c95 + crash-report review fixes (no API change, GodotSharp unchanged); the game pin 4.7.2@0ec39c954 refuses it until Windows publishes 7fb81364 and the pin moves - TINQS_ENGINE_SKIP_CHECK=1 meanwhile
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NCXU49xtHLSry4TQEzVN2m
2026-10-17 23:03:03 +01:00
ozan 74aa47df5d handoff(forge-windows): 7fb81364 published on Windows — Mac clear to publish, pin is version-only 4.7.2 until the @7fb81364b flip 2026-10-17 22:59:49 +01:00
ozan f0a8bcfb2e Merge branch 'main' of ssh.tinqs.com:tinqs/builds 2026-10-17 22:59:12 +01:00
ozan 871000bcf4 engine(windows-x64): publish 7fb81364b — crash-handler fixes (first-wins claim, freeze note/context); GodotSharp regenerated 2026-10-17 22:50:13 +01:00
77 changed files with 119 additions and 268 deletions

No files matched your search

-62
View File
@@ -1,62 +0,0 @@
# Handoff → Forge (Ozan's Windows box): build Windows 4.7 + ship GodotSharp
**Date:** 2026-06-19 · **From:** macOS 4.7 native-module migration · **For:** Windows build owner
## Why
The engine moved to **Godot 4.7** and **Terrain3D + agent_skinned are now native engine modules**
(compiled into the binary — no GDExtension `.framework`). macOS is done and shipped in this repo
(`engine/macos-arm64/`). **Windows is still 4.6.5 with the GDExtension** and must be brought up to
4.7 the same way, or Windows teammates can't run the new `ariki-game` (the game-side cutover removed
the terrain GDExtension).
## The critical bit (don't skip)
After the 4.7 build you **must regenerate GodotSharp and ship it next to the binary.** A native
module changes the engine's class list; the C# bindings (`GodotSharp`) must be regenerated to
include `Terrain3D` / `MultiSkinnedMeshInstance3D`, or the game throws
`Wrapper class not found for type: Terrain3D` (terrain = water, animals frozen). The engine does
**not** regenerate GodotSharp at runtime.
## Steps (Windows)
1. **Sync engine source** to the current `tinqs/engine` `main` (single 4.7 snapshot, `4ba7b5b`).
```
cd engine
tinqs pull # or: git fetch origin && git checkout main && git reset --hard origin/main
```
2. **Build the editor**:
```
scons platform=windows target=editor arch=x86_64 module_mono_enabled=yes
scons platform=windows target=editor arch=x86_64 module_mono_enabled=yes windows_subsystem=console # console binary
```
3. **Regenerate the mono glue + GodotSharp assemblies** (this is the step that fixes the wrapper errors):
```
bin\tinqs.windows.editor.x86_64.mono.exe --headless --generate-mono-glue modules\mono\glue
python modules\mono\build_scripts\build_assemblies.py --godot-output-dir=bin --godot-platform=windows
```
Confirm `bin\GodotSharp\Api\Debug\GodotSharp.dll` exists and that
`modules\mono\glue\...\Generated\Constructors.cs` contains `Terrain3D` (grep it).
4. **If you hit the same build errors I did** (already fixed in `main`, but for reference): a core
module can't expose an editor-API type — `Terrain3D::set_plugin` must take `Object*` not
`EditorPlugin*`; `Terrain3DAssetResource` must be `GDREGISTER_ABSTRACT_CLASS`; drop the redundant
`Terrain3DRegion::duplicate` bind. These are already in `main` — a clean pull should have them.
5. **Drop into this builds repo** (`engine/windows-x64/`):
- `tinqs.windows.editor.x86_64.mono.exe` (+ `.console.exe`)
- the whole `GodotSharp/` folder ← **new requirement; was previously .gitignored**
6. **Update `manifest.json`** windows-x64 block: version `4.7…`, `engine_commit` `4ba7b5b`, new
sha256s, add `"godotsharp": "engine/windows-x64/GodotSharp"`, clear the "pending" note.
7. `tinqs push`.
## Verify
On a Windows machine with `ariki-game`: run the update-engine skill (`.agents/skills/update-engine`,
Windows path), launch `game.sh run`. Healthy = terrain renders, animals animate, **0**
`Wrapper class not found`, no `.NET assemblies not found`.
## Notes
- `.gitattributes` already LFS-tracks `engine/**`, so the binary + GodotSharp go to LFS automatically.
- The macOS side in this repo is the reference for exactly what the layout should look like.
- Game-side cutover (GDExtension removal, `project.godot`→4.7) is committed on `ariki-game` `main`
(held pending team sync) — Windows teammates need this engine before that lands for them.
@@ -1,39 +0,0 @@
# 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.
@@ -1,12 +0,0 @@
# Forge (Windows) — rebuild pair from engine main ≥ 615e852f, re-judge the render verdicts, pin (2026-10-05)
macOS pair `615e852f` (code `c76f2ecc`) is published here. Windows is still `b1bc0aef` (2026-09-28).
1. Build the Windows editor + console pair from `tinqs/engine` main with the `windows-x64` manifest flags
(`platform=windows target=editor arch=x86_64 module_mono_enabled=yes d3d12=yes angle=yes accesskit=yes`),
regenerate GodotSharp from that exact binary, smoke (0 wrapper errors), publish here, update `manifest.json` +
`README.md`.
2. Then pin `tinqs/required_engine_build="4.7.2@<hash7+>"` in `ariki-game/project.godot` (both platforms on the same commit).
3. Re-judge on Windows what the Mac measured (frame GPU-bound on M1): static shadow cache default (now OFF on Apple
silicon game-side, ON elsewhere — keep ON on Windows only if `inverted` ≥ `cache_off` fps), GPU veg bands, HLOD.
Full recipe + numbers: `ariki-game/.agents/handoffs/2026-10-05-forge-windows-render-bench-handover.md`.
@@ -1,34 +0,0 @@
# Handoff → Forge (Ozan's Windows box): rebuild windows-x64 with the static shadow cache (2026-09-28)
**From:** Fable orchestrator on the Mac · **Why:** `tinqs/engine` main gained the directional static shadow cache
(Part 1) and the stepped-sun crossfade (Part 2) — Forward+ renderer, new project settings, six+four
`RenderingServer` methods, a second depth atlas. The game (`ariki-game` ≥ 19490e358) calls the new methods by
name and degrades loudly on an engine without them, so Windows teammates keep working on the old binary but get
no cache. Rollout plan: `ariki-game/.agents/handoffs/2026-09-28-static-shadow-cache-rollout.md`.
## Steps (mirror of `forge-windows-4.7.md`, same toolchain as the fec9847 build)
1. `cd engine && tinqs pull` → `git log --oneline -1` must show the Part 2 commit named in the rollout plan.
2. Build (the flags recorded in `manifest.json` for fec9847):
```
scons platform=windows target=editor arch=x86_64 module_mono_enabled=yes d3d12=yes angle=yes accesskit=yes
scons platform=windows target=editor arch=x86_64 module_mono_enabled=yes d3d12=yes angle=yes accesskit=yes windows_subsystem=console
```
3. Regenerate glue + GodotSharp (matched-pair law — do not skip even though no C# binding is *required* by the
compiler; the manifest promises the pair):
```
bin\tinqs.windows.editor.x86_64.mono.exe --headless --generate-mono-glue modules\mono\glue
python modules\mono\build_scripts\build_assemblies.py --godot-output-dir=bin --godot-platform=windows
```
4. Copy into this repo: `engine/windows-x64/tinqs.windows.editor.x86_64.mono.exe`, `...mono.console.exe`, and the
whole `GodotSharp/` (replace, never merge).
5. `manifest.json` → `engine.windows-x64`: `version` (from `--version`), `engine_commit`, both sha256s, `built_on`,
`built_by`, `note` ("static shadow cache Part 1 + Part 2; GodotSharp regenerated"). Leave `macos-arm64` alone.
6. `tinqs push` (LFS).
## Verify
On a Windows `ariki-game` checkout: run the `update-engine` skill, `game.sh run`, host a world, then
`POST /command {"command":"env","key":"staticshadow","value":"on"}` — the log must NOT print
`[STATIC-SHADOW] engine without the cache`, and `GET /perf` must show `staticShadow` with `enabled: true`.
Terrain renders, animals animate, 0 `Wrapper class not found`.
+1 -3
View File
@@ -7,12 +7,10 @@ Tinqs/Ariki stack, plus `manifest.json` tracking exact shipped versions. Source
`tinqs/engine`, `tinqs/ariki-game`, `tinqs/ariki-sim` — this repo only holds built output.
- macOS arm64: engine 4.7, native Terrain3D module, GodotSharp shipped.
- Windows x64: engine 4.6.5 (pre-4.7), GDExtension Terrain3D, 4.7 upgrade pending Forge —
see `.agents/handoffs/forge-windows-4.7.md`.
- Windows x64: engine 4.7, built on Forge, GodotSharp shipped.
## In flight
- Windows 4.7 engine build + matching GodotSharp (blocked on Forge machine — see handoff).
- Longer-term: CI (Gitea Actions) building on push and publishing here / to S3 — tracked in
`docs/ai/plans/build-pipeline-architecture-2026-06-07.md` (hub repo, not here).
+3 -3
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** (`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** (`0ec39c95`) — normal-roughness pre-pass built-in, tonemap cinematic stack, render-thread CPU profile, crash/freeze/device-lost reporting + structured engine errors (R0 P5), same as macos-arm64 (`template_release` here is still the `1e7be28b` tree) | built-in module | ✅ yes (`GodotSharp/`) |
| `engine/macos-arm64/` | **4.7.2** (`73d20a40`) — `d4940046` plus the #250 parallel-recording nesting fix and the Texture2DRD bind-race fix | built-in module | ✅ yes (`GodotSharp/`) |
| `engine/windows-x64/` | **4.7.2** (`73d20a40b`) — same hash as macos-arm64: parallel replay+recording (game ships both ON) + VUID-00050 pool reset + the #250 recording-nest FATAL fix + the Texture2DRD bind-race fix (milky ocean); `template_release` here is still the `1e7be28b` tree | built-in module | ✅ yes (`GodotSharp/`) |
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 also engine `0ec39c95` as of 2026-10-17 — Forge rebuilt from engine main ([`.agents/handoffs/forge-windows-gpu-diet-r0-p5.md`](.agents/handoffs/forge-windows-gpu-diet-r0-p5.md); editor target only, `template_release` is still the `1e7be28b` tree). Both platforms carry `0ec39c95`, so the game pins `4.7.2@0ec39c954`. 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 carried `b1bc0aef` (2026-09-28, 4.7.2 + static shadow cache, then `1e7be28b` 2026-10-05) until the 2026-10-17 Forge rebuild delivered all of the above plus the video adapter memory query. 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 `73d20a40` as of 2026-10-19 (`--version` `4.7.2.stable.mono.custom_build.73d20a40b`): `d4940046` plus `219b914c` (#250, parallel draw-list sub-recordings nest; Windows Ultra-bench FATAL) and `73d20a40` (RD texture wrappers allocate their RS texture before the render-thread bind, fixing the milky ocean under the separate render thread); GodotSharp regenerated, API unchanged. **Windows is also engine `73d20a40b` as of 2026-10-19** — Forge fast-published on the owner's request after GodotSharp regen (oracle + headless smoke on this exact hash still owed; both fixes sit in the engine's own oracle coverage). Before this, Windows `d49400463` verified the VUID-00050 pool-reset fix with a validated oracle run (10/10, zero VUIDs) and carried the parallel features' fps-lane results (no regression, rGPU 8.1→6.8 ms, soak + eye check pass, game ships both ON); `draw_indirect_count` d3d12 22/0 with debug layer, `multimesh_cull_pool` d3d12 4524/4524 (pooled-cull gate met); Vulkan SDK + Graphics Tools installed on Forge. Still owed on Windows: oracle on `73d20a40b`, a `--gpu-validation` in-game soak, tests=yes unit suites, crash checklist. Underneath: `e64890fd` (Apple autorelease-drain + G4 census) on `4fde0e94` (G2 pooled cull, fixed shadow band, `STATIC_SHADOW_AT_REST`) on 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`).
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.
Binary file not shown.
+13 -13
View File
@@ -4,32 +4,32 @@
"macos-arm64": {
"binary": "engine/macos-arm64/tinqs.macos.editor.arm64.mono",
"godotsharp": "engine/macos-arm64/GodotSharp",
"version": "4.7.2.stable.mono.custom_build.0ec39c954",
"version": "4.7.2.stable.mono.custom_build.73d20a40b",
"engine_repo": "tinqs/engine",
"engine_commit": "0ec39c95",
"sha256": "dcc7a6d183806d3a88d055c3d5c394f22d6b8e4f0750a897c99189b8f602707c",
"engine_commit": "73d20a40",
"sha256": "e3f5256c7855e4faf03e1c8e53e3c02e78e1d4e146b19b7bda3105445340f6ba",
"target": "editor",
"built_on": "2026-10-17",
"built_by": "Ozan/Kraken via Claude (GPU frame diet + R0 P5 crash/freeze reporting)",
"built_on": "2026-10-19",
"built_by": "Ozan/Kraken via Claude (parallel recording nesting + Texture2DRD bind race)",
"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 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."
"note": "Mac. Engine 73d20a40 = d4940046 + 219b914c (#250: parallel draw-list sub-recordings nest - a worker waiting inside its slice ran another slice's task and the inner end cleared the outer target, Windows FATAL p_idx >= _len on the Ultra bench) + 73d20a40 (Texture2DRD/TextureLayeredRD/Texture3DRD allocate the RS texture before the render-thread bind is queued - under the separate render thread a material could keep the magenta placeholder; Ariki's ocean drew milky). GodotSharp regenerated (with Tools/), API unchanged. Oracle parallel_draw_replay Vulkan/MoltenVK 10/10, Metal 5/5; game hosts the dev world on Metal with thread_model=2, ocean clear, 0 wrapper errors. Windows still at d49400463; the game pin stays at d49400463 until Forge publishes windows-x64 at 73d20a40."
},
"windows-x64": {
"binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.exe",
"console_binary": "engine/windows-x64/tinqs.windows.editor.x86_64.mono.console.exe",
"godotsharp": "engine/windows-x64/GodotSharp",
"version": "4.7.2.stable.mono.custom_build.0ec39c954",
"version": "4.7.2.stable.mono.custom_build.73d20a40b",
"engine_repo": "tinqs/engine",
"engine_commit": "0ec39c954",
"sha256": "55fcb2db436fb5b06e3a5245c05894cb0105319ad57ddd7c000275adca3956c2",
"sha256_console": "92deb0326e1b9046bb0859d6f445494be291ec8ce0bec232054128419aacc874",
"engine_commit": "73d20a40b8",
"sha256": "f1ea64475162b27e202d1b225ba2057e6c8481d9973de323f139c581c84a2f8d",
"sha256_console": "265f8133999528aa06f919870f58f7c04e55a448da0c6221e093ce76710e5bc2",
"target": "editor",
"built_on": "2026-10-17",
"built_by": "Ozan/Forge via ZCode (forge-windows-gpu-diet-r0-p5 handoff)",
"built_on": "2026-10-19",
"built_by": "Ozan/Forge via ZCode (fast publish, oracle + smoke verified post-push)",
"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 now carries 0ec39c95 — same commit as macos-arm64 (Forge rebuild per handoff forge-windows-gpu-diet-r0-p5): IN_NORMAL_ROUGHNESS_PASS spatial built-in (heavy materials skip texture work in the SSAO/SSIL normal-roughness pre-pass); 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), 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 + GetErrorRecords + SetCrashContext present). Editor target only — template_release in this folder is still the 1e7be28b tree (rebuild it before the next Windows game export). D3D12 Agility DLLs (D3D12Core.dll, d3d12SDKLayers.dll) are NOT shipped — the game runs Vulkan, same decision as the 2026-10-05 publish. Game pin: ariki-game project.godot tinqs/required_engine_build = 4.7.2@0ec39c954 (set 2026-10-17 after both platforms carried 0ec39c95). Crash-report verification checklist (8 steps, engine .agents/wiki/crash-freeze-and-error-reporting.md) still owed on Windows."
"note": "Windows carries 73d20a40b \u2014 SAME hash as macos-arm64 (built at 73d20a40b8): the d49400463 pair (parallel replay+recording with the VUID-00050 pool reset; see its note in git history) PLUS 219b914c18 fix(rd) \u2014 parallel draw recording sub-recordings nest: a recording worker that waits inside its slice (get_pipeline waiting on an ubershader compile) could run another slice's task on the same thread and its end cleared the thread-local instruction target, so the outer slice appended into the MAIN draw list concurrently with the render thread (realloc under a live instruction) \u2014 Windows FATAL p_idx >= _len in add_draw_list_bind_vertex_buffers on the Ultra bench (#250); begin now pushes the current target and end restores it; oracle Vulkan/MoltenVK 10/10, Metal 5/5. PLUS 73d20a40b8 fix(texture_rd) \u2014 the RS texture is allocated before the render-thread bind is queued, so main-thread get_rid() no longer races the render thread's write of texture_rid (a material could keep the magenta placeholder for the session; Ariki's FFT ocean drew milky/opaque on Mac and Windows); Texture2DRD, TextureLayeredRD, Texture3DRD. GodotSharp regenerated from this binary \u2014 Api AND Tools. VERIFIED POST-PUSH on the published binary (RTX 5080): parallel_draw_replay oracle vulkan --gpu-validation 10/10 exit 0 ZERO VUID lines; draw_indirect_count d3d12 + debug layer 22/0 + expected SKIP base-instance line; multimesh_cull_pool d3d12 + debug layer 4524/4524, 0 D3D12 errors; headless game boot clean (0 binding errors). Owed on Windows (carried): tests=yes unit suites, crash checklist (8 steps), template_release still 1e7be28b. D3D12 Agility DLLs not shipped (Vulkan game)."
}
}
}