README: roadmap note reflects the final persistent-hook fix (not destroy)
The hook-removal fix evolved from disable->drain->destroy to the persistent-hook model (never free the trampoline during the session); update the roadmap summary to match the Lessons-learned detail. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
11
README.md
11
README.md
@@ -122,10 +122,13 @@ the game's sync mode** — it passes the swapchain's present mode through untouc
|
|||||||
throttles the mirror (vsync paces it): Sphere Spectacle requests `FIFO` and holds a steady 144 Hz
|
throttles the mirror (vsync paces it): Sphere Spectacle requests `FIFO` and holds a steady 144 Hz
|
||||||
with the layer attached. The **mock game now drives every backend uncapped** (DX9/10/11/12 + OpenGL +
|
with the layer attached. The **mock game now drives every backend uncapped** (DX9/10/11/12 + OpenGL +
|
||||||
Vulkan, thousands of fps — the slow vsync'd cadence was masking bugs), `mock_game_test` asserts each
|
Vulkan, thousands of fps — the slow vsync'd cadence was masking bugs), `mock_game_test` asserts each
|
||||||
keeps a healthy present rate while capturing, and that faster stress **exposed and fixed a
|
keeps a healthy present rate while capturing, and (now also polling the input/focus/MKB APIs) that
|
||||||
hook-removal use-after-free** (the inline-hook removal now disables → drains → destroys, and the
|
faster stress **exposed and fixed a family of hook install/remove races** — inline hooks are now
|
||||||
shared drain settles before concluding, so a backend presenting at thousands/s survives the
|
*persistent* (created once, enable/disable, never freeing the trampoline during the session),
|
||||||
hook/unhook storm). DX12's higher capture cost was traced to the inherent D3D11On12 bridge (not
|
installed via `install_inline` (populate the global before patching the bytes), drained with a
|
||||||
|
settle-before-zero-check, plus focus-specific ordering fixes — so spamming a subsystem on/off is
|
||||||
|
always safe (see **Lessons learned**). DX12's higher capture cost was traced to the inherent
|
||||||
|
D3D11On12 bridge (not
|
||||||
`CreateWrappedResource`) and documented; a native-D3D12 copy path is the remaining (deferred)
|
`CreateWrappedResource`) and documented; a native-D3D12 copy path is the remaining (deferred)
|
||||||
improvement. See **Lessons learned** and the test suite for each. Open directions: per-game profiles,
|
improvement. See **Lessons learned** and the test suite for each. Open directions: per-game profiles,
|
||||||
multi-guest virtual-pad mapping, continuous raw-mouse *movement* forwarding (the MKB event stream is
|
multi-guest virtual-pad mapping, continuous raw-mouse *movement* forwarding (the MKB event stream is
|
||||||
|
|||||||
Reference in New Issue
Block a user