1-2 FPS in external screen with nvidia 525 drivers installed

Hello,

I’ve updated nvidia’s drivers 520.56.06-1.fc37 to newest 525.60.11-1.fc37 from rpmfusion and with them my external screen’s FPS drops to 1-2 frames per second and every mouse click and keyboard press has a huge several second delay. This is just with normal X11 KDE desktop usage. I have not even tried to start any 3D games. This issue seems to come up when I have the external screen enabled and laptop’s screen disabled. Enabling laptop’s screen improves FPS in the external screen. If I switch to Wayland session FPS increases to 17 frames per second which is still horrible, but much more usable, and I don’t notice the huge input lag anymore. There is no difference in Wayland performance before or after driver update, so this issue seems to be constrained to X11.

What is it that is causing this issue? And what can I do to fix it?

I have a Tuxedo XP15 gen11 laptop with Intel UHD Graphics 630 and GeForce RTX 2080, so this is a optimus system. I’m using the hybrid mode that is enabled by default. So in normal desktop usage where I’m experiencing this issue the Intel GPU is being used to render the desktop (or it should be). The external screen is connected with displayport cable to thunderbolt 3 dock (CalDigit TS3 Plus) and the dock is connected via tb3 cable to the laptop.

I’ve verified that issue comes from nvidia’s driver update by ensuring that updating everything except nvidia’s drivers causes no issue, using command:

$ sudo dnf update --exclude "*nvidia*"

Without the exclude the issue comes up after computer restart. I have also waited several minutes after update to ensure that akmod has finished driver update.

I have a Timeshift snapshot from before the driver update which I have used to restore the system back to a working state.

Low FPS after update with 525 drivers (using KDE’s built in desktop effect):
56b7b138b456d311bb6a2ea86c7fb06a2af2e80b.png

Before update with 520 drivers:
aa18ac527d0a8dc5295df4f39bbbc1023c695442.png

Inxi output:

$ inxi -SMGaz  
System:  
 Kernel: 6.0.15-300.fc37.x86_64 arch: x86_64 bits: 64 compiler: gcc  
   v: 2.38-25.fc37  
   parameters: BOOT_IMAGE=(hd0,gpt2)/vmlinuz-6.0.15-300.fc37.x86_64  
   root=UUID=29b3b20b-e8d0-4a08-8c48-e271ccd0d695 ro rootflags=subvol=@  
   rd.driver.blacklist=nouveau modprobe.blacklist=nouveau  
   nvidia-drm.modeset=1 rhgb quiet  
   initcall_blacklist=simpledrm_platform_driver_init  
   drm.edid_firmware=eDP-1:edid/1920x1080.bin  
   pci=assign-busses,realloc,hpbussize=0x33,hpmmiosize=128M,hpmmioprefsize=8G,hpiosize=4K  
   rd.driver.blacklist=nouveau modprobe.blacklist=nouveau  
   nvidia-drm.modeset=1  
 Desktop: KDE Plasma v: 5.26.4 tk: Qt v: 5.15.7 wm: kwin_x11 vt: 2 dm: SDDM  
   Distro: Fedora release 37 (Thirty Seven)  
Machine:  
 Type: Laptop System: TUXEDO product: TUXEDO Book XP1511 v: N/A  
   serial: <superuser required> Chassis: Notebook type: 10  
   serial: <superuser required>  
 Mobo: TUXEDO model: PCX0DX serial: <superuser required> UEFI: INSYDE  
   v: 1.07.09RTR2 date: 10/23/2020  
Graphics:  
 Device-1: Intel CometLake-H GT2 [UHD Graphics] vendor: CLEVO/KAPOK  
   driver: i915 v: kernel arch: Gen-9.5 process: Intel 14nm built: 2016-20  
   ports: active: none off: eDP-1 empty: none bus-ID: 00:02.0  
   chip-ID: 8086:9bc4 class-ID: 0300  
 Device-2: NVIDIA TU104M [GeForce RTX 2080 SUPER Mobile / Max-Q]  
   vendor: CLEVO/KAPOK driver: nvidia v: 520.56.06  
   alternate: nouveau,nvidia_drm non-free: 520.xx+  
   status: current (as of 2022-10) arch: Turing code: TUxxx  
   process: TSMC 12nm built: 2018-22 pcie: gen: 1 speed: 2.5 GT/s lanes: 16  
   link-max: gen: 3 speed: 8 GT/s ports: active: none off: DP-1  
   empty: DP-2,HDMI-A-1 bus-ID: 01:00.0 chip-ID: 10de:1e93 class-ID: 0300  
 Device-3: Acer BisonCam NB Pro type: USB driver: uvcvideo bus-ID: 1-8:2  
   chip-ID: 5986:9102 class-ID: 0e02  
 Device-4: Logitech C920 HD Pro Webcam type: USB  
   driver: snd-usb-audio,uvcvideo bus-ID: 7-3.2:5 chip-ID: 046d:0892  
   class-ID: 0102 serial: <filter>  
 Display: x11 server: X.Org v: 1.20.14 with: Xwayland v: 22.1.7  
   compositor: kwin_x11 driver: X: loaded: modesetting,nvidia  
   unloaded: fbdev,nouveau,vesa alternate: nv dri: iris  
   gpu: i915,nvidia,nvidia-nvswitch display-ID: :0 screens: 1  
 Screen-1: 0 s-res: 3440x1440 s-dpi: 96 s-size: 907x380mm (35.71x14.96")  
   s-diag: 983mm (38.72")  
 Monitor-1: DP-1 mapped: DP-1-0 note: disabled pos: primary  
   model: Asus ROG PG348Q serial: <filter> built: 2016 res: 3440x1440 dpi: 109  
   gamma: 1.2 size: 798x335mm (31.42x13.19") diag: 865mm (34.1") modes:  
   max: 3440x1440 min: 640x480  
 Monitor-2: eDP-1 note: disabled model: Linux FHD serial: <filter>  
   built: 2012 res: 3440x1440 dpi: 98 gamma: 1.2 size: 500x281mm (19.69x11.06")  
   diag: 574mm (22.6") ratio: 16:9 modes: 1920x1080  
 API: OpenGL v: 4.6 Mesa 22.3.1 renderer: Mesa Intel UHD Graphics (CML GT2)  
   direct render: Yes

Boltctl output:

$ boltctl    
● CalDigit, Inc. TS3 Plus  
  ├─ type:          peripheral  
  ├─ name:          TS3 Plus  
  ├─ vendor:        CalDigit, Inc.  
  ├─ uuid:          009962fc-94f3-3d00-ffff-ffffffffffff  
  ├─ generation:    Thunderbolt 3  
  ├─ status:        authorized  
  │  ├─ domain:     bf010000-0080-8c1e-8360-5731e270b826  
  │  ├─ rx speed:   40 Gb/s = 2 lanes * 20 Gb/s  
  │  ├─ tx speed:   40 Gb/s = 2 lanes * 20 Gb/s  
  │  └─ authflags:  none  
  ├─ authorized:    ti 27. joulukuuta 2022 18.09.41  
  ├─ connected:     ti 27. joulukuuta 2022 18.09.41  
  └─ stored:        ke 14. syyskuuta 2022 06.16.00  
     ├─ policy:     iommu  
     └─ key:        no

Nvidia driver packages before update (working state):

$ dnf list installed | grep nvidia
akmod-nvidia.x86_64                                  3:520.56.06-1.fc37                  @rpmfusion-nonfree
kmod-nvidia-6.0.8-300.fc37.x86_64.x86_64             3:520.56.06-1.fc37                  @@commandline
nvidia-settings.x86_64                               3:520.56.06-1.fc37                  @rpmfusion-nonfree
xorg-x11-drv-nvidia.x86_64                           3:520.56.06-1.fc37                  @rpmfusion-nonfree
xorg-x11-drv-nvidia-cuda-libs.x86_64                 3:520.56.06-1.fc37                  @rpmfusion-nonfree
xorg-x11-drv-nvidia-kmodsrc.x86_64                   3:520.56.06-1.fc37                  @rpmfusion-nonfree
xorg-x11-drv-nvidia-libs.i686                        3:520.56.06-1.fc37                  @rpmfusion-nonfree
xorg-x11-drv-nvidia-libs.x86_64                      3:520.56.06-1.fc37                  @rpmfusion-nonfree
xorg-x11-drv-nvidia-power.x86_64                     3:520.56.06-1.fc37                  @rpmfusion-nonfree

Nvidia driver packages after update (low FPS):

$ dnf check-update | grep nvidia  
akmod-nvidia.x86_64                                  3:525.60.11-1.fc37             rpmfusion-nonfree-updates  
nvidia-settings.x86_64                               3:525.60.11-1.fc37             rpmfusion-nonfree-updates  
xorg-x11-drv-nvidia.x86_64                           3:525.60.11-1.fc37             rpmfusion-nonfree-updates  
xorg-x11-drv-nvidia-cuda-libs.x86_64                 3:525.60.11-1.fc37             rpmfusion-nonfree-updates  
xorg-x11-drv-nvidia-kmodsrc.x86_64                   3:525.60.11-1.fc37             rpmfusion-nonfree-updates  
xorg-x11-drv-nvidia-libs.i686                        3:525.60.11-1.fc37             rpmfusion-nonfree-updates  
xorg-x11-drv-nvidia-libs.x86_64                      3:525.60.11-1.fc37             rpmfusion-nonfree-updates  
xorg-x11-drv-nvidia-power.x86_64                     3:525.60.11-1.fc37             rpmfusion-nonfree-updates

You do not have the xorg-x11-drv-nvidia-cuda package installed which will help in many cases. That package provides the ability to use the full features of the nvidia when gaming or doing other gpu-intensive computing.

You also did not say whether you may have followed the instructions here to enable the nvidia adapter to use both internal and external screens and possibly to become the primary gpu for usage.

Instructions there show

NVIDIA PrimaryGPU Support
Using PrimaryGPU allows to use the NVIDIA driver by default instead of the iGPU. This is also required in order to use external display when internally connected from the NVIDIA hardware. Unfortunately, setting this option automatically when an external display is connected is not supported by NVIDIA at this time. To recover this previous behaviour, you can use:

cp -p /usr/share/X11/xorg.conf.d/nvidia.conf /etc/X11/xorg.conf.d/nvidia.conf
And edit the file to use: Option "PrimaryGPU" "yes"

If you follow that instruction to copy the file and reboot it enables the nvidia gpu to use both screens flawlessly and eliminates the conflict of the GPUs. I suspect the GPUs are conflicting which gives the poor FPS results. Failure to use the hardware acceleration will also drastically impact FPS and cause other slowdowns since the CPU takes on the screen rendering tasks.
The last line tellng you to edit that file sets the nvidia GPU as primary and no longer relies on the iGPU for the laptop screen.

Note that this only works for X and not for wayland. I think others have mentioned how to enable (at least part of) these features for wayland but I do not have that reference.

One more critical piece that I do not see above.
Please run dnf list installed *nvidia* and verify that you have the nvidia-gpu-firmware package installed. If it is not installed then please install it since it is required for the nvidia gpu to function properly. This can be done with dnf reinstall linux-firmware or with dnf install nvidia-gpu-firmware

Another thing of concern is that you show only the 6.0.8 kernel and fedora 37 is now at the 6.0.15 kernel

Thank you for reply.

I had assumed that the cuda package was not useful for gaming so I had left that out. I shall keep that installed then. Unfortunately updating to 525 and installing the xorg-x11-drv-nvidia-cuda package did not help. Still low FPS after reboot.

I then checked the nvidia-gpu-firmware and indeed didn’t have it installed, odd. I did both reinstall linux-firmware and installed the missing nvidia-gpu-firmware package for good measure. Rebooted, but didn’t help. Still low FPS.

But, finally after switching to use the Nvidia GPU primarily as per your instructions. The issue did resolve. No more low FPS. It also provides even better FPS than before. :+1:

Unfortunately this may have negative impact on how long the laptop can run on battery, when not plugged in. But still at least that horrible FPS is gone now. Thanks!

Note on the kernel version, I do have 6.0.15 installed, please check the inxi output. Perhaps you saw 6.0.8 in the dnf list installed output instead?

Since I routinely am not doing things with my laptop when mobile the loss of time on the battery is not significant for me. YMMV depending upon the use case.

It does tend to reduce time available on battery but most are not doing anything GPU intensive without having power available. My laptop get 3 - 6 hours on battery when not using the nvidia and 2 - 4 hours when using the nvidia so it is still acceptable to me.

In fact, when using mine with demanding tasks with boinc and tasks using 25% CPU and 100% GPU I still get more than 1 1/2 hrs on the battery. Using nvidia-smi I see that the GPU is demanding 30w power at 100% usage. Nvidia Geforce GTX 1660 Ti Mobile on my Asus laptop.

For those coming here, there is an upstream bug tracking this problem:

https://github.com/NVIDIA/open-gpu-kernel-modules/issues/419

Last known driver to work is 520*.