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.
salt
Posts: 9
Joined: 08 May 2017, 12:41

How accurate is this post?

Post by salt » 08 May 2017, 12:50

https://www.blurbusters.com/gsync/how-d ... -stutters/

It's written in 2013.

Quite sure games don't take into account "time to presentation" and adjust object position based on it - you would need to be psychic to do that.

Don't believe G-sync interpolates between frames either since one of the selling points of G-sync is to reduce input to display lag.

Sorry if I sound a little pissed off. Was being yelled at by some dude on reddit - https://www.reddit.com/r/pcgaming/comme ... s/dhahcvo/.

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

Re: How accurate is this post?

Post by jorimt » 08 May 2017, 13:04

I'll let @Chief Blur Buster answer the initial question in your post if/when he gets the chance, as he was the original author of that article, but I'll briefly address your second question...

My article answers this:
http://www.blurbusters.com/gsync/gsync101-range/
Once the framerate reaches the 36 and below mark, the G-SYNC module begins inserting duplicate frames to maintain the display’s minimum physical refresh rate, and smooth motion perception. If the framerate is at 36, the refresh rate will double to 72 Hz, at 18 frames, it will triple to 54 Hz, and so on. This behavior will continue down to 1 frame per second.
So, short answer is yes...ish. And no, it doesn't add latency. The latency introduced in these situations is due to the high frametimes at such low sustained framerates.
(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 » 08 May 2017, 13:35

Duplicate frames != interpolate frames though.

We duplicate frames all the time with regular Vsync when the GPU misses the refresh date line.

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

Re: How accurate is this post?

Post by jorimt » 08 May 2017, 14:24

Not the same thing. When I say "duplicate frame" it means duplicate refreshes of the display to maintain the 30Hz physical minimum of the panel.

Unlike v-sync, G-SYNC adjusts the refresh rate to the framerate. If the display remains at such low sustained framerates/refresh rates (<36 fps) without this functionality, the display will literally begin to fade to white/go blank. G-SYNC must repeat the refresh in multiples of the current framerate in this range to maintain a picture, basically.

V-sync doesn't have this worry, because no matter how low the framerate, the refresh rate remains fixed at its current maximum.
(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: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: How accurate is this post?

Post by RealNC » 08 May 2017, 15:16

salt wrote:Quite sure games don't take into account "time to presentation" and adjust object position based on it - you would need to be psychic to do that.
There were some few games (confirmed by nvidia, but not which games are affected) that are not compatible with g-sync due to this or similar techniques. The driver has an internal blacklist of games where it doesn't allow g-sync in those case. However, these games (whatever they were) are probably fixed by now. Unless it's a really old game.

Other techniques not compatible with g-sync involve using vblank as a timing source. Those games also don't work with g-sync and would be blacklisted. Again, I don't know which games. It has been mentioned in passing by NVidia's Tom Petersen in an interview.

Generally, it's not a real issue, as these techniques are not even close to being widespread.

About the duplicate frames, that just means that if a frame takes longer to be delivered than X milliseconds, and X is the highest possible refresh interval of the monitor, then g-sync will scan out the last frame in X/n millisecond intervals, where "n" is an integer. This makes sure there's no microstutter at low frame rates. It means 20FPS becomes 20FPS@40Hz (n=2), or 20FPS@60Hz (n=3), etc. If the refresh rate is an exact multiple of the frame rate, then you're good; no microstutter/judder, and g-sync makes sure that's always the case. This works right down to 1FPS (or 0FPS even).
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.

Sparky
Posts: 682
Joined: 15 Jan 2014, 02:29

Re: How accurate is this post?

Post by Sparky » 08 May 2017, 18:45

The graph in that post is slightly misleading, because with g-sync the time between two frames is determined by how long this frame took, while the animation distance is determined by how long the previous frame took. So, the g-sync line isn't going to be perfectly straight, just a lot straighter than the v-sync line. If your game engine wants something to move at 1000 pixels per second, and your render times are
10,12,9,10,11,10 milliseconds, the position would increment 0,10,12,9,10,11,10 when each of those hits the screen. So you have a 12 pixel frame that gets displayed 9ms after the previous frame, and a 9 pixel frame that gets displayed 10ms after that. So it's not a perfectly straight line, just a lot straighter than vsync. Say you had a fixed 120hz display with vsync, the position would still be 0,10,12,9,10,11,10, but the time each of those hits the screen would be 16.6, 25, 33.3,41.6,58.3,66.6, with the interval being 16.6, 8.3, 8.3, 8.3, 16.6, 8.3.

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

Re: How accurate is this post?

Post by salt » 08 May 2017, 23:18

jorimt wrote:Not the same thing. When I say "duplicate frame" it means duplicate refreshes of the display to maintain the 30Hz physical minimum of the panel.

Unlike v-sync, G-SYNC adjusts the refresh rate to the framerate. If the display remains at such low sustained framerates/refresh rates (<36 fps) without this functionality, the display will literally begin to fade to white/go blank. G-SYNC must repeat the refresh in multiples of the current framerate in this range to maintain a picture, basically.

V-sync doesn't have this worry, because no matter how low the framerate, the refresh rate remains fixed at its current maximum.
I think I get what you are saying ...

Duplicating frames happens all the time. In Vsync, duplicating frames happen when the new frame isn't ready so the display just shows the previous frame a second time. This happens when you cannot get 60fps on a 60hz display, the game drops to 30fps and every frame is displayed twice.

This is what you are saying happens to a Gsync display at sub-30fps scenarios. New frame isn't ready, display previous frame again.

Generally this duplication isn't noticeable to the vast majority of people. Did you know that film projectors display the same frame 3 times in a roll? This is because the fps of film, 24 fps, is too low to use as the refresh rate. 24hz refresh would result in a ton of flicker. So they use a 72hz refresh rate, displaying the every frame of film 3 times.

Either way, I don't believe frame interpolation happens.
Last edited by salt on 08 May 2017, 23:24, edited 1 time in total.

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

Re: How accurate is this post?

Post by salt » 08 May 2017, 23:23

Sparky wrote:while the animation distance is determined by how long the previous frame took.
This would require the game engine to track previous frame times and adjust animation accordingly. Do that do that?

If frame times vary significantly every frame ... what are the chances they be making things worse by trying to "predict" how long the next frame will take?
Sparky wrote:So, the g-sync line isn't going to be perfectly straight, just a lot straighter than the v-sync line.
I have to say I don't quite get the graph. Particularly the eye position part.

With Vsync if it can't keep 60fps on a 60hz display, it will effectively drop to 30fps and you just show each frame twice. This is perfectly smooth as the object movement will be correct for the time pass in-between frames - just delayed by a frame. It's nothing fancy but it works.

Doing interpolation or adjusting animation ... seems ... will it even work? It is a heck a lot of guess work involved. Guessing wrong would be quite noticeable I believe.

Sparky
Posts: 682
Joined: 15 Jan 2014, 02:29

Re: How accurate is this post?

Post by Sparky » 08 May 2017, 23:47

salt wrote:
Sparky wrote:while the animation distance is determined by how long the previous frame took.
This would require the game engine to track previous frame times and adjust animation accordingly. Do that do that?
not quite.
The game engine decides what to draw in frame 1, then gives it to the GPU to render, while the GPU is rendering frame 1, the game engine is deciding what to draw for game 2. The game engine only needs to know how long it's been since the last frame, so it knows how far to move something. If you double your framerate, the distance something moves between each frame is cut in half.

If frame times vary significantly every frame ... what are the chances they be making things worse by trying to "predict" how long the next frame will take?
Sparky wrote:So, the g-sync line isn't going to be perfectly straight, just a lot straighter than the v-sync line.
I have to say I don't quite get the graph. Particularly the eye position part.

With Vsync if it can't keep 60fps on a 60hz display, it will effectively drop to 30fps and you just show each frame twice. This is perfectly smooth as the object movement will be correct for the time pass in-between frames - just delayed by a frame. It's nothing fancy but it works.

Doing interpolation or adjusting animation ... seems ... will it even work? It is a heck a lot of guess work involved. Guessing wrong would be quite noticeable I believe.
not interpolation, just a direct consequence of framerate. It's extremely rare for game logic to be tied to framerate, unless you're talking about old console or arcade games. If you go from 30fps to 60fps, stuff doesn't move twice as fast, it just gets shown more smoothly.

Interpolation would be taking a 30fps source, and inserting frames by averaging or otherwise combining the frame before and the frame after.

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

Re: How accurate is this post?

Post by salt » 09 May 2017, 00:10

Sparky wrote: ---
OK. That's more or less how I see it too - assuming you are saying what I think you are saying.

The game captures the latest game state and use that to determine what to render.

The post I was referring in the OP seems to imply that the game take estimated projected rendering time of a frame into consideration when determining what to render. That's impossible because the game can't know how long it will take the GPU (which can be any GPU) to render a frame and it can't predict future game state.

Post Reply