coord(M03): claim WMO render build planner
This commit is contained in:
@@ -0,0 +1,92 @@
|
|||||||
|
# M03-RND-WMO-RENDER-BUILD-PLANNER-001 — WMO render build step planner
|
||||||
|
|
||||||
|
<!-- OPENWC_CLAIM:M03-RND-WMO-RENDER-BUILD-PLANNER-001:sindo-main-codex:2026-07-20 -->
|
||||||
|
|
||||||
|
## Ownership
|
||||||
|
|
||||||
|
- Target: M03
|
||||||
|
- Program: RND
|
||||||
|
- Owner/Agent ID: sindo-main-codex
|
||||||
|
- Branch: `work/sindo-main-codex/m03-wmo-render-build-planner`
|
||||||
|
- Lease expires UTC: 2026-07-20
|
||||||
|
- Integrator: M03 milestone integrator
|
||||||
|
|
||||||
|
## Outcome
|
||||||
|
|
||||||
|
Extract the pure one-operation WMO render build cursor decision from the loader
|
||||||
|
while preserving mesh-before-MultiMesh ordering and one budget permit per group.
|
||||||
|
|
||||||
|
## Non-goals
|
||||||
|
|
||||||
|
- Move Nodes, Resources, materials, jobs, queues, cancellation or permits.
|
||||||
|
- Change WMO placement, cache loading, transforms, visibility or shadows.
|
||||||
|
- Change build ordering, group names, editor ownership or finalization thread.
|
||||||
|
- Change cache formats, settings, presets or renderer diagnostics.
|
||||||
|
- Claim asset-backed WMO fidelity or p95/p99 acceptance.
|
||||||
|
|
||||||
|
## Paths
|
||||||
|
|
||||||
|
- Exclusive: `src/render/wmo/wmo_render_build_step_planner.gd`,
|
||||||
|
`src/tools/verify_wmo_render_build_step_planner.gd`,
|
||||||
|
`docs/modules/wmo-render-build-step-planner.md`, this claim
|
||||||
|
- Shared/hotspots: `src/scenes/streaming/streaming_world_loader.gd`,
|
||||||
|
`docs/modules/world-renderer.md`, `docs/modules/README.md`, `RENDER.md`,
|
||||||
|
`targets/03-renderer-facade.md`
|
||||||
|
- Generated/ignored: `.godot`, native DLL, generated ADT/WMO resources, caches
|
||||||
|
and proprietary renderer corpus
|
||||||
|
|
||||||
|
## Contracts and data
|
||||||
|
|
||||||
|
- Input: mesh count/index and MultiMesh count/index
|
||||||
|
- Output: `mesh`, `multimesh` or `complete` operation, selected index and next
|
||||||
|
cursor values
|
||||||
|
- Mesh is selected while its cursor is below count; MultiMesh is selected only
|
||||||
|
after mesh exhaustion; complete follows both exhausted ranges
|
||||||
|
- Loader retains cursor adoption, Resource array access, Node creation, material
|
||||||
|
refresh, ownership, queue cancellation and budget permit consumption
|
||||||
|
- Cache/schema/coordinate/profile versions: unchanged
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- Requires: current master `1e73e59`, accepted WMO placement registry/resolver
|
||||||
|
- Blocks: further WMO render build state decomposition
|
||||||
|
- External state: none; verification uses scalar synthetic fixtures
|
||||||
|
|
||||||
|
## Verification
|
||||||
|
|
||||||
|
- Commands: dedicated ordering/cursor/empty/raw-edge/source/timing verifier;
|
||||||
|
WMO registry/resolver/material/shutdown plus M2/terrain/facade/internal-access/
|
||||||
|
manifest/scheduler/streaming/coordinate/docs/coord gates
|
||||||
|
- Fidelity evidence: exact mesh-first, one-step cursor behavior preserved
|
||||||
|
- Performance budget: 20,000 pure plans under 1 second; no Node, Resource, RID,
|
||||||
|
task, queue, mutex, cache or file access
|
||||||
|
|
||||||
|
## Documentation deliverables
|
||||||
|
|
||||||
|
- Inline public planner API documentation
|
||||||
|
- New module spec with inputs/outputs, data flow, sequence, ownership,
|
||||||
|
failure/recovery, performance/fidelity limits and source map
|
||||||
|
- Renderer module registry, world renderer and `RENDER.md` updates
|
||||||
|
|
||||||
|
## Simplicity and naming
|
||||||
|
|
||||||
|
- Important name: `WmoRenderBuildStepPlanner`
|
||||||
|
- Simplest solution: one stateless function and three operation constants
|
||||||
|
- Rejected complexity: job class, iterator, generic cursor framework, callbacks,
|
||||||
|
signals or ownership of engine objects
|
||||||
|
- Unavoidable complexity: loader still has separate mesh/MultiMesh materializers
|
||||||
|
- Measured optimization evidence: bounded synthetic planning loop
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
- State: claimed
|
||||||
|
- Done: cursor and ownership boundary published
|
||||||
|
- Next: implement planner, migrate loader decision, tests and docs
|
||||||
|
- Blocked by:
|
||||||
|
|
||||||
|
## Handoff
|
||||||
|
|
||||||
|
- Commit:
|
||||||
|
- Results:
|
||||||
|
- Remaining risks:
|
||||||
|
- Documentation updated:
|
||||||
Reference in New Issue
Block a user