48 lines
4.0 KiB
Markdown
48 lines
4.0 KiB
Markdown
# M00 — Renderer Baseline
|
|
|
|
<!-- OPENWC_TARGET:ACTIVE -->
|
|
|
|
## Outcome
|
|
|
|
Получить воспроизводимую точку отсчёта текущего renderer до архитектурной декомпозиции.
|
|
|
|
## Steps
|
|
|
|
- [x] Зафиксировать версию Godot, backend, hardware/profile и cache state.
|
|
- [x] Выбрать контрольные позиции: terrain, ADT boundary, dense M2, large WMO, liquid, animated M2, sky transition.
|
|
- [x] Объединить существующие renderer smoke scripts в документированный запуск без изменения visual behavior.
|
|
- [x] Снять deterministic screenshots и metadata для каждой позиции.
|
|
- [x] Записать cold/warm показатели frame time p50/p95/p99, max hitch, memory, queues и load time.
|
|
- [x] Зафиксировать cache format versions и правила invalidation.
|
|
- [x] Добавить regression manifest, не содержащий proprietary assets.
|
|
- [x] Обновить `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
|
|
|
|
```powershell
|
|
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.
|