I have installed the proprietary driver nvidia-driver-470 from "Additional drivers" and I have been switching between PRIME profiles in the Nvidia Settings app.
When selecting the Nvidia (Performance Mode) I get much lower performance (fewer FPS on renderings) than on the integrated Intel GPU.
This is opposite to the same test done on Windows on the same machine (Nvidia works very fast there).
I have also tested other versions of nvidia-driver-xxx but the result was the same. I did not find any relevant error messages in system logs. I did search on the internet for a solution, but did not find anything that would help. I did multiple different tests, and the outcome is always, similar.
Is there a way to troubleshoot or fix this? (Maybe some diagnostics, or some log files I am not familiar with?)
My configuration:
- OS: Ubuntu 20.04.3 LTS x86_64
- Host: Dell Latitude 5401
- Kernel: 5.11.0-43-generic
- CPU: Intel i5-9400H (8) @ 2.500GHz
- GPU1: Intel UHD Graphics 630
- GPU2: NVIDIA GeForce MX150
Tests:
Windows
- Intel: 39FPS
- Nvidia: 60FPS
Ubuntu:
- Intel: 43FPS
- Intel: 28FPS
GLmark test on Ubuntu:
- Intel: glmark2 Score: 2796
- Nvidia: glmark2 Score: 2051
Result of the ubuntu-drivers devices
command:
WARNING:root:_pkg_get_support nvidia-driver-390: package has invalid Support Legacyheader, cannot determine support level
== /sys/devices/pci0000:00/0000:00:01.1/0000:02:00.0 ==
modalias : pci:v000010DEd00001D10sv00001028sd00000918bc03sc02i00
vendor : NVIDIA Corporation
model : GP108M [GeForce MX150]
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-418-server - distro non-free
driver : nvidia-driver-470 - distro non-free recommended ***THIS IS WHAT I HAVE INSTALLED***
driver : nvidia-driver-450-server - distro non-free
driver : nvidia-driver-495 - distro non-free
driver : nvidia-driver-390 - distro non-free
driver : nvidia-driver-460-server - distro non-free
driver : nvidia-driver-460 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
kern.log:
$ cat /var/log/kern.log | grep -i -e nvidia -e gpu -e screen
[ 1.833342] nvidia: loading out-of-tree module taints kernel.
[ 1.833353] nvidia: module license 'NVIDIA' taints kernel.
[ 1.845571] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[ 1.855139] input: ELAN900C:00 04F3:2856 Touchscreen as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-ELAN900C:00/0018:04F3:2856.0001/input/input6
[ 1.862141] nvidia-nvlink: Nvlink Core is being initialized, major device number 511
[ 1.862792] nvidia 0000:02:00.0: enabling device (0006 -> 0007)
[ 1.978819] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 470.86 Tue Oct 26 21:55:45 UTC 2021
[ 2.030289] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 470.86 Tue Oct 26 21:46:51 UTC 2021
[ 2.032155] [drm] [nvidia-drm] [GPU ID 0x00000200] Loading driver
[ 2.722302] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:02:00.0 on minor 1
[ 4.242816] nvidia_uvm: module uses symbols from proprietary module nvidia, inheriting taint.
[ 4.246455] nvidia-uvm: Loaded the UVM driver, major device number 509.
[ 4.508402] RAPL PMU: hw unit of domain pp1-gpu 2^-14 Joules
[ 5.471867] audit: type=1400 audit(1640905957.834:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=679 comm="apparmor_parser"
[ 5.471873] audit: type=1400 audit(1640905957.834:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=679 comm="apparmor_parser"
[ 4698.970516] vivaldi-bin[2541]: segfault at f9c ip 00007f9be3706fab sp 00007ffea7b46bc0 error 4 in libGLX_nvidia.so.470.86[7f9be36b9000+b2000]
[ 4699.770153] [drm] [nvidia-drm] [GPU ID 0x00000200] Unloading driver
[ 4699.806052] nvidia-uvm: Unloaded the UVM driver.
[ 4699.839170] nvidia-modeset: Unloading
[ 4699.872240] nvidia-nvlink: Unregistered the Nvlink Core, major device number 511
[ 1.578533] input: ELAN900C:00 04F3:2856 Touchscreen as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-ELAN900C:00/0018:04F3:2856.0001/input/input6
[ 4.109302] RAPL PMU: hw unit of domain pp1-gpu 2^-14 Joules
[ 5.065283] audit: type=1400 audit(1640946397.385:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=650 comm="apparmor_parser"
[ 5.065288] audit: type=1400 audit(1640946397.385:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=650 comm="apparmor_parser"
[19199.281423] nvidia: loading out-of-tree module taints kernel.
[19199.281440] nvidia: module license 'NVIDIA' taints kernel.
[19199.292593] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[19199.305083] nvidia-nvlink: Nvlink Core is being initialized, major device number 509
[19199.305564] nvidia 0000:02:00.0: enabling device (0006 -> 0007)
[19199.421753] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 470.86 Tue Oct 26 21:55:45 UTC 2021
[19199.443171] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 470.86 Tue Oct 26 21:46:51 UTC 2021
[19199.451880] [drm] [nvidia-drm] [GPU ID 0x00000200] Loading driver
[19200.145535] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:02:00.0 on minor 1
[19200.164298] nvidia_uvm: module uses symbols from proprietary module nvidia, inheriting taint.
[19200.166606] nvidia-uvm: Loaded the UVM driver, major device number 507.
When either Intel ("Power Saving") or "On Demand" PRIME profile is selected:
$ glxinfo | egrep "direct rendering|OpenGL renderer|vendor"
direct rendering: Yes
server glx vendor string: SGI
client glx vendor string: Mesa Project and SGI
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics 630 (CFL GT2)
When Nvidia ("Performance") PRIME profile is selected:
$ glxinfo | egrep "direct rendering|OpenGL renderer|vendor"
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce MX150/PCIe/SSE2