FreeSync
Introduction
FreeSync, also known as Variable Refresh Rate (VRR) is a technology that prevents the tearing of images on screen.
The refresh rate from the monitor is adjusted to the framerate of the GPU, thus, no performance is lost as e.g. with V-Sync or triple buffering.
Contents
FreeSync Requirements
A FreeSync capable monitor
A FreeSync capable AMD GPU
- Mesa version 19 or higher
DRM version 5.4 or better.
xf86-video-amdgpu version 19 or better and/or xorg-server version 21.1.0 or better.
How to enable FreeSync
You create the file /usr/local/etc/X11/xorg.conf.d/amdgpu.conf and do write the following:
If you do like to use the modesetting driver by xorg-server instead by xf86-video-amdgpu use modesetting in Driver instead.
Section "Device" Identifier "Card0" Driver "amdgpu" Option "VariableRefresh" "true" EndSection
Verifying FreeSync is Enabled
Run xrandr --prop provided by x11/xrandr
This will list you all connections with all its capabilities and vrr_capable: 1 should then appear at the connection that you want to use.
Example:
DisplayPort-1 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 697mm x 392mm EDID: 00ffffffffffff004c2dde0f35305630 271d0104a54627783b4935ad5146a927 0f5054bfef80714f810081c081809500 a9c0b300010122e50050a0a067500820 f80cb9882100001a000000fd003090e1 e13b010a202020202020000000fc0043 33324a4735780a2020202020000000ff 0048544f4d3930303530360a20200141 020313f146901f041303122309070783 010000565e00a0a0a0295030203500b9 882100001a023a801871382d40582c45 00b9882100001e5aa000a0a0a0465030 203500b9882100001a6fc200a0a0a055 5030203500b9882100001a0000000000 00000000000000000000000000000000 000000000000000000000000000000af GAMMA_LUT_SIZE: 4096 range: (0, -1) DEGAMMA_LUT_SIZE: 4096 range: (0, -1) GAMMA_LUT: 0 range: (0, 65535) CTM: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 DEGAMMA_LUT: 0 range: (0, 65535) TearFree: auto supported: off, on, auto subconnector: Native supported: Unknown, VGA, DVI-D, HDMI, DP, Wireless, Native vrr_capable: 1 range: (0, 1) max bpc: 8 range: (8, 16) underscan vborder: 0 range: (0, 128) underscan hborder: 0 range: (0, 128) underscan: off supported: off, on, auto scaling mode: None supported: None, Full, Center, Full aspect link-status: Good supported: Good, Bad CONNECTOR_ID: 76 supported: 76 non-desktop: 0 range: (0, 1) 2560x1440 144.00*+ 120.00 99.95 59.95 1920x1200 144.00 1920x1080 60.00 50.00 59.94 1600x1200 144.00 1680x1050 59.95 1600x900 60.00 1280x1024 75.02 60.02 1440x900 59.89 1280x800 59.81 1152x864 75.00 1280x720 60.00 50.00 59.94 1024x768 75.03 70.07 60.00 832x624 74.55 800x600 72.19 75.00 60.32 56.25 720x576 50.00 720x480 60.00 59.94 640x480 75.00 72.81 66.67 60.00 59.94 720x400 70.08
Checking FreeSync Works
Try playing games where you know tearing can occur, or check your monitor's OSD to see if the refresh rate changes (if the monitor provides it).
Example from an Alienware OSD:
Issues, Limitations & Notes
FreeSync only works if no compositor is active and if the game window is "Fullscreen" or "Borderless Windowed".
FreeSync should not be used together with "TearFree" "On". Leave it on "auto" or don't define it.
- If the framerate changes too quickly in large intervals (Example: 52, 165, 68, 205), the picture may can flicker. How much it flickers depends on the monitor itself.
Under certain circumstances it can happen that the refresh rate does not match the frame rate, this happens for example when the frame rate is too low and the monitor still tries to display a smooth image. This can depend on the FreeSync mode or version that is used.
- x11-wm/enlightenment offers a feature that fullscreen windows are not composited, but it doesn't seem to work correctly. It works as intended when you do restart the WM while you are in the game window by using a shortcut key combination. Last tested version: 0.25.3,2