From d4412ff61014084869b68df3cf2c32384a94d947 Mon Sep 17 00:00:00 2001 From: BlackMark Date: Tue, 23 Jun 2026 08:38:46 +0200 Subject: [PATCH] Roadmap: add vsync-preservation, DX12 perf, and mock-game-all-backends tasks Follow-ups from real-game testing: 1. The Vulkan capture must not change the swapchain sync mode, and must not throttle/frame-limit capture (that's vsync's job). Remove the ~150 Hz throttle and prove the present mode/rate is unchanged with vs without the layer. 2. DX12 capture overhead (~0.34 ms) is higher than DX11 (~0.05) / GL (~0.09) due to the D3D11On12 bridge -- investigate and improve. 3. The mock game only drives D3D11/D3D12; add Vulkan/OpenGL/D3D9 renderers so every capture path has game-driven coverage (this gap is why the Vulkan stall slipped through). Make the mock game a real-world test across all backends. Co-Authored-By: Claude Opus 4.8 --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 4216926..7cabb56 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,22 @@ default** and covers anything the hooked path doesn't. ## Roadmap +### Current tasks + +- **The Vulkan capture must not change the swapchain's sync mode.** If the game vsyncs (e.g. FIFO at + 144 Hz), it must still vsync with the layer/hook attached; if it didn't, it must not start. The + capture is forbidden from throttling or frame-limiting — that is vsync's job. Remove the ~150 Hz + capture throttle and prove (measure) the present mode/rate is identical with and without the layer. +- **DX12 capture is measurably slower than the other backends — find out why and improve it.** The + present-thread overhead guard shows DX12 ~0.34 ms vs DX11 ~0.05 ms / OpenGL ~0.09 ms (the D3D11On12 + bridge). Investigate and reduce it. +- **The mock game must implement and test *every* rendering backend.** Today `coop_mock_game` only + drives D3D11/D3D12, so the Vulkan/OpenGL/D3D9 capture paths have no game-driven coverage (which is + why the Vulkan present-thread stall slipped through). Add Vulkan, OpenGL, and D3D9 renderers to the + mock game and exercise each through the capture + perf tests, so it serves as a real-world test. + +### Done + The near-term 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, real-game Vulkan validation (`coop_vk_validate` against Sphere