Xorg appears to lock game performance to 60FPS and Wayland causes flickering

When I try to run any game on my computer through Steam and Xorg it caps the frame rate at 60 FPS, in my research, I found that apparently this is some kind of limitation of Xorg. However, if I use Wayland the frame rate cap is solved, but some games keep flickering, I was unable to fix it.

>>> inti -Fazy
System:
  Kernel: 6.12.4-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.12-x86_64
    root=UUID=cf35bdd2-48e7-4b26-80ac-76b47ae70116 rw quiet splash
    udev.log_priority=3 nvidia-drm.modeset=1
  Desktop: KDE Plasma v: 6.2.4 tk: Qt v: N/A info: frameworks v: 6.8.0
    wm: kwin_x11 with: krunner vt: 2 dm: SDDM Distro: Manjaro base: Arch Linux
Machine:
  Type: Desktop System: Gigabyte product: B360M-D3H v: N/A
    serial: <superuser required>
  Mobo: Gigabyte model: B360M D3H-CF serial: <superuser required>
    uuid: <superuser required> UEFI: American Megatrends v: F16 date: 12/21/2023
Battery:
  Device-1: hidpp_battery_0 model: Logitech G305 Lightspeed Wireless Gaming
    Mouse serial: <filter> charge: 100% (should be ignored) rechargeable: yes
    status: discharging
  Device-2: ps-controller-battery-24:a6:fa:a7:0d:c7 model: N/A serial: N/A
    charge: N/A status: charging
CPU:
  Info: model: Intel Core i7-8700 bits: 64 type: MT MCP arch: Coffee Lake
    gen: core 8 level: v3 note: check built: 2018 process: Intel 14nm family: 6
    model-id: 0x9E (158) stepping: 0xA (10) microcode: 0xF8
  Topology: cpus: 1x dies: 1 clusters: 6 cores: 6 threads: 12 tpc: 2
    smt: enabled cache: L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 1.5 MiB
    desc: 6x256 KiB L3: 12 MiB desc: 1x12 MiB
  Speed (MHz): avg: 800 min/max: 800/4600 scaling: driver: intel_pstate
    governor: powersave cores: 1: 800 2: 800 3: 800 4: 800 5: 800 6: 800 7: 800
    8: 800 9: 800 10: 800 11: 800 12: 800 bogomips: 76831
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: gather_data_sampling mitigation: Microcode
  Type: itlb_multihit status: KVM: Split huge pages
  Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
    vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed mitigation: IBRS
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: IBRS; IBPB: conditional; STIBP: conditional;
    RSB filling; PBRSB-eIBRS: Not affected; BHI: Not affected
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort mitigation: TSX disabled
Graphics:
  Device-1: NVIDIA TU106 [GeForce RTX 2060 Rev. A] vendor: eVga.com.
    driver: nvidia v: 550.135 alternate: nouveau,nvidia_drm non-free: 550.xx+
    status: current (as of 2024-09; EOL~2026-12-xx) arch: Turing code: TUxxx
    process: TSMC 12nm FF built: 2018-2022 pcie: gen: 3 speed: 8 GT/s lanes: 16
    ports: active: none off: DP-1,HDMI-A-1 empty: DVI-D-1 bus-ID: 01:00.0
    chip-ID: 10de:1f08 class-ID: 0300
  Display: x11 server: X.Org v: 21.1.14 with: Xwayland v: 24.1.4
    compositor: kwin_x11 driver: X: loaded: nvidia gpu: nvidia,nvidia-nvswitch
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 4480x1080 s-dpi: 81 s-size: 1405x343mm (55.31x13.50")
    s-diag: 1446mm (56.94")
  Monitor-1: DP-1 mapped: DP-0 note: disabled pos: primary,left
    res: 1920x1080 hz: 120 dpi: 92 size: 532x304mm (20.94x11.97") modes: N/A
  Monitor-2: HDMI-A-1 mapped: HDMI-0 note: disabled pos: right res: 2560x1080
    hz: 60 dpi: 81 size: 798x334mm (31.42x13.15") modes: N/A
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
    drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia x11: drv: nvidia
    inactive: wayland,device-1
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 550.135
    glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 2060/PCIe/SSE2
    memory: 5.86 GiB
  API: Vulkan v: 1.4.303 layers: 9 device: 0 type: discrete-gpu
    name: NVIDIA GeForce RTX 2060 driver: N/A device-ID: 10de:1f08
    surfaces: xcb,xlib
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: Gigabyte driver: snd_hda_intel
    v: kernel alternate: snd_soc_avs,snd_sof_pci_intel_cnl bus-ID: 00:1f.3
    chip-ID: 8086:a348 class-ID: 0403
  Device-2: NVIDIA TU106 High Definition Audio vendor: eVga.com.
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
    bus-ID: 01:00.1 chip-ID: 10de:10f9 class-ID: 0403
  Device-3: Sony DualSense wireless controller (PS5)
    driver: playstation,snd-usb-audio,usbhid type: USB rev: 2.0 speed: 480 Mb/s
    lanes: 1 mode: 2.0 bus-ID: 1-4:2 chip-ID: 054c:0ce6 class-ID: 0300
  Device-4: Kingston HyperX 7.1 Audio
    driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 2.0 speed: 12 Mb/s
    lanes: 1 mode: 1.1 bus-ID: 1-7:5 chip-ID: 0951:16a4 class-ID: 0300
    serial: <filter>
  Device-5: C-Media ARCANO AM-BLACK-1
    driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1 speed: 12 Mb/s
    lanes: 1 mode: 1.1 bus-ID: 1-8:6 chip-ID: 0d8c:0134 class-ID: 0300
  API: ALSA v: k6.12.4-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.2.7 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Ethernet I219-V vendor: Gigabyte driver: e1000e v: kernel
    port: N/A bus-ID: 00:1f.6 chip-ID: 8086:15bc class-ID: 0200
  IF: eno1 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Device-2: Sony DualSense wireless controller (PS5)
    driver: playstation,snd-usb-audio,usbhid type: USB rev: 2.0 speed: 480 Mb/s
    lanes: 1 mode: 2.0 bus-ID: 1-4:2 chip-ID: 054c:0ce6 class-ID: 0300
  Info: services: NetworkManager
Drives:
  Local Storage: total: 1.82 TiB used: 158.04 GiB (8.5%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
    model: WDS100T2B0C-00PXH0 size: 931.51 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 211210WD temp: 39.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Seagate model: ST1000DM010-2EP102
    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: CC43 scheme: GPT
Partition:
  ID-1: / raw-size: 931.22 GiB size: 915.53 GiB (98.32%)
    used: 152.86 GiB (16.7%) fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 288 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 41.0 C pch: 55.0 C mobo: 37.0 C gpu: nvidia
    temp: 41 C
  Fan Speeds (rpm): N/A gpu: nvidia fan: 40%
Info:
  Memory: total: 16 GiB available: 15.53 GiB used: 2.81 GiB (18.1%)
  Processes: 301 Power: uptime: 23m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 6.15 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 256 default: graphical
    tool: systemctl
  Packages: 1489 pm: pacman pkgs: 1479 libs: 394 tools: pamac,yay pm: flatpak
    pkgs: 10 Compilers: gcc: 14.2.1 Shell: Zsh v: 5.9 default: Bash v: 5.2.37
    running-in: konsole inxi: 3.3.36

So, I apparently fixed it. I just don’t know exactly how, because I deactivated “Sync to VBlank” and “Allow Flipping” in nvidia-settings and also deactivated the compositor at startup. If someone that is more knowledgeable than I in that matter, please explain better.

20250106_124606

20250106_124708

Put the settings back to where they were, reboot.

When you have dual monitor setup, I think the lowest Hz monitor caps the max Fullscreen FPS on the higher Hz monitor. Disable the second monitor before starting your game and see if it fixes your issue.

Maybe you could also set your game to use Fullscreen Window or Borderless mode instead of real Fullscreen mode.

Maybe just disable Sync to Vblank in Nvidia Settings.

Do one thing at a time to find the culprit.

1 Like

Yes, you were right. Apparently disabling just Sync to VBlack was enough

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