I can only get 120Hz monitor to run at 100Hz (AMD System)

Hello,

I have recently installed Garuda Linux Dragonized to daily drive for a while in preparation for moving away from windows post windows 10 support later this year. Not new to linux, have used rasperry pis, linux mint etc through the years but this is first real experience with Arch outside of the Steam deck.

I have a 1440p 120Hz Freesync HDR monitor(BenQ EX3203R) that works happily in windows but is only working at 100Hz for me Linux. Would like to get it working to the same standard on Linux(except for the HDR as I get that’s still poorly supported at this time).

Key points:

  • I only get an option for 60Hz in the settings by normal in either X11 or Wayland
  • Have got it to work at 100Hz in X11 using these commands:
cvt 2560 1440 100
xrandr --newmode "2560x1440_100.00"  542.25  2560 2776 3056 3552  1440 1443 1448 1527 -hsync +vsync
xrandr --addmode DisplayPort-2 "2560x1440_100.00"

Attempting to get 120Hz with this method just results in a black screen. Using glxgears confirms the monitor is running at 100Hz after this.

  • Have tried switching to LTS kernel instead of Zen but it made no difference.
  • Based on the variable refresh rate page in the arch Linux Wiki I have the following 20-amdgpu.conf:
Section "OutputClass"
     Identifier "AMD"
     MatchDriver "amdgpu"
     Driver "amdgpu"
     Option "VariableRefresh" "true"
     Option "AsyncFlipSecondaries" "true"
     Option "TearFree" "true"
EndSection

Any recommendations what I could do to resolve this?

Bonus Questions:

  • Can’t seem to get freesync to work either(ā€œsystool -vm amdgpu | grep freeā€ returns ā€˜freesync_video = "0"’)
    - vrrTest also confirmed variable refresh rate is not working
  • Wayland causes another issue where I get a free seconds of a black screen in game menus & when I pause or alt-tab. Perhaps if that could be solved maybe wayland would work fully then?

Thanks in advance.

Garuda-Inxi:

System:
  Kernel: 6.13.7-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 14.2.1 clocksource: tsc
    avail: hpet,acpi_pm parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=796024b3-9ab7-49d8-a1cb-26da85642225 rw rootflags=subvol=@ quiet loglevel=3 ibt=off
  Desktop: KDE Plasma v: 6.3.3 tk: Qt v: N/A info: frameworks v: 6.12.0 wm: kwin_x11 vt: 2
    dm: SDDM Distro: Garuda base: Arch Linux
Machine:
  Type: Desktop Mobo: ASUSTeK model: ROG STRIX B450-E GAMING v: Rev 1.xx
    serial: <superuser required> part-nu: SKU uuid: <superuser required> UEFI: American Megatrends
    v: 5302 date: 10/20/2023
CPU:
  Info: model: AMD Ryzen 7 5800X bits: 64 type: MT MCP arch: Zen 3+ gen: 3 level: v3 note: check
    built: 2022 process: TSMC n6 (7nm) family: 0x19 (25) model-id: 0x21 (33) stepping: 2
    microcode: 0xA201210
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 8 threads: 16 tpc: 2 smt: enabled cache:
    L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB desc: 8x512 KiB L3: 32 MiB desc: 1x32 MiB
  Speed (MHz): avg: 4191 min/max: 550/4851 boost: enabled scaling: driver: amd-pstate-epp
    governor: powersave cores: 1: 4191 2: 4191 3: 4191 4: 4191 5: 4191 6: 4191 7: 4191 8: 4191
    9: 4191 10: 4191 11: 4191 12: 4191 13: 4191 14: 4191 15: 4191 16: 4191 bogomips: 121598
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities: <filter>
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT]
    driver: amdgpu v: kernel arch: RDNA-2 code: Navi-2x process: TSMC n7 (7nm) built: 2020-22 pcie:
    gen: 4 speed: 16 GT/s lanes: 16 ports: active: DP-1,DP-3 empty: DP-2,HDMI-A-1,Writeback-1
    bus-ID: 0c:00.0 chip-ID: 1002:73bf class-ID: 0300
  Device-2: Microdia Webcam Vitade AF driver: snd-usb-audio,uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-6:4 chip-ID: 0c45:6366 class-ID: 0102
    serial: <filter>
  Display: x11 server: X.Org v: 21.1.16 with: Xwayland v: 24.1.6 compositor: kwin_x11 driver: X:
    loaded: amdgpu unloaded: modesetting,radeon alternate: fbdev,vesa dri: radeonsi gpu: amdgpu
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 4000x2560 s-dpi: 96 s-size: 1058x677mm (41.65x26.65")
    s-diag: 1256mm (49.45")
  Monitor-1: DP-1 mapped: DisplayPort-0 pos: top-right model: Idek Iiyama PL2783Q
    serial: <filter> built: 2018 res: mode: 2560x1440 hz: 60 scale: 177% (0.5625) to: 1440x2560
    dpi: 109 gamma: 1.2 size: 597x336mm (23.5x13.23") diag: 685mm (27") ratio: 16:9 modes:
    max: 2560x1440 min: 640x480
  Monitor-2: DP-3 mapped: DisplayPort-2 pos: primary,bottom-l model: BenQ EX3203R
    serial: <filter> built: 2020 res: mode: 2560x1440_100.00 hz: 100 scale: 100% (1) dpi: 93
    gamma: 1.2 size: 698x393mm (27.48x15.47") diag: 801mm (31.5") ratio: 16:9 modes: max: 2560x1440
    min: 720x400
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi device: 1 drv: swrast
    gbm: drv: kms_swrast surfaceless: drv: radeonsi x11: drv: radeonsi inactive: wayland
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 25.0.1-arch1.2 glx-v: 1.4
    direct-render: yes renderer: AMD Radeon RX 6800 (radeonsi navi21 LLVM 19.1.7 DRM 3.61
    6.13.7-zen1-1-zen) device-ID: 1002:73bf memory: 15.62 GiB unified: no
  API: Vulkan v: 1.4.304 layers: 12 device: 0 type: discrete-gpu name: AMD Radeon RX 6800 (RADV
    NAVI21) driver: N/A device-ID: 1002:73bf surfaces: xcb,xlib device: 1 type: cpu name: llvmpipe
    (LLVM 19.1.7 256 bits) driver: N/A device-ID: 10005:0000 surfaces: xcb,xlib
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo de: kscreen-console,kscreen-doctor
    gpu: corectrl,lact wl: wayland-info x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 21/23 HDMI/DP Audio driver: snd_hda_intel
    v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 0c:00.1 chip-ID: 1002:ab28 class-ID: 0403
  Device-2: Advanced Micro Devices [AMD] Starship/Matisse HD Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 0f:00.4
    chip-ID: 1022:1487 class-ID: 0403
  Device-3: Jieli OW810 driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-5:3 chip-ID: 4c4a:4155 class-ID: 0300
    serial: <filter>
  Device-4: Microdia Webcam Vitade AF driver: snd-usb-audio,uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-6:4 chip-ID: 0c45:6366 class-ID: 0102
    serial: <filter>
  API: ALSA v: k6.13.7-zen1-1-zen status: kernel-api with: aoss type: oss-emulator tools: N/A
  Server-1: PipeWire v: 1.4.1 status: active with: 1: pipewire-pulse status: active
    2: wireplumber status: active 3: pipewire-alsa type: plugin 4: pw-jack type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel I211 Gigabit Network vendor: ASUSTeK driver: igb v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 port: e000 bus-ID: 04:00.0 chip-ID: 8086:1539 class-ID: 0200
  IF: enp4s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Device-2: Intel Wi-Fi 5 Wireless-AC 9x6x [Thunder Peak] driver: iwlwifi v: kernel pcie: gen: 2
    speed: 5 GT/s lanes: 1 bus-ID: 05:00.0 chip-ID: 8086:2526 class-ID: 0280
  IF: wlp5s0 state: up mac: <filter>
  Info: services: NetworkManager, smbd, systemd-timesyncd, wpa_supplicant
Bluetooth:
  Device-1: Intel Wireless-AC 9260 Bluetooth Adapter driver: btusb v: 0.8 type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-9:6 chip-ID: 8087:0025 class-ID: e001
  Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 5.1 lmp-v: 10 status:
    discoverable: no pairing: no class-ID: 6c0104
Drives:
  Local Storage: total: 5 TiB used: 229.96 GiB (4.5%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital model: WD BLACK SN770 1TB
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD
    serial: <filter> fw-rev: 731030WD temp: 46.9 C scheme: GPT
  ID-2: /dev/nvme1n1 maj-min: 259:4 vendor: Crucial model: CT500P2SSD8 size: 465.76 GiB
    block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: P2CR012 temp: 33.9 C scheme: GPT
  ID-3: /dev/sda maj-min: 8:0 vendor: Crucial model: CT2000BX500SSD1 size: 1.82 TiB block-size:
    physical: 512 B logical: 512 B speed: 6.0 Gb/s tech: SSD serial: <filter> fw-rev: 061 scheme: MBR
  ID-4: /dev/sdb maj-min: 8:16 vendor: Western Digital model: WD10EZEX-00BN5A0 size: 931.51 GiB
    block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 7200 serial: <filter>
    fw-rev: 1A01 scheme: GPT
  ID-5: /dev/sdc maj-min: 8:32 vendor: Samsung model: SSD 860 EVO 1TB size: 931.51 GiB
    block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s tech: SSD serial: <filter>
    fw-rev: 3B6Q scheme: GPT
Partition:
  ID-1: / raw-size: 316.83 GiB size: 316.83 GiB (100.00%) used: 229.96 GiB (72.6%) fs: btrfs
    dev: /dev/sda5 maj-min: 8:5
  ID-2: /boot/efi raw-size: 599 MiB size: 597.8 MiB (99.80%) used: 624 KiB (0.1%) fs: vfat
    dev: /dev/nvme0n1p3 maj-min: 259:3
  ID-3: /home raw-size: 316.83 GiB size: 316.83 GiB (100.00%) used: 229.96 GiB (72.6%) fs: btrfs
    dev: /dev/sda5 maj-min: 8:5
  ID-4: /var/log raw-size: 316.83 GiB size: 316.83 GiB (100.00%) used: 229.96 GiB (72.6%)
    fs: btrfs dev: /dev/sda5 maj-min: 8:5
  ID-5: /var/tmp raw-size: 316.83 GiB size: 316.83 GiB (100.00%) used: 229.96 GiB (72.6%)
    fs: btrfs dev: /dev/sda5 maj-min: 8:5
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: zram size: 31.25 GiB used: 0 KiB (0.0%) priority: 100 comp: zstd
    avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 max-streams: 16 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 61.0 C mobo: 44.0 C gpu: amdgpu temp: 60.0 C mem: 60.0 C
  Fan Speeds (rpm): cpu: 933 case-1: 1125 case-2: 1115 case-3: 992 gpu: amdgpu fan: 569
  Power: 12v: 10.14 5v: N/A 3.3v: N/A vbat: 3.18 gpu: amdgpu watts: 45.00
Info:
  Memory: total: 32 GiB available: 31.25 GiB used: 7.81 GiB (25.0%)
  Processes: 415 Power: uptime: 1h 5m states: freeze,mem,disk suspend: deep avail: s2idle
    wakeups: 0 hibernate: platform avail: shutdown, reboot, suspend, test_resume image: 12.49 GiB
    services: org_kde_powerdevil, power-profiles-daemon, upowerd Init: systemd v: 257
    default: graphical tool: systemctl
  Packages: pm: pacman pkgs: 1517 libs: 427 tools: octopi,paru Compilers: clang: 19.1.7
    gcc: 14.2.1 Client: Unknown Client: garuda-rani inxi: 3.3.37
Garuda (2.7.2-1):
  System install date:     2025-03-16
  Last full system update: 2025-03-21 ↻
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut
  Windows dual boot:       Probably (Run as root to verify)
  Failed units:            

Hi there, welcome to the community. :slightly_smiling_face:

Should have nothing to do with your problem, but:

A reboot after a system update is pending.

BIOS update available:

Version 5602 / 11.24 MB / 2025/02/27
1.Updated AGESA version to ComboV2 PI 1.2.0.E.
2.Implemented security updates.

4 Likes

hi and welcome :wink:

what is your output from this ? xrandr -q

1 Like

Thanks. Interested to explore more & get a feel for what Garuda/Arch has to offer.

I could have sworn I rebooted since last update but maybe not. Either way I’ve had his issue since I installed the OS. Funnily enough I think I had the full resolution option when I was booted into the live USB. I better check that again actually out of curiousity.

As for the BIOS, I normally don’t update unless there’s a feature I want e.g. ReBAR support. Could updating the BIOS have an impact with these kind of problems?

Since you have 2 screens have you tried unplugging one from the gpu and booting with just the one? Perhaps on a different display port just to test.

HDR works fine but if you don’t have a monitor with local dimming or at least 1000 nits peak brightness it wont really give you anything if its a oled its pretty good though even missing the brightness.

4 Likes

Thanks.

Xrandr output:

Screen 0: minimum 320 x 200, current 4000 x 2560, maximum 16384 x 16384
DisplayPort-0 connected 1440x2560+2560+0 left (normal left inverted right x axis y axis) 597mm x 336mm
2560x1440     59.95*+  69.92
2048x1280     59.99
1920x1200     59.95
1920x1080     69.96    60.00    60.00    50.00    59.94
1600x1200     60.00
1680x1050     59.95
1600x1000     59.96
1600x900      60.00
1280x1024     59.95
1440x900      59.89
1280x800      59.95
1280x720      60.00    50.00    59.94
1024x768      60.00
800x600       60.32
720x576       50.00
720x480       60.00    59.94
640x480       60.00    59.94
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-2 connected primary 2560x1440+0+953 (normal left inverted right x axis y axis) 698mm x 393mm
2560x1440     59.95 +
3840x2160     60.00    59.94    30.00    25.00    24.00    29.97    23.98
2560x1080    120.00   119.88   100.00    60.00    59.94
1920x1200     59.95
1920x1080    119.96    99.92   120.00   100.00   119.88    60.00    60.00    50.00    59.94    30.00    25.00    24.00 29.97    23.98
1600x1200     59.95
1680x1050     59.95
1600x900      60.00
1280x1024     75.02    60.02
1440x900      59.95
1280x800      59.81
1152x864      75.00
1280x720      60.00    50.00    59.94
1024x768      75.03    60.00
832x624       74.55
800x600       75.00    60.32
720x576       50.00
720x480       60.00    59.94
640x480       75.00    60.00    59.94
720x400       70.08
2560x1440_100.00  99.97*
HDMI-A-0 disconnected (normal left inverted right x axis y axis)

the monitor in question is plugged in via a type-C cable, could that have an impact? I would assume not since it works fine if I boot into Windows.

I can give that a go for sure. If it does work, what would that mean? Why would that behaviour different compared to Windows?

Yeah agreed on the HDR requirements. What it gives you isn’t really worth chasing it on this display. Will likely upgrade to an OLED in time though

windows an Linux aren’t the same and don’t handle the driver in the exact same way. As amd intel and nvida do there own thing for linux.

While it should work a bios update might actually help here depending. but if you can test it on another port or with a DP cable you might see a change. USB C is just a bit weird

4 Likes

dont know what this meant but did you try lower the hz a bit?

2560x1440_100.00  99.97*

Attempted to create modes for 119.96Hz & for 110Hz and I still just ended up with a back screen. Good idea though.

Updated xrandr for reference:

Screen 0: minimum 320 x 200, current 4000 x 2560, maximum 16384 x 16384
DisplayPort-0 connected 1440x2560+2560+0 left (normal left inverted right x axis y axis) 597mm x 336mm
2560x1440     59.95*+  69.92
2048x1280     59.99
1920x1200     59.95
1920x1080     69.96    60.00    60.00    50.00    59.94
1600x1200     60.00
1680x1050     59.95
1600x1000     59.96
1600x900      60.00
1280x1024     59.95
1440x900      59.89
1280x800      59.95
1280x720      60.00    50.00    59.94
1024x768      60.00
800x600       60.32
720x576       50.00
720x480       60.00    59.94
640x480       60.00    59.94
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-2 connected primary 2560x1440+0+953 (normal left inverted right x axis y axis) 698mm x 393mm
2560x1440     59.95 +
3840x2160     60.00    59.94    30.00    25.00    24.00    29.97    23.98
2560x1080    120.00   119.88   100.00    60.00    59.94
1920x1200     59.95
1920x1080    119.96    99.92   120.00   100.00   119.88    60.00    60.00    50.00    59.94    30.00    25.00    24.00 29.97    23.98
1600x1200     59.95
1680x1050     59.95
1600x900      60.00
1280x1024     75.02    60.02
1440x900      59.95
1280x800      59.81
1152x864      75.00
1280x720      60.00    50.00    59.94
1024x768      75.03    60.00
832x624       74.55
800x600       75.00    60.32
720x576       50.00
720x480       60.00    59.94
640x480       75.00    60.00    59.94
720x400       70.08
2560x1440_100.00  99.97*
2560x1440_119.96 119.95
2560x1440_110.00 109.97
HDMI-A-0 disconnected (normal left inverted right x axis y axis)

im not a expert but see this :wink:

2560x1080    120.00   119.88   100.00    60.00    59.94
1920x1200     59.95
1920x1080    119.96    99.92   120.00   100.00   119.88

maybe 2560x1080 worked with 119.88 hz?

and scale or overscan a bit ?

Tried just connecting a display port cable & rebooting the PC. Still have the same issue. Monitor locked to 60Hz.

I still had wayland as my default window manager but ran into an issue where the screen would just be black when I logged out preventing me from switching to x11. Curious that this issue appeared with only a single port connected to the GPU. Up to now I had lazily just been switching from wayland into X11 by logging out everytime but it gave me trouble until just there. Switched to X11 default now anyway.

I can switch it to 2560x1080 120 and it holds but it’s all stretched. What do you mean by scale or overscan? Scaling would only adjust the resolution along the same ratio right i.e. it would still be 21:9?

can you post a pic with https://freeimage.host/ ?

A picture of how the 2560x1080 resolution looks?

?

i dont know about bigger screens but maybe someone else :wink:

When you were connecting it via type c, was it to the card or motherboard. like the OEM card here,

Cause looking at the inxi

DP-1,DP-3 empty: DP-2,HDMI-A-1

You may have to fiddle with the driver a bit even though its part of the kernel. when its hooked up via DP run the auto install in garuda setting manager.


I cant say it will work but might give it a refresh just reboot after. you can also do it manually if you want as well.

Here you go.

Yes I have it connected directly to the GPU.

When you say manually do you mean just reinstalling the driver in the settings manager or do you mean something else?

Yeah the driver. since you had used linux before you may have liked the terminal approach though i personally haven’t done it that way before on arch. But since you plugged it into the card it should be fine.