Compare commits
33
Commits
5171b5979b
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
07f7b42d64 | ||
|
|
76edf9ccc9 | ||
|
|
c632796638 | ||
|
|
736e3e9bc3 | ||
|
|
05704fd826 | ||
|
|
74072b67d7 | ||
|
|
af72922179 | ||
|
|
6b7dab6242 | ||
|
|
e16736c518 | ||
|
|
17d80b0004 | ||
|
|
017badfc4d | ||
|
|
c1b7e0809a | ||
|
|
22943169cc | ||
|
|
4485763114 | ||
|
|
431d213451 | ||
|
|
bde94a1bca | ||
|
|
ddb10953c6 | ||
|
|
004ca6d959 | ||
|
|
26cc48e674 | ||
|
|
bb9c51a665 | ||
|
|
49ab3756b4 | ||
|
|
76f088e6a0 | ||
|
|
bdb2dc8ca8 | ||
|
|
9d90e417ba | ||
|
|
50ac90c232 | ||
|
|
187d0dace5 | ||
|
|
74aa47df5d | ||
|
|
f0a8bcfb2e | ||
|
|
871000bcf4 | ||
|
|
b16a4afb4a | ||
|
|
f277a0e30a | ||
|
|
935b73e624 | ||
|
|
1f19c87607 |
No files matched your search
@@ -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,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`.
|
|
||||||
@@ -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.
|
`tinqs/engine`, `tinqs/ariki-game`, `tinqs/ariki-sim` — this repo only holds built output.
|
||||||
|
|
||||||
- macOS arm64: engine 4.7, native Terrain3D module, GodotSharp shipped.
|
- 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 —
|
- Windows x64: engine 4.7, built on Forge, GodotSharp shipped.
|
||||||
see `.agents/handoffs/forge-windows-4.7.md`.
|
|
||||||
|
|
||||||
## In flight
|
## 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
|
- 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).
|
`docs/ai/plans/build-pipeline-architecture-2026-06-07.md` (hub repo, not here).
|
||||||
|
|
||||||
|
|||||||
@@ -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** (`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** (`b1bc0aef`) — upstream bugfixes + static shadow cache (no memory query yet) | 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 `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 `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 —
|
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.
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.
BIN
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.
BIN
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.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Loaded 100 of 296 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user