Enabling AMD Radeon FreeSync On Linux 5.0
One of the most asked questions in recent weeks has been how to enable the newly added support for FreeSync on Linux. Now with Linux 5.0 out there, here is a quick guide.
Of course, you first need a supported display and graphics card that are capable of supporting FreeSync/Adaptive-Sync. Fortunately, there are a lot of FreeSync displays out there these days, including many at affordable prices. As for GPUs, any recent AMD Radeon graphics card on the AMDGPU kernel driver should end up working out.
Previously AMD offered FreeSync support via their hybrid driver package with its DKMS module in Radeon Software, but now it’s mainline if you are on at least Linux 5.0. For Ubuntu users, you can grab the newly minted Linux 5.0 kernel here if not wanting to build it yourself.
To utilize FreeSync you need to be using the xf86-video-amdgpu DDX driver. You can verify so looking for «AMDGPU» in the Xorg.0.log. You also need the above-shown Xorg.conf snippet to enable the «VariableRefresh» AMDGPU DDX driver option. Using the xf86-video-modesetting DDX is unsupported at this time. Your xf86-video-amdgpu driver also has to be relatively new, but such supported X.Org driver can be found in the likes of the Padoka PPA.
After enabling the VariableRefresh option and restarting the X.Org server, you can verify that the DDX is new enough and option is working by ensuring that VariableRefresh is successfully mentioned in your Xorg log.
You can also verify via xrandr —props that vrr_capable is set to «1» on your connected FreeSync displays, for ensuring the display actually is capable of FreeSync / Variable Rate Refresh.
Your Mesa build needs to be at least Mesa 19.0 for having the necessary FreeSync/VRR bits in place. Ubuntu users can enjoy the Padoka PPA for a supported version of Mesa as well as xf86-video-amdgpu and that pairs nicely with the mainline Linux 5.0 kernel.
Also note that Vulkan games are not supported at this time for FreeSync by RADV or AMDVLK drivers. Also note that Mesa has black-listed the various desktop compositors, web browsers, and media players from enabling FreeSync support. At this point the configuration process is unfortunately not GUI driven like NVIDIA’s new G-SYNC Compatible (Adaptive-Sync) Linux support.
If running into any issues, drop by the forums.
LinuxComp
Чтобы включить freesync, монитор должен быть подключен либо к amd карте (интегрированной или встроенной, но поддерживающей этот режим), либо к nvidia серии 10+. Intel пока не поддерживает Freesync.
Свежее сообщение об intel: https://www.dell.com/community/XPS-Desktops/FreeSync-G-Sync-monitors-compatible-with-Intel-UHD-630-video/td-p/7486449 — февраль 2020
https://www.quora.com/What-is-AMD-free-sync-on-monitors-and-does-it-work-with-Intel-NVIDIA — декабрь 2019
> AMDs own workaround for Adaptive Sync over HDMI
Это FreeSync via HDMI. Используется проприетарный протокол AMD. Работает только на windows. В linux в open source драйвер включать не будут. В linux в amdgpu-pro libgl может быть и включат потом. Как отличить эту технологию? Наверное по спецификации монитора: если он заявляет поддержку FreeSync, при этом версия hdmi ниже 1.2, значит это оно.
В общем, непонятно, стоит ли полагаться на будущее этого варианта. Если покупать моник с нуля, то лучше оттклкиваться сразу с hdmi версией 1.2.
>With HDMI 2.1 there will be an official Adaptive Sync alternative over HDMI, called VRR (Variable Refresh Rate).
Это HDMI VRR. Официално пока нет, ждём когда утвердят стандарт.
https://www.phoronix.com/scan.php?page=news_item&px=AMD-FreeSync-2019-Update
But as for the formal HDMI Variable Rate Refresh (VRR) support, they note it’s «pending» but held up by a HDMI VRR conformance test suite being released. So hopefully once that CTS is available, HDMI VRR will be flipped on for Linux users wishing to enjoy Adaptive-Sync/VRR functionality for HDMI displays.
Так что пока ждём. На Linux поддерживаться будет.
Что по Display Port VRR?
Как я понял, так же как и в случае с hdmi. Есть решение через проприетарный протокол, а есть стандарт DP supported via Adaptive Sync spec. Как отличить? По идее, версия DP должна быть определённой.
Какие продукты поддерживают технологию AMD FreeSync™?
К совместимым графическим процессорам относятся все видеокарты AMD Radeon™, начиная с серии Radeon™ HD 7000, выпущенной в 2012 году, и все более новые потребительские видеокарты Radeon.
Можно ли использовать технологию AMD FreeSync™ при подключении через HDMI®?
Да, технология FreeSync поддерживает интерфейс HDMI с самого начала. Многие дисплеи с сертификацией FreeSync поддерживали технологии использования переменной частоты обновления экрана по HDMI задолго до появления HDMI 2.1 и принятия стандарта HDMI VRR. Покупка дисплея с сертификацией FreeSync, поддерживающего FreeSync по HDMI, позволяет использовать преимущества переменной частоты обновления экрана, даже если дисплей не поддерживает стандарт HDMI 2.1.
Amd freesync hdmi linux
We are private in protest of the API changes. https://www.theverge.com/2023/6/8/23754780/reddit-api-updates-changes-news-announcements Don’t message us for access, everyone is blocked out site-wide. See http://redd.it/1476ioa for more info.
We have had Freesync «support» for quite some time now, but it is extremely restrictive and very picky to get it working. Just the requirements to have Freesync working is no-go for many:
-> No video playback or turning it on while on desktop;
-> Should only be turned on only while the game/software in question is in fullscreen;
-> Only tested/working distro is Ubuntu 16.04.3;
-> Need of setting it up through some quite cryptic commands;
-> Doesn’t work after hotplug or system restart;
-> No Freesync over HDMI (which isn’t a massive problem, but a nice option to have);
-> Apparently only OpenGL, no Vulkan (Steam Play/Proton, which is the main purpose for Freesync at the moment, doesn’t work);
I am not really complaining, because I do know that Freesync is hard to get working on Linux, but we have had so many advancements on the gaming side of Linux, and we are still stuck with all of these restrictions to use Freesync, which is quite a useful functionality for almost every gamer. If Mozilla got video decoding working well on Wayland, I hope (Idk anything about this, just hoping) that it could also be easy to implement Freesync on Wayland too.
We just haven’t had that many improvements on this side of the Linux gaming world, and I’d like to know if it is lack of support/interest by AMD, or if it actually is extremely hard to implement it on Linux. Freesync would also be very useful for those who are running monitors over 60Hz, so that those 60FPS videos don’t look as weird as they do while playing back on higher refresh rate monitors. It is just a nice thing for everybody, really!
HOWTO enable Adaptive Vertical Sync (Freesync) on AMD GPUs
You can enable Variable Refresh Rate adjustment (VRR) on GNU/Linux if you have a AMD graphics card and a display capable of variable refresh. The monitor does not have to use the AMD «Freesync» standard for this to work, VRR can be enabled on any display following the VESA DisplayPort 1.4 VRR specification (it will usually work with DisplayPort 1.2 or higher). VRR is disabled by default; enabling it is a simple matter of setting the X configuration option VariableRefresh to true .
You do not need a «Freesync» branded monitor. You do need one with support for variable refresh rates using either Freesync or the VESA DisplayPort VRR standard.
Requirements [ edit ]
You will need a display which is either capable of doing AMD Freesync OR able to do vertical refresh synchronization using the VESA standard. You will also need:
- Linux 5.0+ (Any recent kernel will do)
- Mesa 19.0+ for OpenGL and Mesa 19.1+ for Vulkan VRR support
- A display connected using DisplayPort. VRR is currently not supported on displays connected using HDMI (unless that’s changed, it’s still the case with Linux 5.9.1).
You can run xrandr —prop | less and search for vrr_capable by pressing / or xrandr —prop |grep vrr to just get the vrr_capable: setting. If you have one or more monitors that say vrr_capable: 1 then congratulations, your display has variable refresh rate support. Note that vrr_capable: 1 does not mean it’s enabled, it just means it’s supported.
Check your monitors menu if you suspect that it may support VRR and it’s connected using DisplayPort and xrandr shows it as vrr_capable: 0 . There are some «office» monitors with VRR support that are shipped with VRR turned off. ASUS PB27U is one example of a monitor that can do VRR if you enable it in the display settings.
Configuration [ edit ]
All you need to enable «Freesync»/VRR is a line that says Option «VariableRefresh» «true» to a configuration file named something like 20-radeon.conf in the folder /etc/X11/xorg.conf.d/ . That’s it. Here’s an example:
Section "Device" Identifier "AMD" Driver "amdgpu" # 8-bit or 10-bit colors 24 or 30 # Using 10-bit breaks Chromium and Chrome DefaultDepth 24 Option "TearFree" "1" Option "VariableRefresh" "true" EndSection
The Option «TearFree» «1» is not required for Option «VariableRefresh» «true» and either setting can be used without the other. TearFree will enable triple buffering which will eliminate tearing in games with a broken vsync implementation and also prevent tearing in a lot of other cases. xfwm4 4.12 is one prime example of something which requires this setting.
grep VariableRefresh /var/log/Xorg.0.log will show AMDGPU(0): VariableRefresh: enabled if this setting is read and it will show AMDGPU(0): VariableRefresh: disabled if it’s not. Do be aware that the log will say AMDGPU(0): VariableRefresh: enabled as long as X understands that you’ve set Option «VariableRefresh» «true» , this does not show if it’s working or not. X will happily log VariableRefresh: enabled even if there are no VRR capable displays connected.
One last minor detail: You will also need Option «DRI» «3» if you are using Xorg >= 1.18.3. That’s a very old Xorg version so your Mesa and kernel versions are probably too old to use VRR if your Xorg version is that old.
Limitiations [ edit ]
There are some caveats to be aware of.
- VRR/Freesync will only work if games or and applications that are running full screen.
- Window-managers like xfwm4 needs to have a configuration option like Display fullscreen windows in an overlay directly enabled.
The small and simple test application «Unofficial OpenGL G-SYNC Demo for Linux» available at github.com/dahenry/gl-gsync-demo is a quick and easy way to verify that adaptive sync is working. It is made with G-SYNC but that doesn’t matter, it will test AMD adaptive sync just fine (it will crash if you try to turn vsync on/off by pressing V). Turn on your monitors FPS counter (if it has one) and run that and you should see the monitors FPS overlay display change. That should make you happy until you try some games. SuperTuxKart does NOT support variable refresh rate, neither does CS:GO or anything else for that matter.
Feel free to leave a comment below if you are aware of any worthwhile games that actually support the technology on GNU/Linux. It seems very much like VRR is something you can enable and test but not actually use for anything practical.
AMD FreeSync HDMI Patch Appearing For Their Open-Source Linux Driver
While the AMD Linux graphics driver for some time has been supporting FreeSync over DisplayPort connections, FreeSync displays connected via HDMI have not been supported. But now we are finally seeing the start of patches at least as far as HDMI pre-v2.1 support is concerned.
HDMI 2.1 has Variable Refresh Rate (VRR) as part of the standard for reducing lag, stuttering, and frame tearing particularly while gaming. While HDMI 2.1 has the standardized VRR and many other features, HDMI Forum limiting specification access and what can be supported by open-source drivers has for now led to the lack of support there among the open-source Linux graphics drivers. The X.Org Foundation is trying to get the HDMI Forum to change course to allow for better open-source support, but anyhow what we are seeing with patch work that came out on Friday is for AMD’s vendor-specific FreeSync with pre-v2.1 HDMI.
There finally is a patch adding support for FreeSync HDMI to the DC «Display Core» and DMCU (Display Micro Controller Unit) with the AMDGPU kernel driver.
It’s not clear if it’s all complete yet, but at least with the newest DC patches it’s clear that FreeSync HDMI support is finally being worked on at least for pre-2.1 support for displays explicitly advertising AMD FreeSync capabilities. The timing though won’t have this work coming to Linux 5.12 but hopefully it will get buttoned up in time for Linux 5.13 this summer. Prior to that it will likely work its way as well into AMD’s packaged driver offerings.