Performance Issues with NVIDIA-GPU on Fresh Install

I am having huge performance issues on a relatively fresh (few days) install of EndevourOS.

I first noticed that watching a twitch-stream in Firefox uses up 200% CPU, which obviously is not right. It is not a twitch issue, since the same happens on YouTube and it is not a Firefox issue, since on Chromium I have 150% when watching Twitch.
For some reason now the numbers have gone down slightly in Firefox. Watching a stream uses 50-120% (instead of 200%) in one firefox-thread, 30-35% in another and 30% for Xorg. For Chromium it is 125-150% in one thread, 40-45% in another and 40% for Xorg.

I also tested out running Steam games and I have horrendous performance there as well (Slay the Spire running on 15fps with 300% CPU when it was running just fine on my previously installed Antergos). I also had very bad performance when enabling transparency-blur under i3, but I initially thought my machine was just not able to handle that (which it probably should though).

It seems like a graphics driver issue, but I was also under the impression that Firefox did not have hardware acceleration anyways and decoding on the CPU should not bring my machine to sweat. I have installed the NVIDIA drivers through nvidia-installer-dkms and nvidia-settings tells me that driver version 455.28 is installed. glxgears runs with a bit over 1k fps.

I do not think this is a hardware issue, since everything is running fine under Windows.

I am running LightDM and the problem is the same in Xfce and i3, which I have both installed through the OS-installer with all their respective packages.

My Specs:
CPU: Intel Core i5-3570K
GPU: GeForce GTX 760
RAM: 16GB

I will happily provide any additional information, the output of commands or logfiles as needed.

I’m going to guess you’re running kernel 5.9?

If so, try 5.4 instead.

The NVIDIA driver isn’t fully functional yet with 5.9, so run with 5.4 (linux-lts) until NVIDIA releases an update.

I am indeed using kernel 5.9.
I just installed linux-lts and tried to boot into it twice, but I do only get a black screen.

That sounds like you removed nvidia-dkms (or otherwise don’t have NVIDIA driver installed for 5.4).

Did you install nvidia and then didn’t install nvidia-lts for the LTS kernel?

I did not install nvidia directly, but through nvidia-installer-dkms. I did not remove nvidia-dkms

[desmond@desmond-arch ~]$ pacman -Qe | grep nvidia
lib32-nvidia-utils 455.28-1
nvidia-dkms 455.28-1
nvidia-installer-dkms 3.3.8-1
nvidia-settings 455.28-1

But I don’t have nvidia-lts or a driver for the 5.4 kernel

[desmond@desmond-arch ~]$ dkms status
blackmagic, 11.6a26, 5.9.1-arch1-1, x86_64: installed
blackmagic-io, 11.6a26, 5.9.1-arch1-1, x86_64: installed
nvidia, 455.28, 5.9.1-arch1-1, x86_64: installed

So I just install nvidia-lts?

Or does dkms status only show the modules of the current running kernel by default? When I ask for the lts-kernel it states that all three modules are added?

[desmond@desmond-arch ~]$ dkms status -k 5.4.72-1-lts 
blackmagic, 11.6a26: added
blackmagic-io, 11.6a26: added
nvidia, 455.28: added

No, nvidia-dkms should compile and install the module for all kernels on the system.

This suggests you have a single kernel installed or DKMS is somehow broken. If DKMS is working correctly it will show all modules for all kernels, e.g.:

$ dkms status
vboxhost, 6.1.16_OSE, 5.9.1-1-ck-zen, x86_64: installed
vboxhost, 6.1.16_OSE, 5.9.1-arch1-1, x86_64: installed
vboxhost, 6.1.16_OSE, 5.9.1-zen2-1-zen, x86_64: installed
zfs, 0.8.5, 5.9.1-1-ck-zen, x86_64: installed
zfs, 0.8.5, 5.9.1-arch1-1, x86_64: installed
zfs, 0.8.5, 5.9.1-zen2-1-zen, x86_64: installed

I definitely do have both 5.9 and 5.4 installed. I installed linux-lts and can also boot into it. When I put dkms status -k in bash it autocompletes to both versions, further suggesting that I have them both installed.

$ dkms status -k 5.
5.4.72-1-lts   5.9.1-arch1-1
$ pacman -Qe | grep linux
archlinux-xdg-menu 0.7.6.3-2
linux 5.9.1.arch1-1
linux-atm 2.5.2-6
linux-firmware 20201023.dae4b4c-1
linux-headers 5.9.1.arch1-1
linux-lts 5.4.72-1

Install also linux-lts-headers.

And welcome! :smile:

I installed the headers and now the modules were compiled correctly and I can boot into the lts-kernel, but the issues I described are not fixed.

Output of inxi -Gxxx and/or glxinfo | grep -i vendor ?

(Yes, you may have to install inxi and/or glxinfo first)

$ inxi -Gxxx
Graphics:
  Device-1: Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics 
  vendor: ASRock driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:0162 
  Device-2: NVIDIA GK104 [GeForce GTX 760] vendor: ASUSTeK driver: nvidia 
  v: 455.28 bus ID: 01:00.0 chip ID: 10de:1187 
  Device-3: Blackmagic Design Intensity Pro 4K driver: blackmagic-io 
  v: 11.6a26 bus ID: 02:00.0 chip ID: bdbd:a139 
  Display: x11 server: X.org 1.20.9 driver: modesetting FAILED: nvidia 
  resolution: <xdpyinfo missing> 
  OpenGL: renderer: llvmpipe (LLVM 10.0.1 256 bits) v: 4.5 Mesa 20.2.1 
  compat-v: 3.1 direct render: Yes
$ glxinfo | grep -i vendor
server glx vendor string: SGI
client glx vendor string: Mesa Project and SGI
    Vendor: Mesa/X.org (0xffffffff)
OpenGL vendor string: Mesa/X.org

OK, so it appears that it’s running on your Intel iGPU rather than the NVIDIA card.

Are you running your display on the correct output?

1 Like

I am running both my displays on the outputs of my graphics card.

Please show the output of:

  lsmod | grep -P 'i915|nvidia|nouveau'
  lspci -vnn | grep -PA9 'VGA|3D|Display'
$ lsmod | grep -P 'i915|nvidia|nouveau'
nvidia_drm             57344  1
nvidia_modeset       1216512  2 nvidia_drm
nvidia              27701248  72 nvidia_modeset
i915                 2392064  1
i2c_algo_bit           16384  1 i915
drm_kms_helper        221184  2 nvidia_drm,i915
intel_gtt              24576  1 i915
drm                   520192  5 drm_kms_helper,nvidia_drm,i915
$ lspci -vnn | grep -PA9 'VGA|3D|Display'
00:02.0 Display controller [0380]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller [8086:0162] (rev 09)
	Subsystem: ASRock Incorporation Motherboard [1849:0162]
	Flags: bus master, fast devsel, latency 0, IRQ 35
	Memory at f7400000 (64-bit, non-prefetchable) [size=4M]
	Memory at d0000000 (64-bit, prefetchable) [size=256M]
	I/O ports at f000 [size=64]
	Capabilities: <access denied>
	Kernel driver in use: i915
	Kernel modules: i915

--
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK104 [GeForce GTX 760] [10de:1187] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: ASUSTeK Computer Inc. Device [1043:8472]
	Flags: bus master, fast devsel, latency 0, IRQ 37
	Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
	Memory at e0000000 (64-bit, prefetchable) [size=128M]
	Memory at e8000000 (64-bit, prefetchable) [size=32M]
	I/O ports at e000 [size=128]
	Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
	Capabilities: <access denied>
	Kernel driver in use: nvidia

Try blacklisting i915, e.g. use kernel parameter module_blacklist=i915.

https://wiki.archlinux.org/index.php/Kernel_module#Blacklisting

2 Likes

That did work! Slay the Spire runs smoothly now. :grinning:

The load of watching a YouTube video did not go down much though. That is still around 100% CPU in total, which still seems too high, or am I just crazy?

2 Likes

Based on what? HD videos require CPU to decode, and as you say,

so :man_shrugging:

I am just crazy then. I can live with that. :upside_down_face:

Thank you @jonathon and @manuel for your help and fixing the problem. Greatly appreciated!

3 Likes