Utilizing Game Capture to engage G-Sync in Windowed OpenGL(+Vulkan) games

KuraiShidosha

New Member
I posted this on the OBS subreddit here: https://www.reddit.com/r/obs/comments/ague7t/utilizing_obs_game_capture_to_trigger_working/ I'm hoping by posting it here it will get more pertinent attention.

Basically as the title states, Game Capture hooking process enables windowed OpenGL games to engage variable refresh rate with G-Sync. This is not possible normally and I believe it's because the hook from OBS enables a D3D11 container to output to once it hooks into the game. This is pretty interesting to me and I have been doing lots of testing on it. So far the best results came from using 60 fps video recording in OBS, hooking the game then closing the OBS application. This allows the game-capture.dll to stay hooked to the game executable, enabling windowed G-Sync, without having any interference from OBS itself trying to capture and record frames. Disabling Preview almost provides the same level of performance and stability but it's just best to close the application altogether.

Unfortunately it doesn't work too well for playing at max refresh rate. I run a 144hz monitor and trying to set OBS video capture to 144 fps with fractional fps causes my games to lock at 72 fps with judder as the monitor doubles refresh rate to 144hz. Setting OBS to 60 works okay with 60 fps limiter in game, and any in-game fps limit below that works just fine. But it's above 60 that it starts to get kind of flakey. This might be related to using the new NVENC beta, I'll do more experiments with x264 etc and see how it works.

My goal is to hopefully see an extension usage of Game Capture that is a very simple hook and containment process to take the OpenGL (and eventually Vulkan) output of the game, send it off to a simple D3D11 container and output there with no interruptions or performance overhead. This would be a fantastic tool to supplement G-Sync Windowed mode, especially seeing as how all games today are headed that way with no true exclusive fullscreen present already in many games and emulators etc.

Thanks for reading and I look forward to hearing from others trying it out and maybe even what OBS developers think about this. The best possible outcome would be since you guys are already working closely with Nvidia, to possibly hand this information off to their engineers and let them work something up in-driver to do this natively.
 
Top