OC nVidia GPU in Gnome Wayland

I have Wayland running under Garuda Gnome. I'm trying to OC the refresh rate on my monitor. I can do this using a custom EDID file under Xorg, but under Wayland, I can't seem to make it work.

I'm using an nVIdia GTX-1660 OC using the latest nVidia proprietary drivers v530.41.03.

From what I understand, you need to add a kernel boot parameter which I've added the following:

video=DP-1:[email protected]

After applying this via Garuda Boot Options and rebooting, when I try to change the refresh rate for DP-1, it only shows 60hz. Under Xorg, using a custom EDID, I can make make my monitors go to 75Hz. Just not under Wayland.

I'd also enable nvidia_drm.modeset=1 as well.

Is this a limitation of the nVidia drivers maybe? Any help would be appreciated.

  Kernel: 6.2.8-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=d9765692-e04e-46a9-87e3-db33fbcf42a8 rw [email protected]
    quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
    loglevel=3 nvidia-drm.modeset=1 video=DP-1:[email protected]
    video=HDMI-A-1:[email protected] ibt=off
  Desktop: GNOME v: 43.3 tk: GTK v: 3.24.37 wm: gnome-shell dm: GDM v: 43.0
    Distro: Garuda Linux base: Arch Linux
  Type: Desktop System: Gigabyte product: B450M DS3H v: N/A
    serial: <superuser required>
  Mobo: Gigabyte model: B450M DS3H-CF serial: <superuser required>
    UEFI: American Megatrends LLC. v: F63b date: 05/11/2022
  Info: model: AMD Ryzen 5 3600 bits: 64 type: MT MCP arch: Zen 2 gen: 3
    level: v3 note: check built: 2020-22 process: TSMC n7 (7nm)
    family: 0x17 (23) model-id: 0x71 (113) stepping: 0 microcode: 0x8701021
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB
    L3: 32 MiB desc: 2x16 MiB
  Speed (MHz): avg: 2566 high: 4052 min/max: 2200/4208 boost: enabled
    scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 4052 2: 2096
    3: 2200 4: 2200 5: 3600 6: 2200 7: 3600 8: 2200 9: 2200 10: 2200 11: 2200
    12: 2053 bogomips: 86244
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities: <filter>
  Device-1: NVIDIA TU116 [GeForce GTX 1660] vendor: ASUSTeK driver: nvidia
    v: 530.41.03 alternate: nouveau,nvidia_drm non-free: 525.xx+
    status: current (as of 2023-02) arch: Turing code: TUxxx
    process: TSMC 12nm FF built: 2018-22 pcie: gen: 1 speed: 2.5 GT/s
    lanes: 16 link-max: gen: 3 speed: 8 GT/s ports: active: none
    off: DP-1,DVI-D-1,HDMI-A-1 empty: none bus-ID: 06:00.0 chip-ID: 10de:2184
    class-ID: 0300
  Display: wayland server: X.org v: with: Xwayland v: 23.1.0
    compositor: gnome-shell driver: X: loaded: nvidia unloaded: modesetting
    alternate: fbdev,nouveau,nv,vesa gpu: nvidia,nvidia-nvswitch display-ID: 0
  Monitor-1: DP-1 model: HP E223 serial: <filter> built: 2018 res: 1920x1080
    dpi: 102 gamma: 1.2 size: 476x268mm (18.74x10.55") diag: 546mm (21.5")
    ratio: 16:9 modes: max: 1920x1080 min: 640x480
  Monitor-2: DVI-D-1 model: HP E223 serial: <filter> built: 2018
    res: 1920x1080 dpi: 102 gamma: 1.2 size: 476x268mm (18.74x10.55")
    diag: 546mm (21.5") ratio: 16:9 modes: max: 1920x1080 min: 640x480
  Monitor-3: HDMI-A-1 model: HP E223 serial: <filter> built: 2018
    res: 1920x1080 dpi: 102 gamma: 1.2 size: 476x268mm (18.74x10.55")
    diag: 546mm (21.5") ratio: 16:9 modes: max: 1920x1080 min: 640x480
  API: OpenGL v: 4.6.0 NVIDIA 530.41.03 renderer: NVIDIA GeForce GTX
    1660/PCIe/SSE2 direct-render: Yes
  Device-1: NVIDIA TU116 High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel bus-ID: 1-1:2 pcie: chip-ID: 0d8c:0012
    gen: 3 class-ID: 0300 speed: 8 GT/s lanes: 16 bus-ID: 06:00.1
    chip-ID: 10de:1aeb class-ID: 0403
  Device-2: AMD Starship/Matisse HD Audio vendor: Gigabyte
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 08:00.4 chip-ID: 1022:1487 class-ID: 0403
  Device-3: C-Media USB Audio Device type: USB
    driver: hid-generic,snd-usb-audio,usbhid
  Sound API: ALSA v: k6.2.8-zen1-1-zen running: yes
  Sound Server-1: PulseAudio v: 16.1 running: no
  Sound Server-2: PipeWire v: 0.3.67 running: yes
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: Gigabyte driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 port: f000 bus-ID: 04:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp4s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Device-2: Microsoft Xbox 360 Wireless Adapter type: USB driver: xpad
    bus-ID: 1-5:4 chip-ID: 045e:0719 class-ID: ff00 serial: <filter>
  Local Storage: total: 7.06 TiB used: 1.76 TiB (24.9%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/sda maj-min: 8:0 vendor: Silicon Power
    model: SPCC Solid State Disk size: 238.47 GiB block-size: physical: 512 B
    logical: 512 B speed: 6.0 Gb/s type: SSD serial: <filter> rev: 91.3
    scheme: GPT
  ID-2: /dev/sdb maj-min: 8:16 vendor: Hitachi model: HDS5C3030ALA630
    size: 2.73 TiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    type: HDD rpm: 5700 serial: <filter> rev: A580 scheme: GPT
  ID-3: /dev/sdc maj-min: 8:32 vendor: Hitachi model: HDS723020BLA642
    size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    type: HDD rpm: 7200 serial: <filter> rev: A5C0 scheme: GPT
  ID-4: /dev/sdd maj-min: 8:48 vendor: Samsung model: HD103SI
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s
    type: N/A serial: <filter> rev: 1118 scheme: GPT
  ID-5: /dev/sde maj-min: 8:64 type: USB vendor: JMicron Tech model: N/A
    size: 931.51 GiB block-size: physical: 4096 B logical: 512 B type: N/A
    serial: <filter> rev: 0509 scheme: MBR
  ID-6: /dev/sdf maj-min: 8:80 type: USB vendor: Toshiba model: MQ01ABF050
    size: 465.76 GiB block-size: physical: 512 B logical: 512 B type: HDD
    rpm: 5400 serial: <filter> scheme: GPT
  ID-1: / raw-size: 97.66 GiB size: 97.66 GiB (100.00%)
    used: 11.17 GiB (11.4%) fs: btrfs dev: /dev/sdc2 maj-min: 8:34
  ID-2: /boot/efi raw-size: 1 GiB size: 1023 MiB (99.80%)
    used: 608 KiB (0.1%) fs: vfat dev: /dev/sdc3 maj-min: 8:35
  ID-3: /home raw-size: 1.71 TiB size: 1.71 TiB (100.00%)
    used: 475.75 GiB (27.2%) fs: btrfs dev: /dev/sdc4 maj-min: 8:36
  ID-4: /var/log raw-size: 97.66 GiB size: 97.66 GiB (100.00%)
    used: 11.17 GiB (11.4%) fs: btrfs dev: /dev/sdc2 maj-min: 8:34
  ID-5: /var/tmp raw-size: 97.66 GiB size: 97.66 GiB (100.00%)
    used: 11.17 GiB (11.4%) fs: btrfs dev: /dev/sdc2 maj-min: 8:34
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 15.54 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
  ID-2: swap-2 type: partition size: 16.34 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/sdc1 maj-min: 8:33
  System Temperatures: cpu: 42.6 C mobo: 29.0 C
  Fan Speeds (RPM): N/A
  Processes: 354 Uptime: 11m wakeups: 0 Memory: 15.54 GiB
  used: 2.27 GiB (14.6%) Init: systemd v: 253 default: graphical
  tool: systemctl Compilers: gcc: 12.2.1 clang: 15.0.7 Packages: pm: pacman
  pkgs: 1243 libs: 343 tools: pamac,paru Shell: fish v: 3.6.0 default: Bash
  v: 5.1.16 running-in: gnome-terminal inxi: 3.3.25
Garuda (2.6.16-1):
  System install date:     2023-03-24
  Last full system update: 2023-03-24
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut nvidia-dkms
  Windows dual boot:       Probably (Run as root to verify)
  Failed units:         

in inxi 73

here 75

Maybe a wayland problem?

arandr, lxrandr, xrandr.

Yeah, not sure. I tried both 73 and 75 and neither one seems to take. It's not a big deal, but I can see a difference between 60fps and 75fps in games as that's a 25% increase.

Did you check

sudo nvidea-settings


sudo pacman -S hwinfo --needed
sudo hwinfo | grep -C3 "Resolution"


My monitors are rated at 60Hz but I can OC them to 75Hz. Under Windows, I use the nVidia control panel to add custom resolutions, specifying the refresh rate as 75Hz.

Under Xorg, I retrieved the EDID information from my monitors, then edited the files via an EDID editor to change the refresh from 60 to 75hz and then loaded those custom EDID files via my xorg.conf configuration via an "Option" line item in xorg.conf.

What I'm trying to do is OC the monitors past their specified refresh rate of 60Hz which I've done via Xorg and Windows. But for some reason, I can make it work with Wayland.

Here is the output for my display I'm trying to OC but as you can see, its specs state 60Hz is the max vertical refresh rate. Again, I'm OCing the refresh rate which works under Xorg and Windows:

  Vendor: HPN 
  Device: eisa 0x345c "HP E223"
  Serial ID: "3CQ8110TF2"
  Resolution: [email protected]
  Resolution: [email protected]
  Resolution: [email protected]
  Resolution: [email protected]
  Resolution: [email protected]
  Resolution: [email protected]
  Resolution: [email protected]
  Size: 476x268 mm
  Year of Manufacture: 2018
  Week of Manufacture: 11
  Detailed Timings #0:
     Resolution: 1920x1080
     Horizontal: 1920 2008 2052 2200 (+88 +132 +280) +hsync
       Vertical: 1080 1084 1089 1125 (+4 +9 +45) +vsync
    Frequencies: 148.50 MHz, 67.50 kHz, 60.00 Hz
  Driver Info #0:
    Max. Resolution: 1920x1080
    Vert. Sync Range: 50-60 Hz
    Hor. Sync Range: 30-80 kHz
    Bandwidth: 148 MHz
1 Like

I'm sure you searched already, but just in case, is this of any use?

1 Like

Yeah, already tried that. Doesn't seem to work. My feeling is it's the nVidia drivers. I'm finding all sorts of issues with it lately, including not being able to set a custom fan curve. The default curve doesn't stop the GPU from overheating and freezing under Linux when playing games. I don't have this issue under Windows with the overheating.

In the end, I found that even with OCing my refresh rate, games have more frequent frame drops in games, causing stuttering, so I've gone back to 60Hz instead and games are a lot smoother with fewer frame drops as the GPU can render 60 fps pretty regularly.

Thanks for the tip even though I already tried that. I'm also finding that my nVidia GPU doesn't provide smoother gaming under Wayland. Yes, no screen tearing, but still it hitches here and there. So I'm back on Xorg and I just turn off my other monitors via a shell script I created to turn on and off various monitors.