3.9 KiB
3.9 KiB
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,80cb084,d6e5b53,c69abd6; packagesM03-RND-SCHEDULER-001,M03-RND-INTERNAL-ACCESS-GATE-001,M03-RND-FACADE-GROUND-QUERY-001,M03-RND-FACADE-ENVIRONMENT-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; plannercases=5 average_ms=1.804; facade/focus passed; coordinate boundaryfiles=111 consumers=6; renderer manifest retained7/7checkpoints; shutdown ownership and repository gates passed. Internal-access gate additionally derived43private symbols and found no forbidden access across7gameplay and9EditorPlugin-package sources plus the terrain probe. Ground facade passeddelegation=5 ground_contract=2; coldRenderedGroundSample contract=3; environment integration passed cold snapshotcontract=5and facadedelegation=6 environment_contract=7; dry-run retained all7/7plans and applied the dusk checkpoint attime=19.00. M02 terrain-query regression remained green (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.
Rendered-ground diagnostics preserve the prior 5000-unit ray, 3x3 search and
2/5/10/20/40-unit nearby fallback while hiding mutable renderer state. Environment snapshots preserve the prior fixed-clock assignments while DBC profile/area/skybox selection, interpolation, fog, sun and shader rules remain 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; renderer-owned ground sample, facade/loader ground query, migrated terrain probe, immutable environment snapshot, facade/sky adapter, migrated checkpoint time input, expanded facade/internal-access/coordinate verifiers; 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; the environment snapshot currently covers world time but not weather or indoor state; M03 still needs entity facade commands, service extraction and dependency/performance acceptance.