Add roadmap task: validate Vulkan backend against a real game

Adds a fourth Current Task: exercise the Vulkan capture path end-to-end on
Sphere Spectacle (Steam appid 1123040) via both early-presence methods
(Auto-attach and the implicit coop_vk_layer), verifying capture, image
correctness, and no performance regression.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-23 01:16:12 +02:00
parent 7d29abf60e
commit 79399e88f1

View File

@@ -151,6 +151,18 @@ default** and covers anything the hooked path doesn't.
(`IDirectInputDevice8::GetDeviceState/GetDeviceData`) don't see it. Add hooks for (`IDirectInputDevice8::GetDeviceState/GetDeviceData`) don't see it. Add hooks for
those paths to synthesize the forwarded input there too. those paths to synthesize the forwarded input there too.
- **Validate the Vulkan backend against a real game.** Exercise the Vulkan capture path
end-to-end on a shipping title — **Sphere Spectacle** (Steam appid 1123040,
`start steam://rungameid/1123040`) — not just `coop_mock_game`. Cover **both** early-presence
methods: **Auto-attach** (suspended-launch + inject + resume, so the hook arms before the game
calls `vkCreateInstance`) and the implicit **capture layer** (`coop_vk_layer` registered for the
game). For each, confirm: (a) it *captures* — frames reach the shared texture and advance; (b) the
mirrored image is *correct* — right resolution, letterboxed, correct colors/brightness (no
`*_SRGB` darkening, no BGRA/RGBA swizzle error), checked against a WGC reference and saved
screenshots; and (c) it doesn't *regress performance* — measure the game's present cadence /
frame time with capture off vs on and confirm no material drop (the per-frame `vkCmdCopyImageToBuffer`
read-back + present-semaphore re-chain must stay off the game's critical path).
## Building ## Building
Requirements: Windows 10/11, Visual Studio 2022 (MSVC + C++ workload), CMake ≥ 3.21. Requirements: Windows 10/11, Visual Studio 2022 (MSVC + C++ workload), CMake ≥ 3.21.