Following the breakage of my previous GPU I decided to buy a more modern graphics card today, just finished installing the newer model which I’m very happy with! The new card supports AMD FreeSync, so does my monitor, and I’m using a DisplayPort cable which I understand is the only connection supported by the kernel for now. Seeing I meet all the criteria, I figured I’d ask what it will take to ensure variable refresh rate is enabled. My new video card is an ASUS Radeon RX 570 ROG STRIX.
Unfortunately the only information I could find is the xrandr --props command, it indeed shows vrr_capable: 1 for my DP connection so that’s a good start. Capable doesn’t mean enabled though, and I couldn’t find the command to actually ensure that it is. When running a game in full screen (eg: TheDarkMod or RedEclipse) the monitor’s OSD still shows a fixed refresh rate, I take it that means not enabled. Is it possible to turn FS on and give it a test, ideally without having to hack system configs and make permanent changes to files maintained by system packages?
Thanks. Following another suggestion, I used the systool -vm amdgpu command to check its status: Initially it was reporting no freesync, after booting with the amdgpu.freesync_video=1 kernel parameter it now reports freesync_video = "1". I take it this means it should be enabled, though I can’t tell as the monitor’s OSD doesn’t label it… any way to be certain it’s really working?
I tested it myself, unfortunately there is no real sync between the monitor and the AMD GPU, but the monitor OSD shows the same constant 120 Hz, it is not changed flexibly and not like changeable FPS from GPU (Less than maximum 120 FPS).
I see no screen tearing, but a bit of shuttering that I did not notice much.
I checked it on Windows that actually has sync between the monitor and GPU, both show same changeable FPS and Hz.
I would try to follow the wiki article. I would also test following the three methods in the wiki article.
Also, maybe worth a verification as I see you have two outputs set to 1 and two set to 0
xrandr will show the properties for all video output ports; make sure to look at the one that’s actually connected to your monitor - the other outputs will report vrr_capable: 0.
Same behavior again after testing one monitor. The monitor refresh rate Hz is always constant, this is independent of FPS from GPU, but FPS can be limited to maximum Hz. That is defined by vsync, unlike freesync.
vsync != freesync. I mean freesync can change the refresh rate of the monitor.
For FreeSync to work in OpenGL applications, V-Sync must be turned ON. If V-Sync is OFF, flipping may not occur hence FreeSync will not be engaged. Please note that if the individual application does not have V-Sync options, you can set it globally by modifying /etc/amd/amdrc (change the parameter ‘OGLWaitVerticalSync’ from 1 to 3)
I turned on V-Sync in Dota 2, FPS can be limited to maximum FPS like the defined refresh rate of Monitor, but the refresh rate Hz is not changeable. (xxx FPS <= 120 Hz )
V-Sync is off, then no limit of FPS ( xxx FPS != 120 Hz )
The Chill Max value will match the peak refresh rate.
The Chill Min value will match the minimum refresh rate of the display’s FreeSync range or one-half of the display’s peak refresh rate, whichever is higher.
The only way to use FreeSync with a multi-monitor setup is to use Wayland. Work fine in KDE Wayland for me (1x FreeSync Monitor, 2x Normal). Heard it works well with Sway as well.
Thank for the info, I knew it.
But I do not think that Wayland with Freesync (using Sway) can change the refresh rate of the monitor. It is just like V-Sync that can not change the refresh rate.
Xorg supports V-Sync well, no screen tearing.
To be clear about my own case: I’m on X11 (because monitor standby is endlessly broken in Wayland) but have just one monitor enabled as described. I have a VR headset connected, it’s disabled by the system to the point it doesn’t even show in the KDE display settings by default, thus this shouldn’t be a problem really. Obviously the games I’m testing are running in full screen, the desktop compositor gets disabled as well (can be seen by alt-tab switching).
I understand an extra command might be needed to enable it apart from the kernel parameter:
I tried it out, 0 is the port my monitor is on as reported by xrandr. I am however met with an error about fonts and colors which I can’t quite understand.
X Error of failed request: BadName (named color or font does not exist)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 11 (RRQueryOutputProperty)
Serial number of failed request: 43
Current serial number in output stream: 43
Semi-related to the issue but good to ask: Is it known when freesync will be considered stable and enabled by default on all graphics cards and monitors that support it? I understand it’s been added to the kernel for over two years, but even in 5.15 it’s an experimental feature still.
Manjaro also has an AMD experimental package users can install for such features. Might be worth considering support for this in its patches till then.
I think that Freesync is not enabled by default for Linux except V-Sync. It depends on GPU driver control and Game setting. You enable it manually, but it is like V-Sync.
You actually have V-Sync enabled already and see no screen tearing. Freesync uses V-sync.