3.7 KiB
3.7 KiB
M03-RND-WMO-RENDER-RESOURCE-CACHE-001 — WMO render resource cache state
Ownership
- Target: M03
- Program: RND
- Owner/Agent ID: sindo-main-codex
- Branch:
work/sindo-main-codex/m03-wmo-render-resource-cache - Lease expires UTC: 2026-07-20
- Integrator: M03 milestone integrator
Outcome
Extract lightweight-WMO render Resource cache, negative cache and asynchronous request bookkeeping from the loader while preserving loader-owned I/O and cache-format validation.
Non-goals
- Call
ResourceLoader, construct cache paths or inspect files. - Validate
WMOStreamingResourcescript identity or format version. - Own cached WMO scenes, live prototypes, placement/build jobs or Nodes/RIDs.
- Change fallback order, retry behavior, quality profiles or visual output.
- Claim asset-backed WMO fidelity, leak acceptance or traversal p95/p99.
Paths
- Exclusive:
src/render/wmo/wmo_render_resource_cache_state.gd,src/tools/verify_wmo_render_resource_cache_state.gd,docs/modules/wmo-render-resource-cache-state.md, this claim - Shared/hotspots:
src/scenes/streaming/streaming_world_loader.gd,src/tools/verify_render_runtime_cache_shutdown.gd,docs/modules/wmo-render-build-queue.md,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
- State keys are loader-normalized relative WMO paths copied as
String. - Cached values are already validated
Resourcereferences. - Pending values are cache paths for loader-owned
ResourceLoaderrequests. - Terminal request removal precedes validated-resource or missing-state adoption.
- Request/missing reset preserves accepted resources; full clear releases all.
- Cache/schema/coordinate/profile versions and validation rules remain unchanged.
Dependencies
- Requires: current master
c954704, accepted WMO render build queue - Blocks: further WMO cached-scene/load and materialization decomposition
- External state: none; verification uses synthetic Resources and paths
Verification
- Commands: dedicated lifecycle/request/cache/reset/diagnostics/source/timing verifier; WMO queue/planner/registry/resolver/material/shutdown plus adjacent renderer/streaming/coordinate/documentation/coordination gates
- Fixtures: synthetic Resource instances and normalized relative/cache paths
- Fidelity evidence: exact current cache/missing/request transitions preserved
- Performance budget: 100 cycles over 256 resource/request keys under 1 second
Documentation deliverables
- Inline public API docs
- Module specification with inputs/outputs, ownership and source map
- Data-flow, lifecycle/state and loader interaction sequence diagrams
- World-renderer, module registry, WMO queue and RENDER status updates
Simplicity and naming
- Important names introduced:
WmoRenderResourceCacheState - Simplest considered solution: one RefCounted around three Dictionaries
- Rejected complexity/abstractions: generic cache, callbacks, signals, mutexes, ResourceLoader wrapper, persistence layer or shared WMO/M2 cache hierarchy
- Unavoidable complexity and justification: partial reset must retain validated Resources while discarding pending/negative state at map reset and shutdown
- Measured optimization evidence: bounded synthetic store/request/reset loop
Status
- State: claimed
- Done: scope and state transitions identified
- Next: implement state holder, migrate loader adapters, verify and document
- Blocked by:
Handoff
- Commit:
- Results:
- Remaining risks:
- Documentation updated: