AMD FreeSync On openSUSE Tumbleweed - Can Not Get FreeSync To Enable

Hi and thank you for your assistance ahead of time.

I’ve been unable to get AMD Freesync enabled in openSUSE Tumbleweed KDE Plasma 5 desktop. I’m using a Radeon VII AMD GPU, Display Port connection on an Optix MSI MAG321CQR monitor with FreeSync.

Here are the steps I’ve tried based on Phoronix guide and other forums:

  • In path: /etc/X11/xorg.conf.d
  • created r.conf (also tried 20-amdgpu.conf) and included the following:
`Section "OutputClass"
    Identifier "AMDgpu"
    MatchDriver "amdgpu"
    Driver "amdgpu"
    Option "DRI" "3"
    Option "VariableRefresh" "true"
EndSection`

As I understand it. ‘VariableRefresh true’ is the flag that enables FreeSync.

  • After reboot the output of xrandr --prop still show
    ‘TearFree: auto
    supported: off, on, auto’
    ‘vrr_capable: 0
    range: (0, 1)’

  • When FreeSync is enabled vrr_capable is supposed to turn from 0 to 1. So it would read ‘vrr_capable: 1’.

Does anyone have experience enabling FreeSync on openSUSE and what options (even enabling manually) I can try?

Thank you again!

Hi
What amdgpu kernel module options (parameters) are set?


systool -vm amdgpu

Thank you for your reply. Here is the output of systool -vm amdgpu

Module = "amdgpu"


  Attributes:
    coresize            = "3915776"
    initsize            = "0"
    initstate           = "live"
    refcnt              = "48"
    srcversion          = "FEF074BD5A8DE00489EB2B2"
    taint               = ""
    uevent              = <store method only>


  Parameters:
    aspm                = "-1"
    audio               = "-1"
    bapm                = "-1"
    benchmark           = "0"
    cg_mask             = "4294967295"
    cik_support         = "0"
    cntl_sb_buf_per_se  = "0"
    compute_multipipe   = "-1"
    cwsr_enable         = "1"
    dc                  = "-1"
    dcfeaturemask       = "0"
    debug_largebar      = "0"
    deep_color          = "0"
    disable_cu          = "(null)"
    disp_priority       = "0"
    dpm                 = "-1"
    emu_mode            = "0"
    exp_hw_support      = "0"
    fw_load_type        = "-1"
    gartsize            = "4294967295"
    gpu_recovery        = "-1"
    gttsize             = "-1"
    halt_if_hws_hang    = "0"
    hw_i2c              = "0"
    hws_max_conc_proc   = "8"
    ignore_crat         = "0"
    ip_block_mask       = "4294967295"
    job_hang_limit      = "0"
    lbpw                = "-1"
    lockup_timeout      = "10000"
    max_num_of_queues_per_device= "4096"
    moverate            = "-1"
    msi                 = "-1"
    ngg                 = "0"
    noretry             = "0"
    param_buf_per_se    = "0"
    pcie_gen2           = "-1"
    pcie_gen_cap        = "0"
    pcie_lane_cap       = "0"
    pg_mask             = "4294967295"
    pos_buf_per_se      = "0"
    ppfeaturemask       = "4294787071"
    prim_buf_per_se     = "0"
    runpm               = "-1"
    sched_hw_submission = "2"
    sched_jobs          = "32"
    sched_policy        = "0"
    sdma_phase_quantum  = "32"
    send_sigterm        = "0"
    si_support          = "0"
    smu_memory_pool_size= "0"
    test                = "0"
    virtual_display     = "(null)"
    vis_vramlimit       = "0"
    vm_block_size       = "-1"
    vm_debug            = "0"
    vm_fault_stop       = "0"
    vm_fragment_size    = "-1"
    vm_size             = "-1"
    vm_update_mode      = "-1"
    vram_page_split     = "512"
    vramlimit           = "0"


  Sections:
    .altinstr_replacement= "0xffffffffc08b7dc8"
    .altinstructions    = "0xffffffffc09eecf7"
    .bss                = "0xffffffffc0a10280"
    .data..read_mostly  = "0xffffffffc0a0fed0"
    .data.once          = "0xffffffffc0a0ec48"
    .data               = "0xffffffffc09f9000"
    .exit.text          = "0xffffffffc08b798a"
    .gnu.linkonce.this_module= "0xffffffffc0a0ff00"
    .init.text          = "0xffffffffc0a94000"
    .note.Linux         = "0xffffffffc08b8024"
    .note.gnu.build-id  = "0xffffffffc08b8000"
    .orc_unwind         = "0xffffffffc09992d0"
    .orc_unwind_ip      = "0xffffffffc09612a8"
    .parainstructions   = "0xffffffffc09ee040"
    .ref.data           = "0xffffffffc0a0f060"
    .rodata.cst4        = "0xffffffffc09eed7c"
    .rodata.cst8        = "0xffffffffc09eeef0"
    .rodata             = "0xffffffffc08b8040"
    .rodata.str1.1      = "0xffffffffc0956554"
    .rodata.str1.8      = "0xffffffffc092a980"
    .smp_locks          = "0xffffffffc09ed30c"
    .strtab             = "0xffffffffc0ad9d18"
    .symtab             = "0xffffffffc0a95000"
    .text..refcount     = "0xffffffffc08b79aa"
    .text               = "0xffffffffc06d7000"
    .text.unlikely      = "0xffffffffc08a5ad1"
    __bpf_raw_tp_map    = "0xffffffffc0a0ec60"
    __bug_table         = "0xffffffffc09fd804"
    __ex_table          = "0xffffffffc09ed730"
    __jump_table        = "0xffffffffc09ef000"
    __mcount_loc        = "0xffffffffc091f3bd"
    __param             = "0xffffffffc09608f8"
    __tracepoints_ptrs  = "0xffffffffc09eea1c"
    __tracepoints_strings= "0xffffffffc09eea80"
    __tracepoints       = "0xffffffffc0a0f8a0"
    __verbose           = "0xffffffffc0a00b68"
    _ftrace_events      = "0xffffffffc0a0ef80"







Hi
Can you enable the ngg option (next generation graphics) by editing the grub option and add;


amdgpu.ngg=1

Or can add via YaST bootloader kernel options, once booted check the output of the command again and run your other tests/checks.

Ok I added it via YaST bootloader kernel options. Rebooted. Here is the output:

xrandr --prop
Screen 0: minimum 320 x 200, current 4480 x 1440, maximum 16384 x 16384
DisplayPort-0 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 698mm x 393mm
	EDID: 
		00ffffffffffff003669621401000000
		071d0104a54627783b8e05ad4f33b026
		0d5054afcf00818081bc9500953cb300
		b33cd1fcd1c059e7006aa0a067501520
		3500ba892100001a565e00a0a0a02950
		30403500ba892100001a000000fc004d
		5349204d4147333231435152000000ff
		004b41334830373930373130303201b7
		02033571510102031112130f1d1e0e90
		1f044b4c051423091707830100006503
		0c00100067d85dc401788800681a0000
		01013090006fc200a0a0a05550302035
		0055502100001a565e00a0a0a0295030
		203500b1892100001a00000000000000
		00000000000000000000000000000000
		000000000000000000000000000000f4
	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
	vrr_capable: 0 
		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: 59 
		supported: 59
	non-desktop: 0 
		range: (0, 1)
   2560x1440    143.97*+ 120.00    59.95    59.95  
   1920x1200    143.97  
   1920x1080    119.96    60.00    60.00    50.00    59.94  
   1600x1200    143.97  
   1680x1050    119.95    59.95  
   1280x1024    119.96    75.02    60.02  
   1440x900     119.98    59.89  
   1280x800     143.97  
   1280x720      60.00    50.00    59.94  
   1440x576      50.00  
   1024x768      75.03    70.07    60.00  
   1440x480      60.00    59.94  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    60.00    59.94  
   720x400       70.08  
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
	GAMMA_LUT_SIZE: 4096 
		range: (0, -1)
	DEGAMMA_LUT_SIZE: 4096 
		range: (0, -1)
	GAMMA_LUT: 0 
		range: (0, 65535)
	CTM: 0 
	DEGAMMA_LUT: 0 
		range: (0, 65535)
	TearFree: auto 
		supported: off, on, auto
	vrr_capable: 0 
		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: 63 
		supported: 63
	non-desktop: 0 
		range: (0, 1)

And SysTool output:

Module = "amdgpu"


  Attributes:
    coresize            = "3915776"
    initsize            = "0"
    initstate           = "live"
    refcnt              = "35"
    srcversion          = "FEF074BD5A8DE00489EB2B2"
    taint               = ""
    uevent              = <store method only>


  Parameters:
    aspm                = "-1"
    audio               = "-1"
    bapm                = "-1"
    benchmark           = "0"
    cg_mask             = "4294967295"
    cik_support         = "0"
    cntl_sb_buf_per_se  = "0"
    compute_multipipe   = "-1"
    cwsr_enable         = "1"
    dc                  = "-1"
    dcfeaturemask       = "0"
    debug_largebar      = "0"
    deep_color          = "0"
    disable_cu          = "(null)"
    disp_priority       = "0"
    dpm                 = "-1"
    emu_mode            = "0"
    exp_hw_support      = "0"
    fw_load_type        = "-1"
    gartsize            = "4294967295"
    gpu_recovery        = "-1"
    gttsize             = "-1"
    halt_if_hws_hang    = "0"
    hw_i2c              = "0"
    hws_max_conc_proc   = "8"
    ignore_crat         = "0"
    ip_block_mask       = "4294967295"
    job_hang_limit      = "0"
    lbpw                = "-1"
    lockup_timeout      = "10000"
    max_num_of_queues_per_device= "4096"
    moverate            = "-1"
    msi                 = "-1"
    ngg                 = "1"
    noretry             = "0"
    param_buf_per_se    = "0"
    pcie_gen2           = "-1"
    pcie_gen_cap        = "0"
    pcie_lane_cap       = "0"
    pg_mask             = "4294967295"
    pos_buf_per_se      = "0"
    ppfeaturemask       = "4294787071"
    prim_buf_per_se     = "0"
    runpm               = "-1"
    sched_hw_submission = "2"
    sched_jobs          = "32"
    sched_policy        = "0"
    sdma_phase_quantum  = "32"
    send_sigterm        = "0"
    si_support          = "0"
    smu_memory_pool_size= "0"
    test                = "0"
    virtual_display     = "(null)"
    vis_vramlimit       = "0"
    vm_block_size       = "-1"
    vm_debug            = "0"
    vm_fault_stop       = "0"
    vm_fragment_size    = "-1"
    vm_size             = "-1"
    vm_update_mode      = "-1"
    vram_page_split     = "512"
    vramlimit           = "0"


  Sections:
    .altinstr_replacement= "0xffffffffc0648dc8"
    .altinstructions    = "0xffffffffc077fcf7"
    .bss                = "0xffffffffc07a1280"
    .data..read_mostly  = "0xffffffffc07a0ed0"
    .data.once          = "0xffffffffc079fc48"
    .data               = "0xffffffffc078a000"
    .exit.text          = "0xffffffffc064898a"
    .gnu.linkonce.this_module= "0xffffffffc07a0f00"
    .init.text          = "0xffffffffc0825000"
    .note.Linux         = "0xffffffffc0649024"
    .note.gnu.build-id  = "0xffffffffc0649000"
    .orc_unwind         = "0xffffffffc072a2d0"
    .orc_unwind_ip      = "0xffffffffc06f22a8"
    .parainstructions   = "0xffffffffc077f040"
    .ref.data           = "0xffffffffc07a0060"
    .rodata.cst4        = "0xffffffffc077fd7c"
    .rodata.cst8        = "0xffffffffc077fef0"
    .rodata             = "0xffffffffc0649040"
    .rodata.str1.1      = "0xffffffffc06e7554"
    .rodata.str1.8      = "0xffffffffc06bb980"
    .smp_locks          = "0xffffffffc077e30c"
    .strtab             = "0xffffffffc086ad18"
    .symtab             = "0xffffffffc0826000"
    .text..refcount     = "0xffffffffc06489aa"
    .text               = "0xffffffffc0468000"
    .text.unlikely      = "0xffffffffc0636ad1"
    __bpf_raw_tp_map    = "0xffffffffc079fc60"
    __bug_table         = "0xffffffffc078e804"
    __ex_table          = "0xffffffffc077e730"
    __jump_table        = "0xffffffffc0780000"
    __mcount_loc        = "0xffffffffc06b03bd"
    __param             = "0xffffffffc06f18f8"
    __tracepoints_ptrs  = "0xffffffffc077fa1c"
    __tracepoints_strings= "0xffffffffc077fa80"
    __tracepoints       = "0xffffffffc07a08a0"
    __verbose           = "0xffffffffc0791b68"
    _ftrace_events      = "0xffffffffc079ff80"

Hi
Can you check your Xorg log that it doesn’t error?

For example;


cat .local/share/xorg/Xorg.0.log |grep VariableRefresh

    10.099] (**) AMDGPU(0): Option "VariableRefresh" "true"
    10.488] (**) AMDGPU(0): VariableRefresh: enabled
    10.491] (**) AMDGPU(G0): Option "VariableRefresh" "true"

or

less .local/share/xorg/Xorg.0.log

I don’t have a FreeSync ready monitor here…

If all drivers seem ok, then maybe something to tweak on the monitor side?

This is interesting when I run that command I get:


 cat .local/share/xorg/Xorg.0.log |grep VariableRefresh
   148.382] (==) AMDGPU(0): VariableRefresh: disabled

Hi
You should already have a 10-amdgpu.conf?

Here is mine;


cat /etc/X11/xorg.conf.d/10-amdgpu.conf 

Section "OutputClass"
    Identifier "AMDgpu"
    MatchDriver "amdgpu"
    Driver "amdgpu"
    Option "DRI" "3"
    Option "VariableRefresh" "true"
EndSection

I copied your config into 10-amdgpu.conf. I now get a read out when I use either command, however, after reboot xrandr --prop is still showing vrr_capable 0. I checked the monitor and made sure FreeSync is switched to on. I did see these errors in the Xorg.0.log below:

less ~/.local/share/xorg/Xorg.0.log | grep error
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
193.950] (WW) xf86CloseConsole: KDSETMODE failed: Input/output error
193.950] (WW) xf86CloseConsole: VT_GETMODE failed: Input/output error
193.951] (WW) xf86CloseConsole: VT_ACTIVATE failed: Input/output error

Hi
So you get VariableRefresh enabled now? So are you running wayland or Xorg? I’m assuming Plasma DE?


echo $XDG_SESSION_TYPE

Hi
Also can you show the output from;


/sbin/lspci -nnk | egrep -A3 "VGA|Display|3D"

I’m using KDE and the X11 session.

echo $XDG_SESSION_TYPE
x11

/sbin/lspci -nnk | egrep -A3 “VGA|Display|3D”

1e:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Vega 20 [Radeon VII] [1002:66af] (rev c1)
	Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:081e]
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu

It’s still not working but I appreciate your sticking with me here.

Hi
Have a read here;
https://www.amd.com/en/support/kb/faq/gpu-754

Since there is no freesync output, try substituting with vrr_capable, but not sure it counts as I can set it…


DISPLAY=:0 xrandr --output eDP --set "vrr_capable" 1

eDP connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
    _MUTTER_PRESENTATION_OUTPUT: 0 
    EDID: 
        00ffffffffffff000daec61500000000
        241901049522137802c3c59155549428
        24505400000001010101010101010101
        010101010101da1d56e250002030442d
        470058c11000001ae71356e250002030
        442d470058c11000001a000000000000
        00000000000000000000000000000002
        000c42ff0c3c6e0f0e1a73000000004e
    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
    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: 51 
        supported: 51
    non-desktop: 0 
        range: (0, 1)
   1366x768      60.00*+  40.00  
   1280x720      60.00  
   1024x768      60.00  
   800x600       60.00  
   640x480       60.00  
HDMI-A-0 disconnected (normal left inverted right x axis y axis)
    _MUTTER_PRESENTATION_OUTPUT: 0 
    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
    vrr_capable: 0 
        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: 55 
        supported: 55
    non-desktop: 0 
        range: (0, 1)

This is the message when I try to set it manually:

DISPLAY=:0 xrandr --output eDP --set "vrr_capable" 1
warning: output eDP not found; ignoring
X Error of failed request:  BadRROutput (invalid Output parameter)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  15 (RRGetOutputProperty)
  Serial number of failed request:  44
  Current serial number in output stream:  44



Hi
My system is a laptop (dual amd gpu’s), you need to set the display port as per the link :wink: In your case DisplayPort-0


DISPLAY=:0 xrandr --output DisplayPort-0 --set "vrr_capable" 1

Ugh, ya that was silly of me. I ran the code again, this time no error so I thought we were onto something. However, after typing that command and then checking

xrandr -prop

it still shows vrr_capable: 0

I’ve also tried a different display port cable and completely power cycling. I did notice in your link it said it does not support multi-monitor so I disconnect my second monitor and tried these steps again (including full power cycle) and still the same issue. I booted into Arch to make sure this wasn’t a distro specific issue as well and the same problem is there. At this point I have to believe it’s just a hardware compatibility issue with either the GPU or the monitor.

Thank you so much for spending all day trying to help me with this. I really wanted to do a video review on FreeSync in Linux but looks like I might need to wait for AMD or MSI to work some kinks out.

Hi
No worries, glad to help :slight_smile: Maybe a query on the AMD forum may glean more info?

try ¨amdgpu.freesync_video=1¨ kernel parameter and check with Releases · Nixola/VRRTest · GitHub

Really a 4 year old thread???