KDE + Picom + NVIDIA = Choppy Movement of Windows and still didn't fix refresh rates

Hello everyone,

first of all: inxi

I have two displays. One with 60Hz one with 144Hz. Whenever the compositor is enabled, it will default to the 60Hz refresh rate. Currently, whenever i play a game, i will have to disable the compositor to get my 144Hz.

I already did everything that was written on Reddit and the KDE Bug report page that's linked in there

Now i thought about switching to another compositor...Everyone is talking about picom. So i play around with it a bit and now i need some help.

  1. It still didn't solve my issue....Even with picom (doesn't matter which fork) it still goes down to 60Hz for my big screen and 144Hz when picom is disabled.

  2. Whenever i move a window around, the framrate drops significantly. Like down to 5-10 fps. That's isn't suuuper bad because i use Bismuth, therefore i don't really move windows around that much. But i do like the meta+mouse movement and this is really ugly...So if that would be fixable that would be great.

To clarify; Currently i use Arian8j2's Fork with this picom.conf because of those super neat animations of windows moving that get triggered by moving the windows in Bismuth. Sadly rounded corners and shadows don't play along here and give me those ugly triangular "cutouts" in the shadows...guess there isn't a picom fork that has everything i want in it.

So, if anyone here could help me figuring out how to solve that annoying refresh-rate bug. That would be awesome!

System:

Kernel: 5.18.16-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.1.1

parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen

root=UUID=c3ef0d61-a4ef-469b-96b1-b7a7583d021e rw [email protected]

quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0

loglevel=3

Desktop: KDE Plasma v: 5.25.4 tk: Qt v: 5.15.5 info: latte-dock, polybar

wm: kwin_x11 vt: 1 dm: SDDM Distro: Garuda Linux base: Arch Linux

Machine:

Type: Desktop Mobo: ASUSTeK model: ROG STRIX B450-F GAMING v: Rev 1.xx

serial: <superuser required> BIOS: American Megatrends v: 4801

date: 03/02/2022

CPU:

Info: model: AMD Ryzen 5 2600X bits: 64 type: MT MCP arch: Zen+ gen: 2

built: 2018-21 process: GF 12nm family: 0x17 (23) model-id: 8 stepping: 2

microcode: 0x800820D

Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:

L1: 576 KiB desc: d-6x32 KiB; i-6x64 KiB L2: 3 MiB desc: 6x512 KiB

L3: 16 MiB desc: 2x8 MiB

Speed (MHz): avg: 3915 high: 3939 min/max: 2200/3600 boost: enabled

scaling: driver: acpi-cpufreq governor: performance cores: 1: 3937 2: 3916

3: 3931 4: 3926 5: 3911 6: 3893 7: 3879 8: 3902 9: 3893 10: 3937 11: 3939

12: 3918 bogomips: 86239

Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm

Vulnerabilities:

Type: itlb_multihit status: Not affected

Type: l1tf status: Not affected

Type: mds status: Not affected

Type: meltdown status: Not affected

Type: mmio_stale_data status: Not affected

Type: retbleed mitigation: untrained return thunk; SMT vulnerable

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: Retpolines, IBPB: conditional, STIBP:

disabled, RSB filling

Type: srbds status: Not affected

Type: tsx_async_abort status: Not affected

Graphics:

Device-1: NVIDIA GA104 [GeForce RTX 3070] vendor: ASUSTeK driver: nvidia

v: 515.65.01 alternate: nouveau,nvidia_drm non-free: 515.xx+ status: current

(as of 2022-07) arch: Ampere code: GAxxx process: TSMC n7 (7nm)

built: 2020-22 pcie: gen: 3 speed: 8 GT/s lanes: 8 link-max: gen: 4

speed: 16 GT/s lanes: 16 bus-ID: 09:00.0 chip-ID: 10de:2484

class-ID: 0300

Device-2: Microdia USB Live camera type: USB

driver: snd-usb-audio,uvcvideo bus-ID: 1-6.3:7 chip-ID: 0c45:6537

class-ID: 0102 serial: <filter>

Display: x11 server: X.Org v: 21.1.4 with: Xwayland v: 22.1.3

compositors: 1: kwin_x11 2: Picom v: git-f70d0 driver: X: loaded: nvidia

gpu: nvidia display-ID: :0 screens: 1

Screen-1: 0 s-res: 4520x1920 s-dpi: 51 s-size: 2251x301mm (88.62x11.85")

s-diag: 2271mm (89.41")

Monitor-1: DP-2 pos: primary,top-left res: 1080x1920 hz: 60 dpi: 92

size: 299x531mm (11.77x20.91") diag: 609mm (23.99") modes: N/A

Monitor-2: DP-4 pos: primary,bottom-r res: 3440x1440 dpi: 109

size: 800x330mm (31.5x12.99") diag: 865mm (34.07") modes: N/A

OpenGL: renderer: NVIDIA GeForce RTX 3070/PCIe/SSE2 v: 4.6.0 NVIDIA

515.65.01 direct render: Yes

Audio:

Device-1: NVIDIA GA104 High Definition Audio vendor: ASUSTeK

driver: snd_hda_intel v: kernel bus-ID: 1-6.3:7 pcie: chip-ID: 0c45:6537

class-ID: 0102 gen: 3 speed: 8 GT/s serial: <filter> lanes: 8 link-max:

gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 09:00.1 chip-ID: 10de:228b

class-ID: 0403

Device-2: AMD Family 17h HD Audio vendor: ASUSTeK driver: snd_hda_intel

v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 0c:00.3

chip-ID: 1022:1457 class-ID: 0403

Device-3: Microdia USB Live camera type: USB

driver: snd-usb-audio,uvcvideo

Device-4: C-Media TONOR TC30 Audio Device type: USB

driver: hid-generic,snd-usb-audio,usbhid bus-ID: 1-6.4:9 chip-ID: 0d8c:0134

class-ID: 0300 serial: <filter>

Sound Server-1: ALSA v: k5.18.16-zen1-1-zen running: yes

Sound Server-2: sndio v: N/A running: no

Sound Server-3: PulseAudio v: 16.1 running: no

Sound Server-4: PipeWire v: 0.3.56 running: yes

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>

IF-ID-1: anbox0 state: down mac: <filter>

Bluetooth:

Device-1: ASUSTek Broadcom BCM20702A0 Bluetooth type: USB driver: btusb

v: 0.8 bus-ID: 3-2.1.1:4 chip-ID: 0b05:17cb class-ID: fe01 serial: <filter>

Report: bt-adapter ID: hci0 rfk-id: 0 state: up address: <filter>

Drives:

Local Storage: total: 2.88 TiB used: 1.22 TiB (42.2%)

SMART Message: Unable to run smartctl. Root privileges required.

ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: SK Hynix

model: HFM256GDHTNG-8310A size: 238.47 GiB block-size: physical: 512 B

logical: 512 B speed: 15.8 Gb/s lanes: 2 type: SSD serial: <filter>

rev: 80070C00 temp: 48.9 C scheme: GPT

ID-2: /dev/nvme1n1 maj-min: 259:2 vendor: Samsung model: SSD 970 EVO

250GB size: 232.89 GiB block-size: physical: 512 B logical: 512 B

speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter> rev: 1B2QEXE7

temp: 53.9 C scheme: MBR

ID-3: /dev/sda maj-min: 8:0 vendor: Crucial model: CT1000MX500SSD1

size: 931.51 GiB block-size: physical: 4096 B logical: 512 B

speed: 6.0 Gb/s type: SSD serial: <filter> rev: 033 scheme: GPT

ID-4: /dev/sdb maj-min: 8:16 vendor: SanDisk model: SDSSDP128G

size: 117.38 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s

type: SSD serial: <filter> scheme: GPT

ID-5: /dev/sdc maj-min: 8:32 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: MBR

ID-6: /dev/sdh maj-min: 8:112 model: iSCSI Disk size: 500 GiB block-size:

physical: 16384 B logical: 512 B type: N/A serial: N/A rev: 0123

Partition:

ID-1: / raw-size: 232.88 GiB size: 232.88 GiB (100.00%) used: 149.62 GiB

(64.2%) fs: btrfs dev: /dev/nvme1n1p1 maj-min: 259:3

ID-2: /home raw-size: 232.88 GiB size: 232.88 GiB (100.00%) used: 149.62

GiB (64.2%) fs: btrfs dev: /dev/nvme1n1p1 maj-min: 259:3

ID-3: /var/log raw-size: 232.88 GiB size: 232.88 GiB (100.00%) used: 149.62

GiB (64.2%) fs: btrfs dev: /dev/nvme1n1p1 maj-min: 259:3

ID-4: /var/tmp raw-size: 232.88 GiB size: 232.88 GiB (100.00%) used: 149.62

GiB (64.2%) fs: btrfs dev: /dev/nvme1n1p1 maj-min: 259:3

Swap:

Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)

ID-1: swap-1 type: zram size: 15.54 GiB used: 1.85 GiB (11.9%)

priority: 100 dev: /dev/zram0

Sensors:

System Temperatures: cpu: 63.0 C mobo: 55.0 C gpu: nvidia temp: 53 C

Fan Speeds (RPM): cpu: 1618 case-1: 1074 case-2: 0 case-3: 0 gpu: nvidia

fan: 53%

Power: 12v: 9.87 5v: N/A 3.3v: N/A vbat: 3.18

Info:

Processes: 455 Uptime: 6h 33m wakeups: 1 Memory: 15.54 GiB used: 9.2 GiB

(59.2%) Init: systemd v: 251 default: graphical tool: systemctl

Compilers: gcc: 12.1.1 clang: 14.0.6 Packages: pacman: 2092 lib: 544

Shell: fish v: 3.5.1 running-in: konsole inxi: 3.3.20

Garuda (2.6.5-1):

System install date: 2022-08-08

Last full system update: 2022-08-10

Is partially upgraded: Yes

Relevant software: NetworkManager

Windows dual boot: <superuser required>

Snapshots: Snapper

Failed units: [email protected] systemd-networkd-wait-online.service

AFAIK the fix of this is to use Wayland, but that may not be feasible with Nvidia GPU. To switch to Wayland, install plasma-wayland-session and egl-wayland, log out and choose Plasma (Wayland) as your session. You may also wish to disable Picom before switching. Good luck.
Also please paste your inxi right here, I can't open pastebin.com for some reason..

2 Likes

i know how to switch to wayland, but i won't do that.

Sorry, this is no solution.

The pastebin link works perfectly fine, don't know why you can't open it.

Previously nothing happened when I opened a pastebin.com link but now I know why it isn't working: pastebin.com is blocked in my region :rofl:

Why? Did you try it?

1 Like

Well, this is sad

Yup, and as for many others, it's wonky. Too wonky for my taste. I'm very comfortable with X11 and i believe that i can get these issues of mine fixed within the boundaries of X11.

No need to post the short inxi in paste bin. I edit your post :wink:
If you check upper right, Garuda have their own private bin. :smiley:

Is partially upgraded: Yes
2 Likes

Didn't see that - good to know.

I check after an upgrade...But i upgrade quite often. And i have those exact same issues wether or not i upgrade.

I'm the kind of person that always reboots after an upgrade. So i wouldn't say this is the issue.

So - after the upgrade and reboot. No change at all.

Have you achieved your expected result (each monitor in a different frequency) in any other Linux distro (not WinOS)? IIRC this is not practically possible on Xorg, but I am not sure.

I would first try nvidia-settings for a solution.

picom, nvidia, Xorg and multi-head are too many, and their Archwiki pages include several troubleshooting advices to test. That's the second path to try.

Gaming applications are not like normal applications, with display performance, because they usually act directly on hardware. Have you confirmed the issue happens even when there is no gaming application included?

1 Like

No, i have not. But i haven't tried many other Distros yet. And only since the last couple months i would consider myself somewhat of a poweruser. Up until that point i was on Ubuntu and i didn't even think it would be possible to "harnish" the full potential of my NVidia GPU in Linux as everyone has told me.

Only since i first went to Manjaro and now Garuda, did i learn that there appears to be a way for that as many others claim.

I have the feeling that i already tested everything there... Could be that i missed something. But i was hoping to be lucky and have someone here stumble across this post and think "Hey, i just had that exact same issue the other day, here is how i fixed it!". Because KDE and NVidia aren't that rarely used :smiley:

What exactly do you mean with that? My issue is that everything is locked to 60Hz until i disable the compositor. That includes games, that's why i have to disable the compositor everytime i want to play something.

As an update to that last statement; I now have changed Picom forks, and experimented with that a bit. Now i do have 144Hz performance in games WHILE Picom is running. However i still don't have 144Hz without any games...That's something i can live with i guess. As i said, i was just hoping to stumble across an easy fix. I don't plan to tinker around in the depths just to fix this minor inconvenience.

But thanks to everyone nonetheless.

Another interesting update - maybe you can make something out of it.

So i just played around with some colors etc. and accidentally crashed my plasmashell. Not Kwin or anything else; Only the plasmashell.

So Picom runs, KWin with Bismuth still runs. So everything works perfectly fine, but i don't have my wallpaper and the KDE Panel on my other display isn't there anymore - And lo and behold! I have perfect and tearfree 144Hz on my main display, perfect and tearfree 60Hz on my other display and everything is still running....

So the issue lies within plasmashell i suppose...Maybe there is some settings / config i can do there? Does someone know of anything like that?

1 Like