How accurate is this post?

Talk about NVIDIA G-SYNC, a variable refresh rate (VRR) technology. G-SYNC eliminates stutters, tearing, and reduces input lag. List of G-SYNC Monitors.
User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

Re: How accurate is this post?

Post by jorimt » 09 May 2017, 00:39

salt wrote:This is what you are saying happens to a Gsync display at sub-30fps scenarios. New frame isn't ready, display previous frame again.
In G-SYNC's case, less that the "New frame isn't ready, display previous frame again," and more that the low (EDIT: "high") frametimes space the frame delivery far enough apart to necessitate that those frames be refreshed more than once until the next to keep the display active. This also makes frame delivery at lower framerates visually smoother than other syncing methods, as they are refreshed at exact multiples, and as soon as they are ready.

With V-Sync at 30 fps/sub 30 fps scenarios (not sustained 30 fps, but drops below 60Hz with double buffer for instance), the refresh rate isn't adjusted to match the framerate, which is why the frame repeats in the first place, because it misses a delivery window, at which point it must be displayed twice. This actually causes visible stutter, as you see update, update, pause (frame displayed twice), update, update.

G-SYNC in the lower range (or any range) doesn't have this issue, because it doesn't have to wait for the next delivery window, it just displays the next frame when it's ready. There is a difference between a frame being "displayed twice" and a frame being "refreshed twice (displayed once)." V-sync does the first, G-SYNC does the latter.

Also, above 36 fps, none of this happens; G-SYNC simply adjusts the refresh rate to the literal framerate number (37 fps at 37Hz, 55 fps at 55Hz, 100 fps at 100Hz, etc).
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

salt
Posts: 9
Joined: 08 May 2017, 12:41

Re: How accurate is this post?

Post by salt » 09 May 2017, 05:42

jorimt wrote:and more that the low frametimes space the frame delivery far enough apart to necessitate that those frames be refreshed more than once until the next to keep the display active
You mean high frame times.
jorimt wrote:This actually causes visible stutter, as you see update, update, pause (frame displayed twice), update, update.
This brings me to the nature of stutter. What are the exact conditions that result in us perceiving stutter?

My guess ...

Code: Select all

Pretend you are playing a game (/w Vsync) that renders a stopwatch displaying 0.000 and is running.

Let D = display and R = render start,

Frame times <= 16.6ms:

                 D0.000          D0.016          D0.032          D0.048
|_______________|_______________|_______________|_______________|
|               |               |               |               |
 R0.000          R0.016          R0.032          R0.048          R0.056


Exceed 16.6ms rendering time on R0.016 frame:

                 D0.000          D0.000          D0.016          D0.048
|_______________|_______________|_______________|_______________|
|               |               |               |               |
 R0.000          R0.016                          R0.048          R0.056

D0.000 to D0.016 takes longer than expected ("slow down") 
D0.016 to D0.048 happens in a time span of 16.6ms ("speed up")
IMHO it's the slow down and speed up in perceived passage of time.

If that is true ... Gsync with it's "refresh anytime" will have the same problem.

Code: Select all

Gsync (or at least to my understanding)
Frame times: 10ms, 13ms, 11ms

           D0.000       D0.010     D0.023         
|_________|____________|__________|
|         |            |          |
 R0.000    R0.010       R0.023     R0.034

Gap between D0.000 & D0.010 = 13ms; 
i.e. it shows the passage of time of 10ms but actually takes 13ms (slow down)

Gap between D0.010 & D0.023 = 11ms; 
i.e. it shows the passage of time of 13ms but actually only take 11ms (speed up)
jorimt wrote:There is a difference between a frame being "displayed twice" and a frame being "refreshed twice (displayed once)." V-sync does the first, G-SYNC does the latter.
Which is ... ?

Displayed twice using the same frame and refresh twice using the same frame ... isn't that the same thing?

Yes, I get that Gsync can refresh at any time, when a new frame is ready. But if it takes too long, over 33.3ms it reuses the previous frame to refresh the display to avoid a low refresh rate that will appear as flicker.

User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

Re: How accurate is this post?

Post by jorimt » 09 May 2017, 09:08

salt wrote: You mean high frame times.
Yup, typo.
salt wrote: Which is ... ?
Displayed twice using the same frame and refresh twice using the same frame ... isn't that the same thing?

Yes, I get that Gsync can refresh at any time, when a new frame is ready. But if it takes too long, over 33.3ms it reuses the previous frame to refresh the display to avoid a low refresh rate that will appear as flicker.
You're missing a very import difference here; the frame "rate." G-SYNC's minimum refresh function isn't causing stutter, even with multiple refreshes of the same frame, because the delivery is matching the framerate the GPU is outputting. Does that make more sense?

With v-sync, a duplicate frame means a break in the delivery, whereas with G-SYNC in the lower range, it's simply being delivered at a slower rate because that is what the GPU is outputting. In this instance, the illusion of motion isn't broken/interrupted, unless there is a outright frametime spike, which no syncing method can fix.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

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

Re: How accurate is this post?

Post by RealNC » 09 May 2017, 09:16

Salt, do you use g-sync? There's no stutter during FPS fluctuations. Not even the slightest hint of stutter.

This is G-Sync with FPS variance:

http://www.testufo.com/#test=stutter&de ... 12&pps=720

No stutter. This is vsync with FPS variance:

http://www.testufo.com/#test=stutter&de ... 12&pps=720

Full of stutter.
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.

salt
Posts: 9
Joined: 08 May 2017, 12:41

Re: How accurate is this post?

Post by salt » 09 May 2017, 11:46

jorimt wrote: G-SYNC's minimum refresh function isn't causing stutter, even with multiple refreshes of the same frame, because the delivery is matching the framerate the GPU is outputting. Does that make more sense?

With v-sync, a duplicate frame means a break in the delivery, whereas with G-SYNC in the lower range, it's simply being delivered at a slower rate because that is what the GPU is outputting. In this instance, the illusion of motion isn't broken/interrupted, unless there is a outright frametime spike, which no syncing method can fix.
I'm not saying the min frame rate in Gsync cause stutter.

I'm thinking the frame time variance causes stutter - but I could be wrong.

Look at the 3rd diagram in my previous post. If you were to watch it play out, it will look like a movie that suddenly slow down then sped back up - and it's my belief that that is the cause of stutter. This is due to when the game state was captured for rendering and when the complete frame appears to the viewer.
Last edited by salt on 09 May 2017, 11:56, edited 2 times in total.

salt
Posts: 9
Joined: 08 May 2017, 12:41

Re: How accurate is this post?

Post by salt » 09 May 2017, 11:50

RealNC wrote:Salt, do you use g-sync? There's no stutter during FPS fluctuations. Not even the slightest hint of stutter.

This is G-Sync with FPS variance:

http://www.testufo.com/#test=stutter&de ... 12&pps=720

No stutter. This is vsync with FPS variance:

http://www.testufo.com/#test=stutter&de ... 12&pps=720

Full of stutter.
I will take your word for it that there is no stutter with Gsync. The question here is why?

In theory there should be due to varying frame times affecting when the game state is captured for rendering and when the frame actually gets displayed - as I tried to explain with the 3rd diagram in my previous post; unless I got the way Gsync works wrong and/or there is an error in my understanding of the causes of perceived stutter.

Also Fastsync ... it works kind of like Gsync in that the game renders as fast as it can. With this I do notice stutter when the frame rate changes. I only really get a fully stutter free experience on my PC /w the games I play when I have it locked at 60fps /w Vsync - of course if I start dropping frames there will be stutter.

User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

Re: How accurate is this post?

Post by jorimt » 09 May 2017, 12:07

salt wrote:I'm thinking the frame time variance causes stutter - but I could be wrong.
The only thing that can cause stutter with G-SYNC activated is if the system itself temporarily stops outputting frames/delivers one or multiple frames with extremely high frametimes to the display (frametime spikes), at which point, G-SYNC has nothing to sync to until the delivery of frames resumes.

G-SYNC itself doesn't and can't "cause" stutter, mainly because it is simply a mirror of what is being output by the system.

On-screen stutter is caused by interruption of perceived motion. With a variable framerate, for instance, the frametimes rise/lower continually. Since G-SYNC follows the output exactly, and in real-time, there is no interruption in the pattern, no matter how fast or slow it becomes, as all the variances originate from the system, which are shown fully and completely as they are output.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

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

Re: How accurate is this post?

Post by RealNC » 09 May 2017, 13:07

salt wrote:I will take your word for it that there is no stutter with Gsync. The question here is why?
Because with g-sync, movement stays consistent. Pixels "move" on the screen without pause.

The testufo link I gave shows this perfectly. This is in fact *exactly* what I see when I use g-sync. As FPS falls below 60, only motion blur is increased. There is zero stutter, because the vertical lines still move at the same pace across the screen.
In theory there should be due to varying frame times affecting when the game state is captured for rendering and when the frame actually gets displayed - as I tried to explain with the 3rd diagram in my previous post; unless I got the way Gsync works wrong and/or there is an error in my understanding of the causes of perceived stutter.
The latter. The cause of stutter is uneven movement. When something moves, then stops, then moves again, we see it as stutter. This does not happen with g-sync.

On fixed refresh (like 60Hz), a 50FPS animation cannot be displayed. What you get is a fraction of a second of 60FPS, followed by a fraction of second of 0FPS. This averages 50FPS obviously, but the constant 60FPS-0FPS-60FPS-0FPS jumps mean animation will freeze for fractions of a second. This freeze causes stutter.

Again, take a look at the testufo links I posted. In the vsync case, the lines stop-move-stop-move. This is perceived as stutter. In the g-sync link, the lines always keep moving. The frame time changes, but the lines still keep moving and never "freeze". Thus, no stutter is perceived. Motion blur increases due to the higher frame times.

So: frame time variance causes us to perceive different amounts of motion blur, NOT stutter.
I only really get a fully stutter free experience on my PC /w the games I play when I have it locked at 60fps /w Vsync - of course if I start dropping frames there will be stutter.
The best way to describe g-sync's stutter is: it always looks like 60FPS@60Hz vsync, even when it's not. This is for stutter only! Motion blur is not the same. 50FPS g-sync has the same motion blur and the same (lack of) stutter as 50FPS@50Hz vsync. Which means: no stutter, more motion blur.

Again: the links I posted are really, really a perfect demonstration of what you will see when you switch from vsync to g-sync.
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.

Haste
Posts: 326
Joined: 22 Dec 2013, 09:03

Re: How accurate is this post?

Post by Haste » 09 May 2017, 16:28

I'm not sure if I agree with RealNC's explanation on this.

The way I see it, nothing on a display is perfectly smooth. At least when we are talking about frame rates such as 60fps and under.

What cause the feeling of slowing>speeding up is the fact that we are dealing with motions that are composed of many little static images.

This is especially true for very low frame rates such as for example 30fps.

Follow for example the UFO on a low frame rate here (for example 30fps, 36fps, ...)
http://testufo.com/#test=framerates

If you do tat little test, you will notice that it feels like that motion is vibrating.
That vibrating quality is what I think we call stuttering.

It can vibrate all the time in an homogeneous way. A constant stuttering like in the example above. (1st type)

But it can also happen just for a fraction of a second. Like a hic up. This is the scenario of a severe frame time spike. (2nd type)

And finally it can also happen in a periodic way. This can happen with Vsync when the frame time exceeds 1/refresh rate during a prolonged time. And you get something like 16.6ms > 33.3ms > 16.6ms > 33.3ms > 16.6ms > 33.3ms > 16.6ms > 33.3ms (3rd type)

So for me there are 3 "types" of stuttering.

Gsync can't help with the first type of stuttering.

But it can help masking the second one. Let's say the gpu was delivering frames nicely every 16.6ms but suddenly needs 25ms for a frame. With Vsync it will be a 33ms long stutter. While with gsync the stutter will be only 25ms long. And therefore will be less jarring.

And as for the third type, Gsync completely avoids it all together. No yoyoing frame times like with Vsync.


In a typical modern game, you usually don't get a perfectly stable frame time. Which is why Gsync makes a very noticeable difference for many people.

When the frame time varies slightly under Gsync, it's really subtle. And most people won't even notice it at all. With Vsync, on the other hand, when you miss the target frame rate even by a little, you immediately get a very big frame time spike. Which is very noticeable even for casual players.
Monitor: Gigabyte M27Q X

User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

Re: How accurate is this post?

Post by jorimt » 09 May 2017, 17:30

@Haste, part of what you're describing is "judder," something not limited to gaming, but also seen during panning with film sources.

"Stutter" is more commonly described as a sudden interruption in otherwise seamless perceived movement, while "judder" is simply the side effects of a super low continuous framerate's (<24<30 fps) inability to sustain a perfect illusion of movement.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

Post Reply