2026-10-18 02:50:40 +01:00
|
|
|
# Forge (Windows) — rebuild engine main at 9dcc5d45 (SSCS + hero combine + shadow fixes + indirect count)
|
|
|
|
|
|
|
|
|
|
Mac `engine/macos-arm64` is engine `9dcc5d45` (2026-10-18, `4.7.2.stable.mono.custom_build.9dcc5d458`). Windows is
|
|
|
|
|
still `7fb81364b`. **The game already pins `4.7.2@9dcc5d458`** (owner's call: publish Mac-only), so every Windows
|
|
|
|
|
engine is refused with the mismatch dialog until this is published. `TINQS_ENGINE_SKIP_CHECK=1` runs the old engine
|
|
|
|
|
meanwhile, but the sun then shows shadow acne (the game's sun bias 0.014 expects the #124348 bias fix).
|
|
|
|
|
|
|
|
|
|
## Build
|
|
|
|
|
`tinqs pull` the engine (main is `91b11b70` = `9dcc5d45` + docs only), build with the `windows-x64` manifest flags
|
|
|
|
|
(`platform=windows target=editor module_mono_enabled=yes -j32`). The `--version` hash will read `91b11b70…` unless
|
|
|
|
|
you `git checkout 9dcc5d45` first; either is fine (docs-only difference) — record what you built in the manifest.
|
|
|
|
|
Regenerate GodotSharp from that binary: `--generate-mono-glue modules/mono/glue`, then `build_assemblies.py
|
|
|
|
|
--godot-output-dir=bin --godot-platform=windows`. Publish the WHOLE `bin/GodotSharp` (`Api/` AND `Tools/`;
|
|
|
|
|
`Tools/` is always written to `bin/GodotSharp/Tools`, a scratch output dir has no `Tools/` and the editor `--import`
|
|
|
|
|
then fails with "Dependency resolution failed for GodotTools.dll").
|
|
|
|
|
|
|
|
|
|
## New since 7fb81364 (none of it compiled on Windows yet)
|
|
|
|
|
- `298bc2a6` `RenderingDevice.draw_list_draw_indirect_count`: D3D12 native path (`drivers/d3d12/rendering_device_driver_d3d12.cpp`).
|
|
|
|
|
- `2ce4f359` screen-space contact shadows for directional lights (compute shader `screen_space_contact_shadows.glsl`,
|
|
|
|
|
binding 39 in the Forward+ scene shader, `DirectionalLightData::sscs_index` at byte 64).
|
|
|
|
|
- `bb1f12e4` tight directional caster culling on each cascade's real frustum (upstream #121775).
|
|
|
|
|
- `5df5c8df` hero shadow min-combine (`RenderingServer.instance_light_directional_set_hero_shadow_spot`).
|
|
|
|
|
- `9dcc5d45` depth bias = `MAX(shadow_blur, 1)` scale (upstream #124348).
|
|
|
|
|
|
|
|
|
|
## Checks
|
|
|
|
|
1. Oracle: `bash tests/gpu_oracle/draw_indirect_count/run.sh <tinqs.windows.editor.x86_64.mono.exe> d3d12` from Git Bash.
|
|
|
|
|
Expect `ORACLE: 22 passed, 0 failed`, a `SKIP base-instance` line, exit 0 (engine wiki `draw-indirect-count.md`
|
|
|
|
|
§ Windows checklist; Mac/Metal was 24/24). Also the Vulkan driver if the game runs Vulkan there: `… run.sh <exe> vulkan`.
|
|
|
|
|
2. Game in-world on the new pair (pin satisfied):
|
|
|
|
|
- `env herocombine` status reports `mode combine (engine combine yes)`; the hero's spot shadow merges with the sun's.
|
|
|
|
|
- `env contactshadow on` → contact shadows under feet/grass; `--gpu-profile` shows `SSCS Main` / `Process SSCS`
|
|
|
|
|
(Mac M1 Max ≈ 0.43 ms at the beach); `env contactshadow length 0|2`, `blur 0` change it live; `off` restores.
|
|
|
|
|
- Sun shadows: no acne stripes, feet keep contact on bright sand (bias 0.014 x MAX(0.35, 1)).
|
|
|
|
|
3. Publish windows-x64 here (binary + console binary + complete GodotSharp, sha256s, manifest note, CRLF), push.
|
2026-10-18 04:35:59 +01:00
|
|
|
|
|
|
|
|
## 2026-10-18 Windows side done (Forge/ZCode)
|
|
|
|
|
|
|
|
|
|
Windows published `9dcc5d458` (built at `9dcc5d458f` — docs-only commits excluded so both platforms + the pin
|
|
|
|
|
share one hash). Whole `GodotSharp` published (Api + Tools). Headless game boot: clean, 0 binding errors.
|
|
|
|
|
- Oracle `draw_indirect_count` d3d12 (RTX 5080): **22 passed, 2 failed** — the 2 base-instance cases, the
|
|
|
|
|
documented D3D12 gap (expected-fail per draw-indirect-count.md; got `[0]`/`[0,1]` where `first_instance` is
|
|
|
|
|
ignored). They RAN rather than SKIPped — the skip gate seems D3D12-absent; same result either way.
|
|
|
|
|
- `--gpu-validation` could NOT run: D3D12 debug layer is not installed on Forge (`_initialize_debug_layers`
|
|
|
|
|
→ ERR_QUERY_FAILED → context fell back to Vulkan, which then reports SUPPORTS_DRAW_INDIRECT_COUNT false —
|
|
|
|
|
the capability bit only exists on Metal/D3D12 in this fork). Install Graphics Tools for the validation pass.
|
|
|
|
|
- In-world checks (herocombine / contactshadow / SSCS profile / sun acne at bias 0.014): still owed here.
|
2026-10-18 05:06:52 +01:00
|
|
|
|
|
|
|
|
## 2026-10-18 Windows moved to engine main 4fde0e94d (G2 pooled cull) — Kraken note
|
|
|
|
|
|
|
|
|
|
Engine main gained `4fde0e94d7` (G2 pooled cull) after the 9dcc5d45 pair. Forge rebuilt it (8 min incremental)
|
|
|
|
|
and published windows-x64 `4fde0e94d`: GodotSharp regenerated (MultimeshGpuCullSetPooled /
|
|
|
|
|
MultimeshGpuCullSetShadowFixedBand / MultimeshSetGpuShadowBand present), headless game boot clean.
|
|
|
|
|
Game pin relaxed to version-only `4.7.2` (a lone Windows publish must not lock Mac out — same protocol as
|
|
|
|
|
7fb81364). **Kraken: publish your `4fde0e94d` macos-arm64 build, then flip the pin to `4.7.2@4fde0e94d` in the
|
|
|
|
|
same game push.** Owed on Windows: `tests/gpu_oracle/multimesh_cull_pool` (D3D12 base-instance gap may bite the
|
|
|
|
|
pooled draws) and the in-world gpucull census (`multimesh_get_cull_command_offset`).
|