mirror of
https://github.com/Dingo-Shenanigans/ReSkate.git
synced 2026-10-24 18:16:27 +02:00
On Intel GPUs the overlay never drew: no Insert menu, and the pause menu's Multiplayer and Mod Options tabs were empty frames, since the overlay draws what is in them. The log stopped at "Registered DX12 swapchain" with nothing after it. The game is given Streamline's wrapper (sl.interposer.dll) around its swapchain, and the overlay hooked that wrapper's Present. On AMD and NVIDIA the game presents through the wrapper. On Intel the frames are presented on DXGI's own swapchain underneath, the wrapper is passed by, and no presentation reached the overlay. - The swapchain under a wrapper is hooked as well (Present, Present1, ResizeBuffers, ResizeBuffers1), found through Streamline's base-interface query. - It is registered beside the wrapper with the queue the wrapper was made with: it is the same chain, and it gives no queue of its own when asked. - A swapchain that presents without having been seen at creation is registered then, when it gives its queue. - The log says whose Present was hooked, when a wrapper was found, when the first presentation arrives, and why a presenting swapchain cannot be drawn on. Confirmed from an Arc A380 log up to "the first presentation reached the overlay". The last step, registering the underlying chain with the wrapper's queue, has not been run on Intel yet. Not yet checked on AMD or NVIDIA either, where both chains are now registered.