Roadmap: add the two Vulkan tasks (perf collapse + suspended-inject)

Real-game testing of Sphere Spectacle (144 FPS, no focus throttle, runs without
Steam) surfaced two genuine defects the earlier "validation" missed:

1. The implicit-layer capture drops the game to ~3 FPS -- it stalls the present
   thread on a full GPU readback every frame. Vulkan support is meaningless until
   capture is (near-)free.
2. The inline-hook (suspended-inject) path must actually work on this title, or
   be proven a true limitation -- Steam is not the reason it currently doesn't.

Final verification of both paths is to be done with the game launched through
Steam. Tracked as Current tasks; will move to Done as each lands.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-23 07:40:49 +02:00
parent 82a6328b1b
commit 60957775b7

View File

@@ -108,7 +108,23 @@ default** and covers anything the hooked path doesn't.
## Roadmap ## Roadmap
The near-term tracked tasks are complete: injection hardening (the cross-backend safe-unhook drain), ### Current tasks
- **Vulkan capture has a catastrophic performance cost.** Against a real game (Sphere Spectacle,
144 FPS uncapped, no focus throttling) the implicit-layer capture path drops the game to ~3 FPS —
unplayable, which makes Vulkan support meaningless. The capture stalls the game's present thread
every frame; it must be made (near-)free so the game holds its frame rate while mirroring. Applies
to the shared read-back design in both `vk_layer/coop_vk_layer.cpp` and `hook/src/vk_hook.cpp`.
- **The inline-hook (suspended-inject) Vulkan path must work, or be proven a true limitation.**
Sphere Spectacle does *not* require Steam — the exe can be launched directly (and suspended, with
`coop_hook.dll` injected before it runs any code). Either make the early inline `vk_hook` capture
this game, or determine and document the genuine reason it cannot (Steam is not the reason).
Final verification of both paths must be with the game launched **through Steam**
(`steam://rungameid/1123040`).
### Done
The earlier tracked tasks are complete: injection hardening (the cross-backend safe-unhook drain),
two-path audio-format correlation (rate + channels/bit-depth recovery), mouse + keyboard forwarding two-path audio-format correlation (rate + channels/bit-depth recovery), mouse + keyboard forwarding
for DirectInput and Raw Input games, and real-game Vulkan validation (`coop_vk_validate` against for DirectInput and Raw Input games, and real-game Vulkan validation (`coop_vk_validate` against
Sphere Spectacle). See **Lessons learned** and the test suite for each. Open directions: per-game Sphere Spectacle). See **Lessons learned** and the test suite for each. Open directions: per-game