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:
18
README.md
18
README.md
@@ -108,7 +108,23 @@ default** and covers anything the hooked path doesn't.
|
||||
|
||||
## 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
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user