Freesync on Wayland Tumbleweed

Hi Community! I hope everyone had a great weekend!

Checking in the status for Freesync/VRR on Wayland vs X11.

Was reading on a little drama on the issue on multiple sources like Phoronix:

Along with some talks about Freesync being implemented at the kernel level:

Does this mean that we would still require today with a distro like Tumbleweed to both configure the X11 configuration file and make sure the kernel parameter is added for grub? Also, would these changes be enough for it to reflect on Wayland?

PROBLEM
I can’t confirm if freesync is enabled or not on both X11 and Wayland.

running xrandr --props on Wayland provides the following:

Screen 0: minimum 16 x 16, current 1920 x 1080, maximum 32767 x 32767
DP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 530mm x 300mm
        RANDR Emulation: 1
        non-desktop: 0
                supported: 0, 1
   1920x1080    164.83*+
...

running xrandr --props on X11 provides the following:

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
DP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 527mm x 296mm
        _KDE_SCREEN_INDEX: 1
        EDID:
                00ffffffffffff0006b32b24a7f20200
                1e210104a5351e783b0865ae4f3faa26
                175054bfcf00814081809500714f81c0
                b30001010101023a801871382d40582c
                45000f282100001e000000fd0030a5c8
                c83c010a202020202020000000fc0041
                535553205647323437513141000000ff
                0052374c4d54463139333139310a01be
                020330f14f010304131f120211900e0f
                1d1e1405230907078301000065030c00
                10006d1a0000020130a5000000000000
                0782805070384d400820f80c0f282100
                001afe5b80a070383540302035000f28
                2100001a866f80a07038404030203500
                0f282100001ad09480a070381e403040
                35000f282100001a00000000000000fc
        subconnector: Native
                supported: Unknown, VGA, DVI-D, HDMI, DP, Wireless, Native
        HDCP Content Type: HDCP Type0
                supported: HDCP Type0, HDCP Type1
        Content Protection: Undesired
                supported: Undesired, Desired, Enabled
        vrr_capable: 1
                range: (0, 1)
        Colorspace: Default
                supported: Default, BT709_YCC, opRGB, BT2020_RGB, BT2020_YCC
        max bpc: 10
                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
        CTM: 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0
                0 1
        CONNECTOR_ID: 92
                supported: 92
        non-desktop: 0
                range: (0, 1)
   1920x1080     60.00 + 165.00*

There is no vrr-capable related output when running xrandr.
How can I confirm that Freesync/VRR is truly enabled?
Would enabling it on X11 reflect on Wayland or is there additional configurations needed including those for my compositor?

Goals
Have confirmation that Freesync is on on Wayland/X11 with 1 Monitor.
Confirm that Option “AsyncFlipSecondaries” on the X11 conf file works once I plug in 2 additional monitors on Wayland/X11.

System Information

screenfetch

OS: openSUSE 20240621
Kernel: x86_64 Linux 6.9.5-1-default
Shell: bash 5.2.26
Resolution: 1920x1080
DE: KDE
WM: KWin
GTK Theme: Breeze-Dark [GTK2], Breeze [GTK3]
Icon Theme: Gruvbox-Plus-Dark
CPU: Intel Core i9-9900K @ 16x 5GHz [39.0°C]
GPU: AMD Radeon RX 7800 XT (radeonsi, navi32, LLVM 18.1.6, DRM 3.57, 6.9.5-1-default)
RAM: 6924MiB / 32007MiB

STEPS TAKEN

Verify Monitor Freesync Capability
Install read-edid
zypper install -y read-edid
Read edid from sysfs
ls /sys/class/drm/*/edid | xargs -i{} sh -c "echo {}; parse-edid < {}"
Output:

/sys/class/drm/card1-DP-1/edid
Checksum Correct

Section "Monitor"
        Identifier "ASUS VG247Q1A"
        ModelName "ASUS VG247Q1A"
        VendorName "AUS"
        # Monitor Manufactured week 30 of 2023
        # EDID version 1.4
        # Digital Display
        DisplaySize 530 300
        Gamma 2.20
        Option "DPMS" "true"
        Horizsync 200-200
        VertRefresh 48-165
        # Maximum pixel clock is 600MHz

Input the Model Number at the following AMD freesync for verification:

Configure X11
/etc/X11/xorg.conf.d/20-amdgpu.conf

Section "OutputClass"
     Identifier "AMD"
     MatchDriver "amdgpu"
     Driver "amdgpu"
     Option "TearFree" "true"
     Option "VariableRefresh" "true"
     Option "AsyncFlipSecondaries" "true" #multimonitor setup, but at least one is not FreeSync capable
EndSection

Configure Grub
/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="splash=silent resume=/dev/system/swap mitigations=auto quiet security=apparmor"
GRUB_CMDLINE_LINUX="amdgpu.freesync_video=1"

References Used:
https://wiki.archlinux.org/title/AMDGPU#Xorg_configuration

Since I got btrfs I ended up reverting back to the buggy Mesa driver from pakman that got released and it was showing as vrr capable :open_mouth:

Ended up re-doing all the work to get it back to the official opensuse repo/driver and installed Mesa-libRusticlOpenCL on top of it, restarted the machine and it’s now working.

Let me test houdini, autodesk maya and davinci resolve for a bit and report back any issues.

Doesn’t your display have a menu that shows the actual frequency? Running GNOME 46 on Wayland here and my display makes it quite easy to verify VRR is working or not. If it stays “60Hz” or in my case “165Hz” constantly, then it’s probably not working.

AMDGPU did neither need a specific kernel parameter nor a X11 config to work under Wayland (anymore). It just worked… if it worked :smiley:

Got some nasty Kernel panics though, that’s why I didn’t go with VRR enabled.

Everything is working as expected after some good .conf tunning. This can be closed now.

The topic self closes a month after no further replies. This will happen after 7 days if you mark as solved. You could even post your config changes explicitly here to share with others who may come searching.

Thank you @deano_ferrari for the reminder.

I had to play around with the priority of the ports on the GPU itself.
Removed any monitor conf’s I had on /etc/X11/xorg.conf.d/ and created a new one from scratch ( I had 2 confusing .confs created by third party packages). Keep in mind that I do have to turn off the HDMI monitor to get this working leaving just the 2 identical DP connected monitors .


Section "Monitor"
        Identifier "DP-1"
        Option "PreferredMode" "1920x1080"
        Option "TargetRefresh" "165"
        Option "DPMS" "true"
        Option "Primary" "true"
        Option "VariableRefresh" "true"
        Option "AsyncFlipSecondaries" "true"
EndSection

Section "Monitor"
        Identifier "DP-2"
        Option "PreferredMode" "1920x1080"
        Option "DPMS" "true"
        Option "LeftOf" "DP-1"
        Option "Rotate" "left"
EndSection

Section "Monitor"
        Identifier "HDMI-1"
        Option "PreferredMode" "1280x800"
        Option "DPMS" "true"
        Option "RightOf" "DP-1"
        Option "Rotate" "left"
EndSection

Do a startx on the terminal (just in case it breaks anything you can still get back to your previous session).

Then proceed with creating and adding the following for 20-amdgpu.conf which provides zero latency (great if you are into fighting games like Street Fighter and/or shooting games)

Section "OutputClass"
     Identifier "AMD"
     MatchDriver "amdgpu"
     Driver "amdgpu"
     Option "EnablePageFlip" "off"
     Option "TearFree" "false"
EndSection

and ran xrandr again. You should now see vrr options. Hope this helps anyone else having a headache with this.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.