Monitor Refresh Rate Forced to 60hz When Using Vulkan

I’m using a 120hz monitor and ideally I like running at that refresh rate with swap interval set to 2 to enable frame doubling to get perfectly smooth scrolling. But the Vulkan driver will force my monitor into 60hz mode sometimes with it set to 2 which causes games to run half speed. It’s inconsistent, but seems to happen more often with games running in MAME (latest git or an older 2015 core). If I’m running with windowed full screen on when it happens, it persists when I quit RA and I have to go into my control panel and set it back to 120hz. In true full screen, after I quit it’s at least decent enough to switch me back to 120hz automatically.

I found out that if I set swap interval to 1 with true full screen it changes my hz to 60 100% of the time no matter the core, and goes back to 120hz after exiting. That behavior isn’t actually too bad since it gives smooth full speed performance, but my monitor looks better at 120hz and I hate waiting while my monitor switches modes.

I haven’t had any problem with GL forcing hz changes, except one time when Reicast did it. But that time I couldn’t change it back from my control panel and had to restart to get back into 120hz, so I think it’s unrelated.

I’ve already made a long rambling git issue about this, but figured I’d post it here to see if anyone in the forum community is better at debugging this than me. Or at least see if anyone can reproduce it.

Yeah, vulkan currently has some issues with different framerates and disabling vsync. I’m not sure if it’s an issue on our end or the drivers’ end, though.

Sometimes shaders don’t apply in Vulkan too. I have easymode-halation set as my default in retroarch.cfg and maybe every 1/3 times I’ll launch a game and there’ll be no shader. I can press my shader next hotkey a few times and eventually it will work when that happens. The same happens with pixellate, so it doesn’t seem shader specific.

Vulkan’s getting there though. Ignoring these issues, the performance is nice.

Hmm, I haven’t had that issue. Does anything show up in the logs?

I can’t reproduce it when I launch retroarch_debug.exe from a command prompt with verbosity on. It’s just like with the 60hz forcing thing; for some reason having a command prompt running along side RetroArch “fixes” both issues. And I just reproduced both issues at once by launching retroarch.exe with the same game (Shinobi III) from the same core (GPGX) using a Steam shortcut. If I modify that shortcut to launch with retroarch_debug.exe the issues go away. Interestingly, using the -D switch or turning off verbosity with retroarch_debug.exe will make the 60hz issue happen sometimes with that too, but not the shader problem. Bizarre. Is the time it takes for the verbose log to print to the prompt somehow working around the issue?

Black Tiger in the MAME core (I’m using 2015, but the same happens with the latest) is one of the more consistent ways I can get the problem to happen. It happens much less often with Shinobi III.

[QUOTE=Awakened;46876]Sometimes shaders don’t apply in Vulkan too. I have easymode-halation set as my default in retroarch.cfg and maybe every 1/3 times I’ll launch a game and there’ll be no shader. I can press my shader next hotkey a few times and eventually it will work when that happens. The same happens with pixellate, so it doesn’t seem shader specific.

Vulkan’s getting there though. Ignoring these issues, the performance is nice.[/QUOTE]

I noticed that too on Windows and Vulkan, sometimes I have to apply the shader twice or thrice to make it work.

Oh good, it’s not just me! And maybe since having a verbose command line open fixes both issues, whatever needs to be changed in the command-less RetroArch build to fix one issue will fix both.

I’m not counting it out as being a driver issue though.