Forced vsync with wayland

I'm using garuda linux kde dr460ized gaming edition. I recently switched my desktop session from x11 to wayland. I also installed wayland protocols too. After that my games stopped crashing randomly because x11 was probably too old for my system. But my games now have forced vsync by the system. My games have an fps limit of 144 which is also my monitors refresh rate.

Here is my garuda-inxi output:

╭─errorist@asustuf in ~
╰─λ garuda-inxi
System:
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=cf2ae494-fef4-4b04-a10a-fd0c141d96f9 rw rootflags=subvol=@
quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
resume=UUID=eb71c3b2-4a38-46b2-895e-3cbece7edaeb loglevel=3
Desktop: KDE Plasma v: 5.27.3 tk: Qt v: 5.15.8 wm: kwin_wayland vt: 2
dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
Type: Laptop System: ASUSTeK product: ASUS TUF Gaming F15 FX506HC_FX506HC
v: 1.0 serial: <superuser required>
Mobo: ASUSTeK model: FX506HC v: 1.0 serial: <superuser required>
UEFI: American Megatrends LLC. v: FX506HC.311 date: 08/12/2022
Battery:
ID-1: BAT1 charge: 36.9 Wh (85.6%) condition: 43.1/48.1 Wh (89.6%)
volts: 11.3 min: 11.7 model: ASUS A32-K55 type: Li-ion serial: N/A
status: discharging
CPU:
Info: model: 11th Gen Intel Core i5-11400H bits: 64 type: MT MCP
arch: Tiger Lake gen: core 11 level: v4 note: check built: 2020
process: Intel 10nm family: 6 model-id: 0x8D (141) stepping: 1
microcode: 0x42
Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
L1: 480 KiB desc: d-6x48 KiB; i-6x32 KiB L2: 7.5 MiB desc: 6x1.2 MiB
L3: 12 MiB desc: 1x12 MiB
Speed (MHz): avg: 2407 high: 2700 min/max: 800/4500 scaling:
driver: intel_pstate governor: performance cores: 1: 965 2: 925 3: 2700
4: 2700 5: 2700 6: 2700 7: 2700 8: 2700 9: 2700 10: 2700 11: 2700 12: 2700
bogomips: 64512
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Intel TigerLake-H GT1 [UHD Graphics] vendor: ASUSTeK driver: i915
v: kernel arch: Gen-12.1 process: Intel 10nm built: 2020-21 ports:
active: eDP-1 empty: DP-1,HDMI-A-1,HDMI-A-2 bus-ID: 0000:00:02.0
chip-ID: 8086:9a68 class-ID: 0300
Device-2: NVIDIA GA107M [GeForce RTX 3050 Mobile] vendor: ASUSTeK
driver: nvidia v: 530.41.03 alternate: nouveau,nvidia_drm non-free: 530.xx+
status: current (as of 2023-03) arch: Ampere code: GAxxx
process: TSMC n7 (7nm) built: 2020-22 bus-ID: 0000:01:00.0
chip-ID: 10de:25a2 class-ID: 0300
Device-3: IMC Networks USB2.0 HD UVC WebCam type: USB driver: uvcvideo
bus-ID: 3-7:3 chip-ID: 13d3:56a2 class-ID: fe01 serial: <filter>
Display: wayland server: X.org v: 1.21.1.8 with: Xwayland v: 23.1.1
compositor: kwin_wayland driver: X: loaded: modesetting,nvidia
unloaded: nouveau alternate: fbdev,intel,nv,vesa dri: iris
gpu: i915,nvidia display-ID: 0
Monitor-1: eDP-1 res: 1920x1080 size: N/A modes: N/A
API: OpenGL v: 4.6 Mesa 23.0.1 renderer: Mesa Intel UHD Graphics (TGL GT1)
direct-render: Yes
Audio:
Device-1: Intel Tiger Lake-H HD Audio vendor: ASUSTeK driver: snd_hda_intel
v: kernel alternate: snd_sof_pci_intel_tgl bus-ID: 0000:00:1f.3
chip-ID: 8086:43c8 class-ID: 0403
Device-2: NVIDIA vendor: ASUSTeK driver: snd_hda_intel v: kernel
bus-ID: 0000:01:00.1 chip-ID: 10de:2291 class-ID: 0403
API: ALSA v: k6.2.8-zen1-1-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: PipeWire v: 0.3.67 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: MEDIATEK MT7921 802.11ax PCI Express Wireless Network Adapter
vendor: AzureWave driver: mt7921e v: kernel bus-ID: 0000:2d:00.0
chip-ID: 14c3:7961 class-ID: 0280
IF: wlp45s0 state: up mac: <filter>
Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: ASUSTeK driver: r8169 v: kernel port: 3000 bus-ID: 0000:2e:00.0
chip-ID: 10ec:8168 class-ID: 0200
IF: enp46s0 state: down mac: <filter>
Bluetooth:
Device-1: IMC Networks Wireless_Device type: USB driver: btusb v: 0.8
bus-ID: 3-14:4 chip-ID: 13d3:3563 class-ID: e001 serial: <filter>
Report: bt-adapter ID: hci0 rfk-id: 0 state: down
bt-service: enabled,running rfk-block: hardware: no software: yes
address: <filter>
RAID:
Hardware-1: Intel Volume Management Device NVMe RAID Controller driver: vmd
v: 0.6 port: N/A bus-ID: 0000:00:0e.0 chip-ID: 8086:9a0b rev: class-ID: 0104
Drives:
Local Storage: total: 476.94 GiB used: 231.38 GiB (48.5%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung
model: MZVLQ512HBLU-00B00 size: 476.94 GiB block-size: physical: 512 B
logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
rev: FXM7201Q temp: 44.9 C scheme: GPT
Partition:
ID-1: / raw-size: 459.74 GiB size: 459.74 GiB (100.00%)
used: 231.38 GiB (50.3%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 608 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 459.74 GiB size: 459.74 GiB (100.00%)
used: 231.38 GiB (50.3%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-4: /var/log raw-size: 459.74 GiB size: 459.74 GiB (100.00%)
used: 231.38 GiB (50.3%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-5: /var/tmp raw-size: 459.74 GiB size: 459.74 GiB (100.00%)
used: 231.38 GiB (50.3%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: partition size: 16.9 GiB used: 0 KiB (0.0%)
priority: -2 dev: /dev/nvme0n1p3 maj-min: 259:3
ID-2: swap-2 type: zram size: 15.37 GiB used: 76.2 MiB (0.5%)
priority: 100 dev: /dev/zram0
Sensors:
System Temperatures: cpu: 53.0 C mobo: N/A
Fan Speeds (RPM): cpu: 0
Info:
Processes: 311 Uptime: 2h 0m wakeups: 50888 Memory: 15.37 GiB
used: 5.81 GiB (37.8%) Init: systemd v: 253 default: graphical
tool: systemctl Compilers: gcc: 12.2.1 clang: 15.0.7 Packages: pm: pacman
pkgs: 1896 libs: 554 tools: octopi,pamac,paru Shell: fish v: 3.6.1
default: Bash v: 5.1.16 running-in: konsole inxi: 3.3.26
Garuda (2.6.16-1):
System install date:     2023-03-19
Last full system update: 2023-04-01
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut nvidia-dkms
Windows dual boot:       No/Undetected
Failed units:

I tried disabling vsync in games' settings like Splitgate and CSGO. I also disabled the fps limit in both games. But both of them had vsync still going on. I tried adding "gamemoderun mangohud %command%" to launch options. I tried setting Adaptive Sync from Display Configuration to "Never" but the issue still persists. I searched an option for Vsync in Nvidia X server settings but couldn't find any.

How can I disable vsync? Or if there's a launch option that disables this forced vsync by my system; what is it?

Dunno.
kwin now allows to turn off vsync on wayland - r/linux_gaming
https://wg.vern.cc/search?q=wayland+vsync

1 Like

I looked at the link but I didn't see anything about how to turn off the Vsync. I also checked if Kwin had an option in the gui but couldn't find any. I asked chatGPT by telling it that kwin can disable Vsync in wayland, and it told me to edit the ~/.config/kwinrc file and refresh it. I opened the file and added this code to the [Compositor] section:

Vsync=0
MaxFPS=9999

then I ran this command to refresh the kwin:

kwin_wayland --replace &

Then I ran CSGO then Splitgate, still my fps was capped to 144 on both games. Perhaps I'm doing it the wrong way?

Unless I misunderstood, the variable refresh rate is supported by kwin (and other Wayland desktops like Sway) but still work in progress, and needs support also here: vulkan/wsi/wayland: add support for IMMEDIATE (!18268) · Merge requests · Mesa / mesa · GitLab but I see the merge request is still open.
Then, also the monitor should support it, and possibly need be connected with DP.
Mind you, I’m operating in ChatGPT mode… just siphoning information and stringing words together.


According to the relevant Arch Wiki page,

KDE Wayland should automatically enable VRR for full screen applications [9].

and the linked article reminds that, it also has to be supported by the graphics driver:

u/Zamundaaa KDE Contributor Oct 03 '21
NVidias driver doesn’t support VRR on Wayland yet.

Other article:

u/RAZR_96 Nov 11 '22
No they still don’t support it, even on the newest beta driver 525.53.

Both are somewhat old, something may have changed meanwhile that I did not find.

2 Likes

I don't think in-game fps is related with wayland forced vsync. You may check game settings or mangohud / goverlay if you are using them. If you want to disable wayland vsync, open System Settings, go to Display & Monitor and then Compositor, choose "allow artifacts for fullscreen windows".

My Compositor has only a Latency option, i dont have "allow artifacts for fullscreen windows". Thanks anyway

Thanks! I guess it is not big of an issue that i have capped fps. Probably it is likely that disabling vsync is not supported yet. I was just curious if I could disable it. If there's no way, I no longer need any help

1 Like

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