What is FreeSync?
In case you have never heard of FreeSync, here’s a very quick description coming from Wikipedia:
FreeSync is an adaptive synchronization technology for liquid-crystal displays that support a variable refresh rate, aimed at avoiding tearing and reducing stuttering caused by misalignment between the screen’s refresh rate and the content’s frame rate.
FreeSync was developed by AMD and first announced in 2014 to compete against Nvidia’s proprietary G-Sync. It is royalty-free, free to use, and has no performance penalty.
On a regular screen, you are typically stuck with 60 Hz or 30 Hz framerates. If a game becomes more resource intensive, and the frame rate drops below 60fps, the next best that your monitor can do (with Vsync) is wait for the next frame so you end up at 30 fps, which looks like stuttering when your eyes are used to 60fps. With FreeSync, the monitor will be able to switch to variable refresh frequencies in between 30Hz and 60Hz so that the gradient of FPS will be a lot smoother to you even when the game goes below 60 FPS.
Typically your monitor’s refresh rate is fixed at something like 60Hz, which corresponds to 60FPS. However, your GPU almost never delivers exactly 60FPS in every scene. Sometimes higher, sometimes lower. With VSync on, your monitor will ensure that:
- a frame produced faster than 16.7 ms (let’s say, 12 ms) will wait for the 16.7 ms Vsync monitor timing to be displayed.
- a frame produced slower than 16.7 ms (let’s say, 20 ms) will wait for the NEXT 16.7 ms Vsync monitor timing to be displayed. In this particular case, the monitor, having missed the new frame on time, will repeat the previous frame again until the next Vsync timing. This is what we call stuttering. Stuttering will occur even if you are slightly slower than 16.7ms – time is time and in order to have a constant 60 FPS, you would need your GPU to deliver on average new frames quite faster than 16.7 ms to make up for the variability in-game.
Now, FreeSync is a technology which enables Vsync to happen pretty much anytime (within a range). So if your GPU can only make new frames every 20ms, a FreeSync monitor will get that and refresh itself at every 20ms as well, instead of waiting for 33.3ms for the next frame. In practice, the monitor will stay as close as possible to the GPU’s output framerate and completely get rid of stuttering. So a 45 FPS framerate will appear as 45FPS on your monitor as well, and look much smoother than the resulting 30FPS on a non-FreeSync monitor.
FreeSync and Nvidia
State of Support on Nvidia (HDMI/DP)
Since Nvidia drivers 418.x or so, FreeSync is now supported for all Nvidia GPUs above 1000 series. They refer to it as “GSYNC compatible” displays – GSYNC displays used to include some kind of hardware to achieve the same effect and were officially approved by Nvidia (trademark I guess?). Since FreeSync has become very popular, Nvidia ended up supporting it as well, without referring to it directly. It would seem that just any FreeSync capable monitor out there could work with Nvidia cards nowadays, but please do your homework before empyting your wallet. 2 minutes of Google-fu can go a long way to avoid surprises.
How does it work in practice? Well, it’s supposed to be a simple box you tick on your nvidia-settings GUI client. FreeSync only works with Display Port and not HDMI (on Linux at least). This is also mentioned in the Arch Linux Wiki:
The monitor must be plugged in via DisplayPort. Some displays which implement (part of) the HDMI 2.1 specification also support VRR over HDMI. This is supported by the Nvidia driver and will likely be supported by the AMD driver in the future.
FreeSync only works on full screen modes, so you need to ensure that your games are not running in window or borderless window modes. Nvidia has a gsync indicator available which will display “normal” or “gsync” depending on which mode the application is currently using. This way you know for sure.
What to do about Vsync?
Now, should you keep Vsync turned on while you have FreeSync enabled? While the answer is not 100% clear, it seems the general recommendation is as follows:
- turn off Vsync in games, and turn it off as well in Nvidia-settings
- if possible, cap limit your FPS in-game under the max range of your FreeSync monitor. This way, you will basically remain all the time in the sweet spot for FreeSync to take over.
If you cannot cap your games’ max FPS, then it is worth activating Sync to V-blank (Vsync) in Nvidia-settings in order to handle the case where frames are faster than the faster refresh rate (which is not taken care of by FreeSync).