Files
open-wc/targets/03-renderer-facade.md
T

2.9 KiB
Raw Blame History

M03 — Renderer Facade and Safe Extraction

Outcome

Закрыть монолитный streamer стабильным API и постепенно извлечь тестируемые подсистемы без rewrite.

Steps

  • Ввести WorldRenderFacade для focus, environment, entity visuals, ground query и metrics.
  • Запретить gameplay/editor доступ к внутренним очередям streamer.
  • Извлечь pure StreamingTargetPlanner.
  • Извлечь RenderBudgetScheduler с bounded queues/cancellation.
  • Затем извлекать terrain, M2, WMO и liquid services по одному.
  • Сохранить cache versioning и main-thread GPU finalization rules.
  • Добавить dependency и performance regression checks.

Fidelity evidence

Все baseline checkpoints сравниваются до/после; placement, visibility, animation и materials не меняются без отдельной fidelity-задачи.

Exit criteria

Runtime и Editor используют facade; planner/scheduler тестируются без полного мира; p95/p99 и hitch budgets не хуже согласованного baseline.

Evidence

  • Date: 2026-07-16
  • Revision/worktree: master merges 7ece2ab, 7e35de7; packages M03-RND-SCHEDULER-001, M03-RND-INTERNAL-ACCESS-GATE-001
  • Commands: dedicated scheduler/planner/facade/focus/coordinate/manifest/shutdown headless verifiers; Godot cold editor parse; coordination, documentation and diff gates.
  • Results: scheduler cases=6 iterations=20000 elapsed_ms=10.216; planner cases=5 average_ms=1.804; facade/focus passed; coordinate boundary files=111 consumers=6; renderer manifest retained 7/7 checkpoints; shutdown ownership and repository gates passed. Internal-access gate additionally derived 43 private symbols and found no forbidden access across 7 gameplay and 9 EditorPlugin-package sources (13 pre-existing expired M00 claim warnings).
  • Fidelity comparison: all 16 historical operation limits and drain sites were preserved; chunk removal/create retain their shared removal-first budget. Defaults, quality presets, cache versions and visual rules are unchanged. 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/ permit delegation; scheduler module spec; world renderer/module registry/RENDER notes; gameplay/editor internal-access verifier; work-package claims and this evidence.
  • Remaining risks: queue storage length and worker concurrency/stale-result logic remain streamer-owned; cancellation stops new permits but does not interrupt in-flight work; M03 still needs remaining facade contracts, service extraction and dependency/performance acceptance.