• Happy holidays, folks! Thanks to each and every one of you for being part of the Tom's Hardware community!

[SOLVED] G-Sync question

Kalik212

Distinguished
Sep 28, 2015
138
1
18,585
I don't understand something about G-Sync...it's always been recommended to enable G-Sync and V-Sync in the Nvidia Control Panel and disable V-Sync from the in-game Settings...it's the way I've always done it...it's also best to limit your frame rate 1-3 frames below your monitor's max refresh rate either though NVCP or RTSS... but I don't understand the concept behind it

a) what's the point of enabling a frame rate cap 1-3 frames below your monitor refresh rate if V-Sync is already enabled?...with V-Sync enabled it caps your frame rates to your max refresh rate (so I will never go higher then 144 fps)...so why do I need the frame rate cap for if I'm already never going to go above it with V-Sync enabled?

so with a frame rate cap on do I need to enable V-Sync in the NVCP?...or looking at it the other way, with V-Sync enabled do I need to enable the frame rate cap (since either way I'm never going to go above my 144 refresh rate/frame rate)?
 
Solution
yes but I'm still confused...capping the frame rate will not sync it but isn't that what having G-Sync enabled does?...so if I have G-Sync enabled plus a frame rate cap then why do I need to have v-sync also enabled (in the Nvidia Control Panel)...or vice versa, if I have v-sync enabled then why do I need to have a frame rate cap enabled?

they both seem to do the same thing...or am I not understanding how it works?
After a little more digging around, this is what I can come up with:
  • Frame rate limiting caps how often work can be sent to the GPU. So a frame rate limit of 60 FPS means the CPU can only send a render command every 16.6...ms interval . This does not mean that the GPU will get a render command consistently...
Setting a frame rate limit just below the refresh rate is to prevent the default VSync behavior from kicking in if the frame rate goes past the refresh rate. And then using the NVCP's Vsync can further help with tearing better than the application's Vsync.

At least this is what the internet tells me. I haven't verified this.
 
Setting a frame rate limit just below the refresh rate is to prevent the default VSync behavior from kicking in if the frame rate goes past the refresh rate. And then using the NVCP's Vsync can further help with tearing better than the application's Vsync.

At least this is what the internet tells me. I haven't verified this.

yes but I'm still confused...capping the frame rate will not sync it but isn't that what having G-Sync enabled does?...so if I have G-Sync enabled plus a frame rate cap then why do I need to have v-sync also enabled (in the Nvidia Control Panel)...or vice versa, if I have v-sync enabled then why do I need to have a frame rate cap enabled?

they both seem to do the same thing...or am I not understanding how it works?
 
Last edited:
yes but I'm still confused...capping the frame rate will not sync it but isn't that what having G-Sync enabled does?...so if I have G-Sync enabled plus a frame rate cap then why do I need to have v-sync also enabled (in the Nvidia Control Panel)...or vice versa, if I have v-sync enabled then why do I need to have a frame rate cap enabled?

they both seem to do the same thing...or am I not understanding how it works?
After a little more digging around, this is what I can come up with:
  • Frame rate limiting caps how often work can be sent to the GPU. So a frame rate limit of 60 FPS means the CPU can only send a render command every 16.6...ms interval . This does not mean that the GPU will get a render command consistently every 16.6... ms, nor does it mean the GPU can have render times that are lower than16.6ms. In other words, it's possible for the CPU to send a command at say t=15ms, then t=17ms, because they're in two separate 16.6ms windows. The odd intervals the CPU can send commands plus the amount of time it takes to actually render the frame is known as frame time variance.
  • G-Sync adjusts the V Blanking period of a display to the frame time of what the GPU outputted. That's what the "syncing" part of G-Sync means; it doesn't stop the GPU from swapping frame buffers if the monitor's not on its next V Blanking period. So if the frame time for Frame 1 is say 10ms, G-Sync will adjust the V Blanking timing to every 10ms. However, while its displaying Frame 1, if Frame 2 is completed before the 10ms window and the application is still using double buffering, the frame buffers will get swapped and you have tearing.
  • In a double buffered system, V-Sync forces the video card to not swap the frame buffers until the display is in the V-Blanking period. And that's about it. If the system is using triple buffering, then V-Sync locks one of the frame buffers while the GPU is free to render on the other two as fast as it wants.
So the reason why you need G-Sync + VSync for a truly tear free experience is because G-Sync doesn't actually prevent the frame buffers from swapping. The reason for the frame rate limiter is you don't want the frame rate to exceed the G-Sync range.

Also read this article for further details: https://blurbusters.com/gsync/gsync101-input-lag-tests-and-settings/

EDIT: So to put it in a better summary, these are what the features are doing.
  • Frame Rate Limiting: This keeps the application from having a frame rate beyond the maximum G-Sync range. Going beyond it disables G-Sync and the V-Sync behavior (either on or off) kicks in. So either you'll have tearing or lag.
  • V-Sync: Prevents the GPU from swapping frame buffers while the GPU is sending something to the monitor. This can cause lag
  • G-Sync: This adjusts the V Blanking period of the display. This is meant to augment V-Sync because the frame buffers can't swap unless the monitor reaches its V Blanking period.
 
Last edited:
Solution