2.9 KiB
Current Project Audit
Baseline command:
cargo xtask ci
Result on 2026-07-18:
- canonical pipeline passes locally with Rust 1.97.1: formatting, policy,
shader provenance, workspace tests,
clippy, docs andcargo denyare executed throughcargo xtask ci; rust-toolchain.tomlpins Rust 1.97.1 and installs only thex86_64-pc-windows-msvctarget; Linux and macOS target installation is not part of the default developer setup;- internal path dependencies are version-pinned and the Windows-only winit
graph enables only
rwh_06, excluding Unix window-system dependencies; cargo denyruns without advisory exceptions in the supported Windows graph.
Native Vulkan evidence:
- Windows x86_64 local smoke passed again on 2026-07-18 with Rust 1.97.1, the system Vulkan loader 1.4.350, and an AMD Radeon Pro WX 3200 Series;
- the smoke created a Win32 surface and swapchain, presented 300 frames, exercised a controlled resize (three observed resize events and two swapchain recreations), and shut down with zero validation warnings and errors;
- Windows is the sole supported runtime target for this project; Linux and macOS smoke gates are explicitly out of scope.
Scope labels:
- Stage 0 codebase gates: locally evidenced.
- Stage 0 Windows native runtime: locally evidenced.
- Linux/macOS runtime and cross-platform hosted CI: out of scope.
Current architecture contract
The standalone engine keeps binary formats, the resource graph, simulation,
animation math and backend-neutral render commands independent from the GPU
adapter. Windows presentation uses winit, raw-window-handle, ash-window
and ash; only the Vulkan/FFI adapters may contain narrowly documented
unsafe code. Raw Vulkan handles do not cross that boundary.
The baseline is Vulkan 1.1 with surface, Win32-surface and swapchain support,
binary semaphores/fences and a classic render-pass path. Device capability is
queried at runtime; dynamic rendering, descriptor indexing, synchronization2,
timeline semaphores and extended dynamic state are optional capability-gated
enhancements, not requirements. The canonical initial texture upload is RGBA8
UNORM. Headless builds remain independent of winit, Vulkan and a window
system.
Current stage model
The active implementation plan has five dependency-ordered stages:
- reproducible Windows/Vulkan foundation;
- paths, VFS and lossless archives;
- prototype graph and prepared CPU assets;
- static Vulkan model/terrain viewer;
- animation/FX runtime and transactional map/mission/world vertical slice.
Contract tests and failure tests precede implementation. Synthetic checks never read licensed roots; licensed corpus checks use absolute paths from the local manifest. Backend-neutral command capture precedes pixel comparison, and GPU addresses, allocator addresses and driver timing are excluded from deterministic state hashes.