docs(M03): accept terrain chunk LOD planner

This commit is contained in:
2026-07-16 09:45:09 +04:00
parent f36fabb8e1
commit b568768866
2 changed files with 16 additions and 4 deletions
@@ -78,11 +78,14 @@ a scene-free `TerrainChunkLodPlanner` with immutable policy and typed focus inpu
## Status ## Status
- State: handoff - State: accepted
- Done: immutable policy, pure planner, both loader call sites, regressions and docs - Done: immutable policy, pure planner, both loader call sites, regressions and docs
- Next: milestone integrator merge and asset-backed performance acceptance later in M03 - Next: asset-backed performance acceptance and further terrain-service extraction later in M03
- Blocked by: - Blocked by:
<!-- OPENWC_HANDOFF:READY:M03-RND-TERRAIN-LOD-PLANNER-001:eb94cfc -->
<!-- OPENWC_INTEGRATION:ACCEPTED:M03-RND-TERRAIN-LOD-PLANNER-001:f36fabb -->
## Handoff ## Handoff
- Commit: `eb94cfc` (`refactor(M03): extract terrain chunk LOD planner`) - Commit: `eb94cfc` (`refactor(M03): extract terrain chunk LOD planner`)
@@ -96,3 +99,5 @@ a scene-free `TerrainChunkLodPlanner` with immutable policy and typed focus inpu
- Documentation updated: `terrain-chunk-lod-planner.md`, module registry, - Documentation updated: `terrain-chunk-lod-planner.md`, module registry,
`world-renderer.md`, `RENDER.md`, inline public API documentation and data-flow, `world-renderer.md`, `RENDER.md`, inline public API documentation and data-flow,
lifecycle and sequence diagrams lifecycle and sequence diagrams
- Integration: accepted in master merge `f36fabb`; post-merge planner, facade,
internal-access and manifest gates passed
+9 -2
View File
@@ -27,10 +27,11 @@ Runtime и Editor используют facade; planner/scheduler тестиру
## Evidence ## Evidence
- Date: 2026-07-16 - Date: 2026-07-16
- Revision/worktree: master merges `7ece2ab`, `7e35de7`, `80cb084`, `d6e5b53`, `c69abd6`, `606770c`, `630a0c1`; - Revision/worktree: master merges `7ece2ab`, `7e35de7`, `80cb084`, `d6e5b53`, `c69abd6`, `606770c`, `630a0c1`, `f36fabb`;
packages `M03-RND-SCHEDULER-001`, `M03-RND-INTERNAL-ACCESS-GATE-001`, packages `M03-RND-SCHEDULER-001`, `M03-RND-INTERNAL-ACCESS-GATE-001`,
`M03-RND-FACADE-GROUND-QUERY-001`, `M03-RND-FACADE-ENVIRONMENT-001`, `M03-RND-FACADE-GROUND-QUERY-001`, `M03-RND-FACADE-ENVIRONMENT-001`,
`M03-RND-FACADE-ENTITY-001`, `M03-RND-TERRAIN-CACHE-SERVICE-001` `M03-RND-FACADE-ENTITY-001`, `M03-RND-TERRAIN-CACHE-SERVICE-001`,
`M03-RND-TERRAIN-LOD-PLANNER-001`
- Commands: dedicated scheduler/planner/facade/focus/coordinate/manifest/shutdown - Commands: dedicated scheduler/planner/facade/focus/coordinate/manifest/shutdown
headless verifiers; Godot cold editor parse; coordination, documentation and diff gates. headless verifiers; Godot cold editor parse; coordination, documentation and diff gates.
- Results: scheduler `cases=6 iterations=20000 elapsed_ms=10.216`; planner - Results: scheduler `cases=6 iterations=20000 elapsed_ms=10.216`; planner
@@ -47,6 +48,8 @@ Runtime и Editor используют facade; planner/scheduler тестиру
`delegation=9 entity_contract=6`, while character presentation remained `9/10/3/1`. `delegation=9 entity_contract=6`, while character presentation remained `9/10/3/1`.
Terrain quality cache passed `contract_cases=15 loader_calls=3`; internal-access Terrain quality cache passed `contract_cases=15 loader_calls=3`; internal-access
inventory decreased to `42` because the loader no longer owns the LRU-order field. inventory decreased to `42` because the loader no longer owns the LRU-order field.
Terrain chunk LOD planner passed `cases=7 iterations=250 elapsed_ms=12.630`;
post-merge facade, internal-access and `7/7` manifest gates remained green.
M02 terrain-query regression M02 terrain-query regression
remained green (13 pre-existing expired M00 claim warnings). remained green (13 pre-existing expired M00 claim warnings).
- Fidelity comparison: all 16 historical operation limits and drain sites were - Fidelity comparison: all 16 historical operation limits and drain sites were
@@ -60,6 +63,8 @@ Runtime и Editor используют facade; planner/scheduler тестиру
baseline plans remain unchanged by the new present/remove ownership boundary. baseline plans remain unchanged by the new present/remove ownership boundary.
Terrain revisit cache retains the same admitted/excluded sources, LRU touch/trim, Terrain revisit cache retains the same admitted/excluded sources, LRU touch/trim,
profile capacities and three loader adapter sites; no cache format changed. profile capacities and three loader adapter sites; no cache format changed.
Chunk LOD keeps horizontal XZ chunk-center distance, inclusive squared thresholds,
sparse-index omission and raw negative-radius squaring at both loader call sites.
No new build-12340 parity claim is made; asset-backed visual/p95/p99 comparison remains pending. No new build-12340 parity claim is made; asset-backed visual/p95/p99 comparison remains pending.
- Changed files: scene-free scheduler and verifier; streamer budget composition/ - Changed files: scene-free scheduler and verifier; streamer budget composition/
permit delegation; scheduler module spec; world renderer/module registry/RENDER notes; permit delegation; scheduler module spec; world renderer/module registry/RENDER notes;
@@ -67,6 +72,7 @@ Runtime и Editor используют facade; planner/scheduler тестиру
immutable environment snapshot, facade/sky adapter, migrated checkpoint time input, immutable environment snapshot, facade/sky adapter, migrated checkpoint time input,
contract-v1 entity snapshot, renderer-owned entity presenter, runtime composition, contract-v1 entity snapshot, renderer-owned entity presenter, runtime composition,
scene-free terrain quality Mesh cache and loader store/restore/clear adapters, scene-free terrain quality Mesh cache and loader store/restore/clear adapters,
immutable terrain chunk LOD policy, pure planner and both loader plan adapters,
expanded facade/internal-access/coordinate verifiers; work-package claims and this evidence. expanded facade/internal-access/coordinate verifiers; work-package claims and this evidence.
- Remaining risks: queue storage length and worker concurrency/stale-result logic - Remaining risks: queue storage length and worker concurrency/stale-result logic
remain streamer-owned; cancellation stops new permits but does not interrupt remain streamer-owned; cancellation stops new permits but does not interrupt
@@ -74,5 +80,6 @@ Runtime и Editor используют facade; planner/scheduler тестиру
or indoor state; entity PackedScene loading is synchronous and not accepted for or indoor state; entity PackedScene loading is synchronous and not accepted for
network-scale hot paths; terrain cache is entry-count bounded without Mesh-byte network-scale hot paths; terrain cache is entry-count bounded without Mesh-byte
metrics and the remaining terrain build/tasks/state/finalization stay monolithic; metrics and the remaining terrain build/tasks/state/finalization stay monolithic;
chunk LOD asset-backed p95/p99 and visual acceptance remain pending;
M03 still needs further terrain/M2/WMO/liquid service extraction M03 still needs further terrain/M2/WMO/liquid service extraction
and dependency/performance acceptance. and dependency/performance acceptance.