V-Sync and Estimated Refresh Rate: am I doing it wrong?

Hi everyone, I’m new to RetroArch, so I’m still learing: hope you don’t mind a couple of basic questions I didn’t find a proper clarification about, over at Libretro Docs.

Basically, I’m trying to get as close as I can to a perfect sync with my setup, and that’s what I’ve done so far: I set my monitor to 60hz (it supports 144hz and G-sync too, but I find 60hz more appeasing and stable for retro consoles), went into the menu > video settings, let Estimated Refresh Rate to cycle to 2048 a couple of times, hit A on my controller when I saw the number to drift as little as possible and then I synced that value (59,916hz, 0,3/4% frametime deviation) to the Video Refresh Rate option above. Then, I tried a couple of Japanese games that I know to scroll at a pretty much flawless 60fps - Bare Knuckle II/Streets of Rage 2 and Dynamite Headdy - and from what I’ve seen, on RetroArch, via Genesis Plus GX, they seem to behave identically to my retro setup (Japanese Mega Drive 2, original games and OSSC, to a different monitor).

Point is: if I get back to video settings while in game, I see that Estimated Refresh Rate is stable at around 59,923/7hz, now, and the frametime deviation is huge, floating beyond 3/5%. I can’t get close to that 0,1% that is suggested over at Libretro Docs, in order to achieve a good sync.

What puzzles me is that, even if I manually change Video Refresh Rate to 59,923/7hz, things don’t really change, as I still get apparently solid performances but very different numbers from the ideal ones.

Anyone can help me figure this out?

Thanks in advance! ^_-

1 Like

But why? Just run at your native 144hz with Gsync enabled in the Nvidia control panel. And in RetroArch leave Vsync on, use the Set Display-Reported Refresh Rate option under Video and enable Sync to Exact Content Framerate under Throttle. Now your display will sync to the exact framerate/refresh of whatever console you’re emulating. You’ll get dead smooth scrolling (try the 240p test ROM’s scroll test) in most cores (Flycast is a bit weird; turning off audio sync for it seems to make the framerate the smoothest for me). The only real annoyance with Gsync and RetroArch I’ve found is that there is a small pause before fast forward activates in gl and glcore. Thankfully it doesn’t happen in Vulkan, so I primarily use that.

1 Like

Since you have g-sync, don’t use 60Hz. Use 144Hz and let g-sync output 60Hz. Don’t forget to enable “Sync to Exact Content Framerate” as Awakened mentioned. Also read this:

https://www.libretro.com/index.php/upcoming-retroarch-1-7-4-sync-to-exact-content-frame-rate-ideal-for-g-syncfreesync-users

If you switch to 60Hz, g-sync will NOT work, since it needs at least 2Hz of breathing room for it to work (meaning it will only work at 58FPS and below when switching to 60Hz.) You’ll get a severe increase in input lag.

As a rule of thumb: with g-sync, if you want 60Hz, do NOT switch the monitor to 60Hz. Instead, limit your FPS to 60 which will give you 60Hz with g-sync. This is true for all games, not just RetroArch.

Edit: Oh, and another setting that’s best disabled when using g-sync is “Throttle Menu Framerate” (it’s directly below the “Sync to Exact Content Framerate” option.) Set it to OFF, since when using g-sync, limiting the menu framerate to the core’s framerate will result in the refresh rate calculator detecting the core’s framerate instead of the screen’s refresh rate.

2 Likes

Thanks guys, I’ll give that another try then, and be sure to check everything you suggested. At a first glance I was under the impression that the framerate - although smooth - was a little more juddery at 144hz, compared to 60. During the first chase level in Dynamite Headdy, for example, it seemed to me the first parallax layer in the foreground moved more correctly at 60hz. That sounds impossible, though.

And one last question: I usually leave my nVidia control panel/3D settings to ‘let the app decide’… Is that ok with RetroArch too, or is it better to create a program-related profile with V-Sync turned off (should that conflict with RetroArch’s)?

Thanks again!

1 Like

I tend to use the 240p test suite’s scroll test for scroll testing, since it should be a perfect 60fps on the foreground layer. You can find builds of the ROMs for most systems here: http://junkerhq.net/xrgb/index.php?title=240p_test_suite#Versions

I leave it at “Application Controlled”. I’ve tried forcing it on and off for RetroArch from there, but both of those gave me worse results.

No problem!

1 Like

Good call, I’ll definitely get Artemio’s test suite for RA too. And I just made sure nVidia settings were all good.

Thanks again, I’ll check everything out and report.

1 Like

Ok, after some more testing, either I’m crazy / I see things :smiley: or I’m doing something wrong, because my display is definitely giving me a smoother experience when set to 60hz through Nvidia control panel, compared to 144hz (with RA configured as per your suggestion). It’s not proper stuttering or frame drops, but I can tell - even by just walking left and right on Dynamite’s Headdy’s hub city stage - that the scrolling is 100% perfect at 60hz, whereas at 144 I can notice subtle bumps.

I wonder if that’s the way it’s supposed to be, and 60hz smooth out things for whatever reason? After all, some games run perfectly both ways - such as Bare Knuckle II/Streets of Rage 2 and Aero Blasters - while others appear to be more consistent at 60hz (Eliminate Down is another case, with the rocks by the end of the first stage flying super smoothly at 60hz, and chugging sporadically at 144). Tomorrow I’ll try out my actual physical copies of said games on my MD2 through the OSSC and compare the results.

One other factor I just thought about right now while writing, is that maybe I’m using the wrong video driver? I left it to default values, so I believe I’ve got GL to work with all the cores I tried so far (Genesis Plus GX, Mesen and Hygan Accuracy). My laptop is an i7 8750H, 16GB, with a GTX1060 3GB, on Windows 10 1903, with all the relevant drivers I can think of updated and current.

Yeah, many games probably have some small frame drops on real hardware, so it can be hard to tell which behavior is accurate. I haven’t noticed differences in smoothness between gl, glcore or vulkan.

1 Like

Oh, and another setting that’s best disabled when using g-sync is “Throttle Menu Framerate” (it’s directly below the “Sync to Exact Content Framerate” option.) Set it to OFF, since when using g-sync, limiting the menu framerate to the core’s framerate will result in the refresh rate calculator detecting the core’s framerate instead of the screen’s refresh rate

I tried this on the latest nightly and it’s oddly not working very well. very visible tearing and choppy audio. Seemed to work fine normally but after trying “Throttle Menu Framerate” it’s now acting up. Can you give me your settings so I can figure out what I’ve done wrong? I’m running a first-gen G-Sync monitor at 144hz (tho RA detects it as 144.001 for some reason) and tried the Mesen core with a NTSC 60hz game.

1 Like

Make sure vsync is enabled. If you see tearing at high FPS, then it’s not enabled.

(With gsync, vsync prevents tearing when the framerate goes near the maximum refresh rate.)

Vsync is enabled but it’s not working. Gonna delete my configs and start over