GSDX OpenGL Vsync + DWM/Aero issues
#1
Been meaning to post about this for awhile.  Saw some topic touching on it a year or so ago that trailed off with no solutions.

I'd like to use the OpenGL mode exclusively, but it has a fairly annoying issue that makes me avoid it in all games that don't need it:  It and Desktop Window Composition/Aero have a broken and forced vsync implementation.  Regardless of whether vsync is enabled in the emulator, or manually toggled in the Nvidia driver settings (have only tested with a few nvidia cards recently: 660, 970, and 1060 GTX models), Windows 8/10's DWM will force its own vsync on the window.  As most of you probably know, you can't disable DWM in 8/10.  The problem with this is that it'll cause the emulator to periodically skip and hitch in a jerky fashion.  The forced vsync will work right for a few seconds, then it'll skip frames in an unevenly paced fashion, then repeat.  This happens in fullscreen and windowed modes, since PCSX2 is a windowed app regardless.  

I can't be the only one who's noticed this.  Is there any fix in sight?  Is there an existing one?  Can someone else run a 60fps game such as Gradius V in Windows 8/10 + OpenGL mode to confirm?  It's just a shame that the better API for the emulator has this problem.  I presume this is not a problem in 7 with Aero disabled but it'd be nice if someone could confirm that too. 

Thanks for checking into it, and the wonderful emulator otherwise.  The improvements in the last year have been amazing.
Reply

Sponsored links

#2
Try the latest beta...yes there was thread about it before and a change was made that only exist on the beta.
At least here,the problem you are talking about disappeared
Reply
#3
(01-21-2017, 08:37 PM)vsub Wrote: Try the latest beta...yes there was thread about it before and a change was made that only exist on the beta.
At least here,the problem you are talking about disappeared

I only use the latest git builds.  Issue has remained in OpenGL pretty much as long as I've used it, over 3 Nvidia graphics cards on both Win 8 and 10 with various drivers.  Vsync is perfectly smooth in D3D, but randomly unpaced and hitchy in OpenGL.  If there's a combination of settings that fixes this I'd love to know about it.
Reply
#4
No idea...the last time I tried it(around 3 month ago)it was working fine(I can't check again anytime soon)

There was something else tho and it was different problem.
While playing some games that don't strain the gpu at all,the gpu switches to idle mode which makes it around 10 times or more weaker than full power and when switching modes from idle to full power that problem happens.

Try setting the gpu from the nvidia control panel to be at High Performance while using pcsx2 and try again
Reply
#5
(01-21-2017, 08:52 PM)vsub Wrote: No idea...the last time I tried it(around 3 month ago)it was working fine(I can't check again anytime soon)

There was something else tho and it was different problem.
While playing some games that don't strain the gpu at all,the gpu switches to idle mode which makes it around 10 times or more weaker than full power and when switching modes from idle to full power that problem happens.

Try setting the gpu from the nvidia control panel to be at High Performance while using pcsx2 and try again

Double checked and per usual I'm using single screen optimization and the max performance power profiles in both the driver and Windows.  It doesn't really seem like a performance thing, more like Windows is crappily syncing the frames in OGL mode.  I'm sure you've seen some games that act this way too.  Hey, feel free to test it at your leisure, I know it's a free product with free support.  Just thought I'd bring it up so you and others could test the OGL mode on their computers.  It really does show up in 60fps titles, usually doesn't take longer than 30-60 seconds for it to have an unpaced 'episode'.  

To give you specifics, I've got a 4670k at 4.1ghz on all cores, 16gb of DDR3, a 1060 GTX on the 376.33 driver, running a fully updated Win10.  Though I can confirm that swapping cards, drivers, and operating systems hasn't mattered.  Just a few minutes ago I tested with DPI display scaling on and off, in-emu vsync on and off, windowed and fullscreen.  Used Gradius V as a test case since the scrolling and high framerate make the issue stick out, and it unevenly skipped every 20-30 seconds on all settings in OGL mode. The issue is also present in lower framerate games too, such as Silent Hill 3/4 which make use of OpenGL's accuracy, but it's less obvious.
Reply
#6
I have the same issue. It doesn't just affect PCSX2 (Dolphin is also affected, for example, but BizHawk isn't), but it's definitely there, even with max performance enabled in the NVIDIA control panel.
Reply
#7
(01-21-2017, 09:56 PM)RibShark Wrote: I have the same issue. It doesn't just affect PCSX2 (Dolphin is also affected, for example, but BizHawk isn't), but it's definitely there, even with max performance enabled in the NVIDIA control panel.

I've been able to use vsync in Dolphin through the emulator's settings without the issue I'm seeing in PCSX2, personally.  I don't use the driver's vsync option and left it on the default setting of using whatever the application calls for.  Not to digress too much from the PCSX2 issue, but I think that Dolphin's vsync works because they somehow got windowed full screen to play nice with DWM or allowed you to properly go into full screen which is not an option in PCSX2.  Maybe an exclusive full screen mode would fix OGL by sidestepping DWM.  I dunno.  Hopefully this will be given another look by the devs, but thanks for confirming it on your end too.
Reply
#8
(01-21-2017, 10:28 PM)n1ghttrap Wrote: I've been able to use vsync in Dolphin through the emulator's settings without the issue I'm seeing in PCSX2, personally.  I don't use the driver's vsync option and left it on the default setting of using whatever the application calls for.  Not to digress too much from the PCSX2 issue, but I think that Dolphin's vsync works because they somehow got windowed full screen to play nice with DWM or allowed you to properly go into full screen which is not an option in PCSX2.  Maybe an exclusive full screen mode would fix OGL by sidestepping DWM.  I dunno.  Hopefully this will be given another look by the devs, but thanks for confirming it on your end too.

Dolphin uses exclusive fullscreen which is why you are not seeing the issue there.

I play in windowed, so this issue is noticable in both Dolphin and PCSX2, but other emulators like BizHawk have managed to avoid it somehow.

I do think a good first step for PCSX2 would be to add the option for exclusive fullscreen.
Reply
#9
The only fix I know is forcing G-Sync with Kaldaien's SpecialK dll. Check my post here: http://forums.pcsx2.net/Thread-GSdx-1-0?...#pid546579

However, that trick limits me to DX9 and DX11 renderers. It makes OpenGL crash. But I don't get any tearing anymore. It would be great if PCSX2 had an exclusive fullscreen mode so I could avoid needing external files.
CPU: AMD Ryzen 7 7800X3D
GPU: Nvidia GeForce RTX 2080 Ti GAMING X TRIO
Motherboard: ASUS ROG Strix X670E-F Gaming WiFi
RAM: Corsair Vengeance 6000MHz CL30 DDR5
Monitor: Asus PG278QR
OS: Windows 11
Reply
#10
(01-22-2017, 02:16 AM)masterotaku Wrote: The only fix I know is forcing G-Sync with Kaldaien's SpecialK dll. Check my post here: http://forums.pcsx2.net/Thread-GSdx-1-0?...#pid546579

However, that trick limits me to DX9 and DX11 renderers. It makes OpenGL crash. But I don't get any tearing anymore. It would be great if PCSX2 had an exclusive fullscreen mode so I could avoid needing external files.

Honestly I don't have any vsync issues at all with DX9/11 + PCSX2 vsync + DWM and I'm sure many setups behave similarly.  Gsync probably cuts down on latency a bit, though.  However, I was hoping to get vsync pacing issues sorted in OpenGL since it's the most compatible API and fixes issues found in D3D through its blending options.
Reply




Users browsing this thread: 1 Guest(s)