NVIDIA seems to hate compositors now

I just switched from KDE to XFCE, simply because all signs were pointing to the compositors being the issue, and fully killing that with KDE is far more difficult than it needs to be. When in XFCE, while the compositors is running, there will be random lag spikes, especially when a game is running, and these are spikes from 90+fps, to less than 1.

As soon as I uncheck the compositors in XFCE, everything runs like butter, I have no issues in games, no issues with video playback, and the UI is fluid. Something is either desperately wrong with NVIDIAs drivers (I'm more likely to believe that), the compositors, or both. I just spent hours nailing down where the problems coming from, and am too tired to know for sure what to do about it, so hopefully this tips someone off, because this needs fixing bad.

Edit: Please understand I posted this when I was barely clinging to conciousness

System:
  Kernel: 5.6.12-1-MANJARO x86_64 bits: 64 compiler: gcc v: 9.3.0 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.6-x86_64 
  root=UUID=e8135d47-7eee-48e6-b981-a67ae4a461ee rw quiet apparmor=1 
  security=apparmor udev.log_priority=3 
  Desktop: Xfce 4.14.2 tk: Gtk 3.24.20 info: xfce4-panel wm: xfwm4 
  dm: LightDM 1.30.0 Distro: Manjaro Linux 
Machine:
  Type: Desktop Mobo: MSI model: Z270 GAMING M7 (MS-7A57) v: 1.0 
  serial: <filter> UEFI: American Megatrends v: 1.70 date: 06/30/2018 
CPU:
  Topology: Quad Core model: Intel Core i7-7700 bits: 64 type: MT MCP 
  arch: Kaby Lake family: 6 model-id: 9E (158) stepping: 9 microcode: CA 
  L2 cache: 8192 KiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx 
  bogomips: 57616 
  Speed: 4000 MHz min/max: 800/4200 MHz Core speeds (MHz): 1: 4000 2: 4000 
  3: 4000 4: 4000 5: 4000 6: 4000 7: 4000 8: 4000 
  Vulnerabilities: 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: spec_store_bypass 
  mitigation: Speculative Store Bypass disabled via prctl and seccomp 
  Type: spectre_v1 
  mitigation: usercopy/swapgs barriers and __user pointer sanitization 
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, 
  IBRS_FW, STIBP: conditional, RSB filling 
  Type: tsx_async_abort mitigation: Clear CPU buffers; SMT vulnerable 
Graphics:
  Device-1: NVIDIA GP104 [GeForce GTX 1080] vendor: eVga.com. driver: nvidia 
  v: 440.82 bus ID: 01:00.0 chip ID: 10de:1b80 
  Display: x11 server: X.Org 1.20.8 driver: nvidia tty: N/A 
  OpenGL: renderer: GeForce GTX 1080/PCIe/SSE2 v: 4.6.0 NVIDIA 440.82 
  direct render: Yes 
Audio:
  Device-1: Intel 200 Series PCH HD Audio vendor: Micro-Star MSI 
  driver: snd_hda_intel v: kernel bus ID: 00:1f.3 chip ID: 8086:a2f0 
  Device-2: NVIDIA GP104 High Definition Audio vendor: eVga.com. 
  driver: snd_hda_intel v: kernel bus ID: 01:00.1 chip ID: 10de:10f0 
  Sound Server: ALSA v: k5.6.12-1-MANJARO 
Network:
  Device-1: Intel Wireless-AC 9260 driver: iwlwifi v: kernel port: e000 
  bus ID: 02:00.0 chip ID: 8086:2526 
  IF: wlp2s0 state: down mac: <filter> 
  Device-2: Qualcomm Atheros Killer E2500 Gigabit Ethernet 
  vendor: Micro-Star MSI driver: alx v: kernel port: d000 bus ID: 03:00.0 
  chip ID: 1969:e0b1 
  IF: enp3s0 state: up speed: 1000 Mbps duplex: full mac: <filter> 
Drives:
  Local Storage: total: 9.32 TiB used: 7.21 TiB (77.4%) 
  ID-1: /dev/sda vendor: Seagate model: ST1000LM024 HN-M101MBB 
  size: 931.51 GiB block size: physical: 4096 B logical: 512 B 
  speed: 3.0 Gb/s rotation: 5400 rpm serial: <filter> rev: 0002 scheme: GPT 
  ID-2: /dev/sdb vendor: Seagate model: ST8000NE0021-2EN112 size: 7.28 TiB 
  block size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s 
  rotation: 7200 rpm serial: <filter> rev: EN02 scheme: GPT 
  ID-3: /dev/sdc vendor: Silicon Power model: SPCC Solid State Disk 
  size: 223.57 GiB block size: physical: 512 B logical: 512 B 
  speed: 6.0 Gb/s serial: <filter> rev: 2A scheme: GPT 
  ID-4: /dev/sdd vendor: Samsung model: SSD 850 EVO 1TB size: 931.51 GiB 
  block size: physical: 512 B logical: 512 B speed: 6.0 Gb/s 
  serial: <filter> rev: 2B6Q scheme: GPT 
RAID:
  Hardware-1: Intel SATA Controller [RAID mode] driver: ahci v: 3.0 
  port: f020 bus ID: 00:17.0 chip ID: 8086.2822 rev: N/A 
Partition:
  ID-1: / raw size: 931.22 GiB size: 915.60 GiB (98.32%) 
  used: 170.33 GiB (18.6%) fs: ext4 dev: /dev/sdd2 
Sensors:
  System Temperatures: cpu: 63.0 C mobo: 29.8 C gpu: nvidia temp: 66 C 
  Fan Speeds (RPM): N/A gpu: nvidia fan: 50% 
Info:
  Processes: 322 Uptime: 11h 44m Memory: 31.32 GiB used: 6.98 GiB (22.3%) 
  Init: systemd v: 245 Compilers: gcc: 9.3.0 alt: 8 Shell: bash v: 5.0.16 
  running in: xfce4-terminal inxi: 3.0.37 

You can disable/enable the compositor with a keystroke combination on most desktops.

Which is great and all, but that doesn't change the fact it shouldn't be bringing the system to what I'd call a sobbing mess. If I could switch to AMD, I would, but I'm broke.

You haven't given us any actual information about your hardware to provide any insight if what you are seeing is normal. inxi -Fxxxz would be a good place to start.

I am not sure about xfce but kde disables the compositor under certain circumstances including when a game is running. That may be part of the difference you are seeing since switching.

nvidias hates everything.
and xfwm's compositor has a long history of being ... subpar.
Most likely you want to force it to use the newer xpresent mode or replace with picom.

But you should really provide some basic info .. such as inxi -Fxxxza --no-host

For more information on XFCE compositor options and such see here:
https://forum.xfce.org/viewtopic.php?id=13233

But to cut the fat .. to switch to xpresent mode run this:

xfconf-query -c xfwm4 -p /general/vblank_mode -t string -s "xpresent" --create

(default I believe is 'auto' which falls down to 'glx' .. but 'xpresent' is the newest and from my experience works best - without it newer amdgpu had random artifact glitches across the desktop)

One last link for changing it at the ISO level: [SOLVED] xfce compositor: Transparency graphic artifacts

Added

Here's the thing, killing KWIN didn't fully fix the issues with KDE, and I went through some dozen settings to potentially fix the problem. Switching to XFCE, if I have the compositor running, AT ALL, it becomes a lag spiking nightmare. I simply switched to XFCE because it's compositor is easier to fully kill off without needing a full reboot.

My entire point is that the compositor, regardless of desktop environment, shouldn't really create THIS level of problem with NVIDIA drivers, and I know it's the NVIDIA card, because if I turn on and switch to the Intel GPU on my processor, everything runs better than my 1080 with the compositor on....which is ridiculous. Right now my solution is to just leave the compositor off.

Edit: After running your command and turning the compositor back on, the lag spikes remained completely unchanged.

Sorry to hear closed-source is still hard to work with and the controlling company doesnt care. :woman_shrugging:

Have you tried any other 'workarounds' such as from the archwiki nvidia page ?

More than I can count really, and I don't blame the open source community on this. I bought this card 4 years ago without doing the proper research, the problem being, that was a hefty loan to pull that off and it was through college. Then I learned, NVIDIA is a complete garbage company that has continued to make my life hell for no reason other than their own hubris. I'm more posting this as THE workaround that I've managed to find so far. Disabling the compositor, while not as pretty, works every-time all the time and you'll get your frames back.

Sure thing .. have you tried replacing with Picom ?

Also .. I found this old script laying around that I made for someone else who wanted to toggle compton on and off for similar reasons (they then set the script to a key combo) .. and as picom should drop-in replace it .. a possible version would be:

#!/bin/bash

if [ `pgrep -x picom` ]; then
   notify-send -t 1600 'Disabled picom' --icon=video-display
   killall picom;
else 
   notify-send -t 1600 'Enabled picom' --icon=video-display
   picom -b &
fi
exit

Or with xfwms own compositor it has a toggle command:

xfconf-query -c xfwm4 -p /general/use_compositing -t bool --toggle

Which you could assign to a key as well.

Not really a 'fix' .. but it might be a convenience.

I just plan to leave the compositor off for now. As I kind of hinted at, I started on KDE, I PREFER KDE, but XFCE is much easier to kill off all the GPU related drawing methods. So until I either get an AMD card, or NVIDIA stops being douche bags, I'm just going to leave the compositor off for now. Thank you all the same though.

I find your Nvidia comments rather bemusing. I,ve used nothing but Nvidia for 12 years at least and never had a single problem. What makes you think Nvidia personally have it in for you in particularly?

Dont get it twisted .. nvidia 'has it out' for everyone, the open source community in particular.
Do a quick search. Find the finger seen round the world. And even windoze gamer kids complaining about their policies of sabotaging competitors, discontinuing support for lower-end cards after a meager few years, etc.

Now .. I know lots of people use nvidia. Some are even 'happy' with it.
This may be a particular case. Maybe its the system configuration.
Hard to know .. but one thing is always sure .. nvidia does not give a wink about you :wink:

1 Like

I have seen 2 different models of nvidia adapters I own have their support dropped recently.

Never again, I purchased 2 AMD replacements and I will never own another nvidia adapter as long as there are alternatives from here on out.

What cscs said. Like, I'm glad it works for you, super happy, go and enjoy your working setup. It's never been anything but migraines and stuttering for me.

Any chance I could trade you :stuck_out_tongue:?

Sorry, not on your life. I've had it with nvidia.

So, funny thing, I tried again, there were 2 things happening that was causing problems, and one of them, probably won't make an ounce of sense. So, first problem I noticed, is dmesg was spitting out a ton of errors about a USB cable being bad, isolated which cable, and replaced it, and I got back some performance. Did some further testing, and became insanely confused as, if I turn off the compositor in KDE, things start lag spiking. If I leave the compositor on, it runs smoothly.

Edit: So, how do I disable automatic compositor disabling?

Hardwire the compositor into the GPU. :smile:

Sorry, I couldn't resist that silly remark. No idea on that one, maybe someone knows.

That hardly makes any sense though. :confused:

It really doesn't, and I have no idea how I'd troubleshoot that one.

Forum kindly sponsored by