Files
open-wc/targets/00-render-baseline.md
sindoring ba81098797 test(M00): close renderer baseline milestone
Work-Package: M00-QAR-INTEGRATOR-CLOSEOUT-001
Agent: sindo-main-codex
Tests: post-merge render baseline dry-run; comparator self-test; coordination and documentation gates
Fidelity: records seven build-12340 reference categories and measured gaps without claiming parity
2026-07-13 13:16:52 +04:00

4.6 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-13
  • Revision/worktree: merged M00 implementation through f19c0c4; closeout worktree work/sindo-main-codex/m00-integrator-closeout.
  • Commands: .\tools\run_render_baseline.ps1 -Output user://render_baseline_m00_complete_2026-07-13 -CacheState existing -WaitSeconds 8 -MeasureSeconds 0.5 -ReferenceCheckpointDirectory .\sources\OpenWCReferenceCheckpoints -VisualComparisonReport user://render_baseline_m00_complete_2026-07-13/visual_comparison.json -VisualComparisonWidth 2560 -VisualComparisonHeight 1440; .\tools\run_render_baseline.ps1 -DryRun -WaitSeconds 0.1 -MeasureSeconds 0.1 -Output user://render_baseline_m00_post_merge; .\tools\verify_coordination.ps1; .\tools\verify_documentation.ps1.
  • Results: the final GUI run produced fourteen cold/warm captures for seven checkpoints and all seven required coverage categories, with compared=14 and missing=0. The post-merge dry-run passed project load, material, M2 unique-id dedupe, runtime-cache shutdown, manifest and five-point coordinate calibration checks. Coordination and documentation gates passed. Renderer shutdown follow-up removed retained Node/resource/RID diagnostics in focused and seven-checkpoint GUI runs.
  • Fidelity comparison: private original-client WoW 3.3.5a build 12340 references cover terrain, ADT boundary, dense M2, large WMO, liquid, animated M2 and sky transition. Every measured pair exceeds the strict visual tolerance and is recorded as a current gap rather than parity. Sky framing is approximately paired; animated M2 is asset-paired but placement-unpaired because the OpenWC Goldshire probe is synthetic. Full metrics and provenance are recorded in docs/M00_FINAL_PAIRED_EVIDENCE.md.
  • Changed files: RENDER.md, docs/RENDER_BASELINE.md, docs/M00_FINAL_PAIRED_EVIDENCE.md, docs/modules/world-renderer.md, renderer baseline scripts/verifiers, manifest/capture tooling, streaming shutdown ownership and M00 coordination claims.
  • Remaining risks: renderer parity is not claimed; documented terrain/material/placement/animation/lighting/liquid/culling gaps remain future renderer work. D3D12 descriptor heap creation can fall back to Vulkan. Godot can emit a timing-dependent anonymous zero-reference RefCounted teardown warning without retained Node/resource/RID ownership.