Could we help you? Please click the banners. We are young and desperately need the money
In multi-monitor setups using AMD GPUs on Linux, users often encounter a frustrating performance issue: when connecting monitors with different refresh rates, all displays default to the lowest refresh rate. For example, pairing a 144Hz monitor with a 60Hz secondary screen can cause the high-refresh monitor to be capped at 60Hz. This not only degrades user experience but also negates the benefits of high-refresh hardware. Fortunately, with the correct use of the amdgpu driver and specific xorg.conf options, this issue can be resolved or significantly mitigated.
Under the X11 display server, AMD’s driver (amdgpu) has historically synchronized buffer flips across displays. When one monitor is running at 60Hz and another at 144Hz, the driver's default behavior forces both outputs to sync at the lower common denominator to avoid tearing, especially in mirrored or cloned display configurations. While this behavior may be technically safe, it sacrifices performance.
To overcome this limitation, AMD’s open-source amdgpu driver supports certain options in the xorg.conf configuration file. These include enabling asynchronous page flips and variable refresh rate (VRR). Together, these settings allow each monitor to operate at its native refresh rate.
Create a new Xorg configuration file:
sudo nano /etc/X11/xorg.conf.d/20-amdgpu.conf
Insert the following configuration:
Section "Device"
Identifier "AMD"
Driver "amdgpu"
Option "AsyncFlipSecondaries" "True"
Option "VariableRefresh" "true"
EndSection
Save the file and reboot your system.
That’s it — with this setup, your high refresh rate monitor should no longer be held back. This is especially beneficial for Linux gamers using a 144Hz primary display alongside a 60Hz secondary monitor for applications like Discord, Twitch, or system monitoring.