Properly set 30 FPS with good frametime - what about Vsync?

Everything about displays and monitors. 120Hz, 144Hz, 240Hz, 4K, 1440p, input lag, display shopping, monitor purchase decisions, compare, versus, debate, and more. Questions? Just ask!
jm11
Posts: 8
Joined: 24 Dec 2020, 18:30

Properly set 30 FPS with good frametime - what about Vsync?

Post by jm11 » 24 Dec 2020, 19:19

Hello!

First of all I want to say hi and wish you all Merry Christmas! This is my first post on this forum.

There is one thing that wonders me. I would like to try play some more demanding games like CP2077 or RDR2 with 30 FPS and using gamepad instead of keyboard and mouse. So I read many similar threads how to properly set / block / cap 30 FPS on PC to have good frametime etc.

Okey, I tried it with GTA 4 and Witcher 3 - disabled in-game Vsync and framelimiter, set frame limit in Nvidia Control Panel to 30 with Low Latency mode to ON. It worked pretty nice but there was a tearing here and there, so I had to enable Vsync. I did it (via NVCP - normal Vsync, not Adaptive) and again everything was good with some input lag, but it's 30 FPS, not >60 so I understand it.

And here I have question about Vsync. I read, that the best solution to properly set 30 FPS is: limit it in RTSS on NVCP and enable half-refresh Vsync via Nvidia Inspector because NVCP does not have such option (it has only Adaptive Half Refresh Vsync).

Is there any difference between normal Vsync and 1/2 Refresh Rate Vsync in terms of "raw" smoothness?

I mean: if we play at 60 FPS, with 60 Hz LCD, frametime is 16.6 ms and with normal Vsync 1 frame is displayed in every 1/60 second (assume that GPU and CPU are capable of maintain stable 60 FPS).

But with 30 FPS and Vsync - 1 frame is displayed two times in row, right? Because frametime is 33.3 ms, but monitor refreshes every 16.6 ms and when there is no new frame in buffer, then it displays the same frame, right? Do I undestand this correctly?

So, what is the difference when we set 1/2 refresh rate Vsync? I just can't understand that :D

Thanks in advance for every reply.

Greetings.

User avatar
Chief Blur Buster
Site Admin
Posts: 11653
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Properly set 30 FPS with good frametime - what about Vsync?

Post by Chief Blur Buster » 24 Dec 2020, 21:24

You can try 1/2 VSYNC and see how it goes.

You have two problems to solve:

- Stutters from inaccurate framepacing. One problem is inaccurate frame rate capping -- frametimes may vary enough to create a 1-2-2-3-2-2-1-2-2-3-2 stutter instead of a smoother 2-2-2-2-2-2-2-2. So control your framepacing. If you want the most accurate frame rate capping, use RTSS instead of in-game cap or NVCP. This will force CP2077 framepacing.

- Latency from capping to low frame rate. The various methods of forcing 30fps will have various amounts of input lag, so you have to cherrypick based on your computer skills & how much work you are willing to do to optimize.

EASY:
Try testing normal VSYNC ON (not 1/2 VSYNC), and use RTSS to cap at exactly half the value you see at www.testufo.com/refreshrate .... This will do a similar job to 1/2 VSYNC but with possibly slightly less input lag.

ADVANCED1:
Also, most 60 Hz LCDs actually have a hidden 75 Hz mode, try testing that too, and running at 37.5fps. You can also test your LCD if it is FreeSync compatible by forcing FreeSync in ToastyX CRU, and seeing if it "works". Ranges may be tight, 48Hz-75Hz, but a few may actually work from 30Hz-75Hz, which then allows you to use a cap within VRR range -- much lower lag.

ADVANCED2:
If you're familiar with Custom Resolution Utilities, then in theory, you could potentially also try 30Hz with large vertical totals (VT2250) combined with RTSS Scanline Sync (move tearline above top edge of screen), to attempt a low-latency 30Hz mode that allows framerate=Hz at the lowest lag possible without using FreeSync. The mouse cursor will stutter badly, but the playfeel (if using VT2250) may feel slightly lower lag than 1/2 VSYNC. If your panel supports 75Hz, then you can try default VT (1125) multipled by origHz/destHz = 75/30 = 1125*(75/30) = 30Hz VT2812 for a panel that supports 75Hz VT1125 ... However, CP 2077 may not behave well with RTSS Scanline Sync unless there's some spare GPU headroom and the framerates doesn't frequently spike beyond 33ms (1/30sec).
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

Aldagar
Posts: 33
Joined: 12 Mar 2020, 14:27

Re: Properly set 30 FPS with good frametime - what about Vsync?

Post by Aldagar » 25 Dec 2020, 12:42

Wouldn't the half refresh RTSS cap + VSYNC still cause stuttering and fluctuating input lag, since the cap isn't in sync with the display and there would be an "imaginary jumping tearline"?

You could also use half refresh rate VSYNC like OP said, or 1/2 scanline sync, but their effectiveness vary depending on the hardware and the game.

I think a good solution is using a VRR display with LFC and capping the framerate with your prefered method (in-game, GPU drivers, RTSS, etc.).

jm11
Posts: 8
Joined: 24 Dec 2020, 18:30

Re: Properly set 30 FPS with good frametime - what about Vsync?

Post by jm11 » 25 Dec 2020, 15:23

Thank you for replies :)
Chief Blur Buster wrote:
24 Dec 2020, 21:24

EASY:
Try testing normal VSYNC ON (not 1/2 VSYNC), and use RTSS to cap at exactly half the value you see at .... This will do a similar job to 1/2 VSYNC but with possibly slightly less input lag.
So normal Vsync with fps cap may be (or not) better option than 1/2 Vsync with cap?

Exactly this thing wondered me - why people recommend to use 1/2 Vsync instead of "normal" Vsync when framerate is capped. I understand, that Vsync prevents copying not complete frames from back buffer to frame buffer, so there should be not any difference between 1/2 and normal Vsync when fps is capped (whatever option is used, monitor will refresh with the same frequency all the time). For me it looks like Vsync is Vsync regardless it's "speed" - but I'm not sure :D. Even when normal Vsync is ON and FPS are for example 30, only difference will be in time when Vsync will wait for GPU drawing complete frame - 33.3 ms instead of 16.6 ms.

Do I understand correctly the way it works?

User avatar
RealNC
Site Admin
Posts: 3757
Joined: 24 Dec 2013, 18:32
Contact:

Re: Properly set 30 FPS with good frametime - what about Vsync?

Post by RealNC » 25 Dec 2020, 15:33

jm11 wrote:
25 Dec 2020, 15:23
Exactly this thing wondered me - why people recommend to use 1/2 Vsync instead of "normal" Vsync when framerate is capped.
Because a normal frame limiter is not accurate enough to present each frame at exactly the right moment. So very often, you get a stutter here and there. With 1/2 vsync this cannot happen, as the GPU will force the frame to wait for the correct 16.7ms mark (there's two of them.)
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

jm11
Posts: 8
Joined: 24 Dec 2020, 18:30

Re: Properly set 30 FPS with good frametime - what about Vsync?

Post by jm11 » 25 Dec 2020, 17:40

RealNC wrote:
25 Dec 2020, 15:33
With 1/2 vsync this cannot happen, as the GPU will force the frame to wait for the correct 16.7ms mark (there's two of them.)
Okey, I understand. But what is the difference between normal Vsync and 1/2 Vsync in situation where framerate is capped?

I thought that even with normal Vsync (and with 30FPS cap) each frame will be send to the monitor with 16.7ms mark and since there is a cap at 30 FPS, then new frame is drawed every 33.3ms so one frame will be send to the monitor (60 Hz) two times as you wrote ;)

Aldagar
Posts: 33
Joined: 12 Mar 2020, 14:27

Re: Properly set 30 FPS with good frametime - what about Vsync?

Post by Aldagar » 26 Dec 2020, 11:07

jm11 wrote:
25 Dec 2020, 17:40
RealNC wrote:
25 Dec 2020, 15:33
With 1/2 vsync this cannot happen, as the GPU will force the frame to wait for the correct 16.7ms mark (there's two of them.)
Okey, I understand. But what is the difference between normal Vsync and 1/2 Vsync in situation where framerate is capped?

I thought that even with normal Vsync (and with 30FPS cap) each frame will be send to the monitor with 16.7ms mark and since there is a cap at 30 FPS, then new frame is drawed every 33.3ms so one frame will be send to the monitor (60 Hz) two times as you wrote ;)
The problem is an fps cap is not in sync with the display, so some frames will be displayed for 2 refresh cycles, but others will be displayed for 1 or 3 cycles, causing erratic stuttering.

User avatar
RealNC
Site Admin
Posts: 3757
Joined: 24 Dec 2013, 18:32
Contact:

Re: Properly set 30 FPS with good frametime - what about Vsync?

Post by RealNC » 26 Dec 2020, 11:08

jm11 wrote:
25 Dec 2020, 17:40
RealNC wrote:
25 Dec 2020, 15:33
With 1/2 vsync this cannot happen, as the GPU will force the frame to wait for the correct 16.7ms mark (there's two of them.)
Okey, I understand. But what is the difference between normal Vsync and 1/2 Vsync in situation where framerate is capped?

I thought that even with normal Vsync (and with 30FPS cap) each frame will be send to the monitor with 16.7ms mark and since there is a cap at 30 FPS, then new frame is drawed every 33.3ms so one frame will be send to the monitor (60 Hz) two times as you wrote ;)
The limiter might undershoot the correct 16.7ms interval so the frame might be displayed on the previous one. So some frames might have a frame time of 16.7ms. With 1/2 vsync this cannot happen, since what you get with that is effectively 30Hz vsync. Even if the limiter presents a frame early, that frame will be forced (through vsync) to be displayed on the next 33ms spot.

You need to remember that just because you're limiting the frame rate, those frames are not synced. For example, if your monitor runs at exactly 60.00Hz, even if you limit your FPS to exactly 60.00FPS, with vsync OFF you will still see tearing. Sometimes the tear is near the bottom of the screen, sometimes near the top. That's undershooting and overshooting the vsync position (if vsync was active) respectively. Now if you enable normal vsync, a frame that would have teared near the bottom of the screen will be displayed on the 16.7ms mark that is about to happen, which is at the bottom of the screen. 1/2 vsync will prevent that and will force the frame to be displayed on the 16.7ms mark that is the next to the one that's about to happen.

So with normal vsync, frame times might look like this:

33.3 33.3 33.3 33.3 16.7 33.3 33.3

That 16.7 frame that happens every now and then looks like a hiccup stutter. With 1/2 vsync, all frames will have 33.3ms frame time, and thus no such stutters.

Another way to look at it is that 60Hz 1/2 vsync = 30Hz normal vsync. So if you use 1/2 vsync with 60Hz, for all intents and purposes your monitor becomes a 30Hz display that is completely incapable to even have a frame time of 16.7ms.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

ELK
Posts: 125
Joined: 18 Dec 2015, 02:51

Re: Properly set 30 FPS with good frametime - what about Vsync?

Post by ELK » 26 Dec 2020, 12:45

Changing the Low Latency mode in Nvidia effects almost no games. Windows and drivers both default to a cpu queue of 3 frames. This can cause a TON of lag. To avoid this game developers made their engines use a cpu queue of 1 frame, thus changing it in your driver options will have no effect. This massively backfired after AMD invented anti-lag (Nvidia copied w/ ultra low latency). This technology is much better but unfortunately works in almost no games, hilariously because they were trying to reduce input lag.

As of right now the only game I know that "ultra" low latency works in is oblivion. It is notorious for horrible input lag unless you change the pre-rendered frames from 3 to 1. The input lag is so low that It's actually comfy to play in 30fps, and that's coming from somebody who is very sensitive to input lag.

jm11
Posts: 8
Joined: 24 Dec 2020, 18:30

Re: Properly set 30 FPS with good frametime - what about Vsync?

Post by jm11 » 05 Feb 2022, 10:41

Hello again!

It's been a while when I asked you about correct way to cap 30 FPS on some games. I finally decided to buy Cp2077 + xbox gamepad for PC and now I'm fighting to achieve "smooth" 30 FPS lock as smooth it can be but... it's not that simple.

So, as Chief Blur Buster suggested I tried RTSS framelimit at 30 FPS with normal Vsync ON via NVCP - it's works pretty good but still I have some feeling that it's kinda... "sluggish".

I saw some guy on YT which is using RTSS Scanline Sync X/2 with CP2077 and also on GTX 970 but also with Vsync ON (but vsync should not be used with S-Sync right?) so I tried and you know what? That was definetely smoother than previous approach. He also set the value of Scanline Sync X/2 to "1".

And now I wonder, can I use S-Sync to achieve proper 30 FPS lock on this game? Even when my GPU is not powerful, and there's no much headroom with Cp2077 on medium settings (GPU usage 80 - 100 % all the time)?

If this could be proper approach, what settings should I use? I mean with Scanline Sync X/2 and VSync OFF. What value should I put next to S-Sync? I read that it's used to hide tearline and should be in -30 to -80 range but I'm not sure.

I will be thankful for any advice.

Greetings.

Post Reply