Page 1 of 1

Screen 144hz, Gsync enabled, Vsync disabled, Cap set to 120fps, screen tearing

Posted: 21 Jun 2020, 05:23
by fluidz
Hi all,

Over the last couple of months I have been seeing lots of stuttering in Destiny 2's lobby. This never used to happen. It doesnt happen elsewhere, only in the Tower.

Exploring planets, in orbit, in strikes, Gambit, Crucibal

My framerate will fluctuate from 75-120fps (120fps cap), there are no issues, feels like gsync is handling the framerate fluctuations well. Very smooth.

Whilst at the Tower.. (theres little going on)

If i rotate my camera, it micro freezes, stutters, my framerate is fluctuating between 110-120fps. Now heres the thing, I decided to turn off vsync to see what would happen (gsync is still enabled). I saw screen tearing. Why would the screen be tearing when the fps is 110-120fps, refresh rate 144hz. Usually i see screen tearing when the framerate is near the refresh rate, but as low as 110fps?

I tested many nvidia drivers, installed after using ddu. Reinstalled windows 10 (2004).

Thanks for any suggestions.

Re: Screen 144hz, Gsync enabled, Vsync disabled, Cap set to 120fps, screen tearing

Posted: 21 Jun 2020, 07:48
by RealNC
This is normal. Some frames can exceed the cap without them affecting the average FPS. When that happens, you will see a tear. Another game that's known to cause this for example is Prey 2017. This can also happen when there's small frame presentation stalls. After such a stall, the next frame will not be held back but instead will be presented immediately even before the 7ms mark (144Hz frame time) has passed. This will also tear.

This is what vsync guards against when using g-sync. It will hold back a "rogue" frame just long enough as to not cause tearing.

There are some pros and cons to disabling vsync when using g-sync. There was a thread about it here:

viewtopic.php?f=10&t=4623

Re: Screen 144hz, Gsync enabled, Vsync disabled, Cap set to 120fps, screen tearing

Posted: 21 Jun 2020, 08:17
by jorimt
fluidz wrote:
21 Jun 2020, 05:23
Why would the screen be tearing when the fps is 110-120fps, refresh rate 144hz. Usually i see screen tearing when the framerate is near the refresh rate, but as low as 110fps?
As stated in the second entry of my Closing FAQ (just to cover why this happens at all with G-SYNC):
https://blurbusters.com/gsync/gsync101- ... ttings/15/
Wait, why should I enable V-SYNC with G-SYNC again? And why am I still seeing tearing with G-SYNC enabled and V-SYNC disabled? Isn’t G-SYNC suppose to fix that?

The answer is frametime variances.

“Frametime” denotes how long a single frame takes to render. “Framerate” is the totaled average of each frame’s render time within a one second period.

At 144Hz, a single frame takes 6.9ms to display (the number of which depends on the max refresh rate of the display, see here), so if the framerate is 144 per second, then the average frametime of 144 FPS is 6.9ms per frame.

In reality, however, frametime from frame to frame varies, so just because an average framerate of 144 per second has an average frametime of 6.9ms per frame, doesn’t mean all 144 of those frames in each second amount to an exact 6.9ms per; one frame could render in 10ms, the next could render in 6ms, but at the end of each second, enough will hit the 6.9ms render target to average 144 FPS per.

So what happens when just one of those 144 frames renders in, say, 6.8ms (146 FPS average) instead of 6.9ms (144 FPS average) at 144Hz? The affected frame becomes ready too early, and begins to scan itself into the current “scanout” cycle (the process that physically draws each frame, pixel by pixel, left to right, top to bottom on-screen) before the previous frame has a chance to fully display (a.k.a. tearing).

G-SYNC + V-SYNC “Off” allows these instances to occur, even within the G-SYNC range, whereas G-SYNC + V-SYNC “On” (what I call “frametime compensation” in this article) allows the module (with average framerates within the G-SYNC range) to time delivery of the affected frames to the start of the next scanout cycle, which lets the previous frame finish in the existing cycle, and thus prevents tearing in all instances.

And since G-SYNC + V-SYNC “On” only holds onto the affected frames for whatever time it takes the previous frame to complete its display, virtually no input lag is added; the only input lag advantage G-SYNC + V-SYNC “Off” has over G-SYNC + V-SYNC “On” is literally the tearing seen, nothing more.

For further explanations on this subject see part 1 “Control Panel,” part 4 “Range,” and part 6 “G-SYNC vs. V-SYNC OFF w/FPS Limit” of this article, or read the excerpts below…
Also, if your display is G-SYNC Compatible, not native G-SYNC w/module, it seems the "upper frametime variance" range where this partial tearing with G-SYNC on + V-SYNC off is seen (within the refresh rate) may be greater with G-SYNC Compatible (software/cable) than it is with native G-SYNC (hardware module), and thus requires a lower limit to eliminate visible tearing.

Not sure if that's the case in your situation though, as you didn't provide your monitor model.

Regardless, your going to see tearing with G-SYNC on + V-SYNC off within the refresh rate during frametime spikes no matter what your framerate limit is.

The labeling of "V-SYNC" throws most people off, but within the refresh rate, the V-SYNC option is actually part of original G-SYNC operation; when you disable it, you're stripping G-SYNC of some of its functionality, specifically its ability to adhere to the VBLANK in all situations.

Re: Screen 144hz, Gsync enabled, Vsync disabled, Cap set to 120fps, screen tearing

Posted: 24 Aug 2020, 10:33
by fluidz
Sorry for the late reply, but thank you both for the explanation.

Re: Screen 144hz, Gsync enabled, Vsync disabled, Cap set to 120fps, screen tearing

Posted: 24 Aug 2020, 10:39
by jorimt
fluidz wrote:
24 Aug 2020, 10:33
Sorry for the late reply, but thank you both for the explanation.
No worries :)