4.0 KiB
4.0 KiB
M00 — Renderer Baseline
Outcome
Получить воспроизводимую точку отсчёта текущего renderer до архитектурной декомпозиции.
Steps
- Зафиксировать версию Godot, backend, hardware/profile и cache state.
- Выбрать контрольные позиции: terrain, ADT boundary, dense M2, large WMO, liquid, animated M2, sky transition.
- Объединить существующие renderer smoke scripts в документированный запуск без изменения visual behavior.
- Снять deterministic screenshots и metadata для каждой позиции.
- Записать cold/warm показатели frame time p50/p95/p99, max hitch, memory, queues и load time.
- Зафиксировать cache format versions и правила invalidation.
- Добавить regression manifest, не содержащий proprietary assets.
- Обновить
RENDER.mdссылкой на baseline и известные расхождения с клиентом 3.3.5a.
Fidelity evidence
- Сравнить контрольные сцены с оригинальным клиентом 3.3.5a при максимально совпадающих map position, time и weather.
- Каждое видимое расхождение зарегистрировать: terrain/material, placement, animation, lighting, liquid или culling.
- Baseline не объявляет parity; он создаёт измеримый список gap.
Verification
godot --headless --path . --quit
godot --headless --path . --script res://src/tools/verify_render_materials.gd
godot --headless --path . --script res://src/tools/verify_m2_unique_dedupe.gd
godot --headless --path . --script res://src/tools/capture_render_checkpoints.gd -- --dry-run --wait 0.1
Exit criteria
Один документированный запуск создаёт отчёт baseline; контрольные точки воспроизводимы; gaps и budgets записаны; последующий refactor можно объективно сравнить.
Evidence
- Date: 2026-07-10
- Revision/worktree:
93bfe11+ worktree baseline changes. - Commands:
.\tools\run_render_baseline.ps1 -DryRun -WaitSeconds 0.1 -MeasureSeconds 0.1 -Output user://render_baseline_runner_test;.\tools\run_render_baseline.ps1 -Output user://render_baseline_m00_2026-07-10 -CacheState existing. - Results: headless load, renderer material smoke, M2 unique-id dedupe and manifest contract passed. Full run produced 14 PNGs and 14 result records for 7 cold/warm checkpoints. Actual renderer was Godot 4.6.1, Vulkan Forward+, NVIDIA RTX 5070, 1280x900, High profile, with all seven cache families present. Cold p95 range was 31.585..86.537 ms with max hitch 258.456 ms; warm p95 range was 18.824..38.085 ms with max hitch 163.363 ms. The final streaming snapshots had an empty tile queue. Report:
user://render_baseline_m00_2026-07-10/report.json. - Fidelity comparison: fixed positions/time/profile and current visual gaps are recorded, but no approved paired screenshots from the original WoW 3.3.5a build 12340 were available. This baseline does not claim parity.
- Changed files:
RENDER.md,docs/RENDER_BASELINE.md,src/scenes/streaming/streaming_world_loader.gd,src/tools/capture_render_checkpoints.gd,src/tools/render_baseline_manifest.json,src/tools/verify_render_baseline_manifest.gd,tools/run_render_baseline.ps1,targets/00-render-baseline.md. - Remaining risks: original-client paired comparison is still required before DONE; D3D12 descriptor heap creation failed and the measured run fell back to Vulkan; shutdown reported leaked renderer RIDs/resources; current captures intentionally preserve visible terrain/placement/material/animation gaps, including the synthetic native animated M2 probe; perceptual image diff/tolerance is documented but not automated yet.