Hello all,
After a lot of struggle, I finally had perfectly working Nvidia laptop, with performance equal or sometimes even better than Windows. Then the system update came, which replaced my 495 nvidia driver to the 510 version. And the performance dropped a lot. Now it is again as slow as before my struggles. (Nvidia produces now half of the FPS compared to Intel integrated GPU).
Fortunately I had Timeshift backup of my system from just before the update, so I rolled back, and to my surprise, this did not fix the problem!
How is this possible? Did the driver update process modify some GPU firmware?
I have done precise measurements before and after, and the difference is huge. All conditions were the same, even air temperature.
After booting to Windows, the Nvidia is working ok as always, so the hardware didn’t break.
Technical stuff (before update):
Host: Dell Latitude 5401
Kernel: Linux 5.15.16-1-MANJARO
CPU: Intel i5-9400H (8)
GPU1: Intel UHD Graphics 630
GPU2: NVIDIA GeForce MX150
I had properly installed optimus-manager, and all testing was done using Hybrid mode with following commands:
# Linux Benchmarks:
gamemoderun prime-run vkmark --present-mode immediate
gamemoderun prime-run glmark2 immediate
# Steam games and benchmarks:
gamemoderun prime-run mangohud --dlsym %command%
Are you sure you didn’t do something before taking your snapshot and updating the system? What you describe is very unlikely if you indeed brought you system back to where it was you should have same performance, beside the usual need for shaders to be recompile for your Steam games.
No
What about not using this external software? Manjaro Prime setup is working as is.
Yes, I rolled back the whole system (only without home and root directories).
So, if something was changed, it probably was in home, that Timeshift excluded from backup.
Did you try with another kernel ?
Before my success with the driver I have tested many versions of kernel and driver pairs. It was always properly loading the driver (glinfo, and vulkaninfo confirmed that), but the good performance was only on the following version: linux515-nvidia (in version 495.46-10), which did fit to kernel version 5.15.16-1-MANJARO. So I kept this configuration.
All other versions did not provide good performance.
Are you sure you didn’t do something before taking your snapshot and updating the system?
I am 99,9% sure.
What about not using this external software? Manjaro Prime setup is working as is.
Belive me, I have tested this, and a lot of other stuff, even on different Linux distros (PopOS, Ubuntu). It was strange for me, but it only worked with Manjaro + optimus-manager. This setup survived 2 months on Manjaro, and now it is broken.
Perhaps there is some error, which is random in its behavior, and it is just coincidence that it happened just now.
If you are using OM in ‘hybrid’ mode … there is absolutely no reason to be using it at all.
It creates issues … I cant force you to use certain software on your own system.
But … this is well documented and addressed over many other threads.
Not to mention that, besides its own hacky construction, it is also an AUR package … so both things require extra attention.
optimus-manager even has special steps in its github for manually augmenting the display manager so that OM will work.
And, as an AUR package … you are responsible for rebuilding it when needed.
Done, I have updated the system, removed the optimus-manager, and all nvidia related stuff, then followed the official Manjaro Wiki guide to install the driver.
…And no surprise there. The driver is loading and working, but the performance is terrible. It is twice as bad as the integrated Intel GPU.
Any ideas, what could be slowing it down? Where to look for the cause?
What stuff should I check?
Indeed it seems it is all in order, beside your BIOS which is not on latest version.
Try to see if the Nvidia card is not locked in a low power state with nvidia-smi I already have seen that in dual boot situation.
Give the output of nvidia-smi or prime-run nvidia-smi while your are trying to use the video card in a Steam game with prime-run %command%
The GPU performance state APIs are used to get and set various performance levels on a per-GPU basis. P-States are GPU active/executing performance capability and power consumption states.
P-States range from P0 to P15, with P0 being the highest performance/power state, and P15 being the lowest performance/power state. Each P-State maps to a performance level. Not all P-States are available on a given system. The definition of each P-States are currently as follows:
…but when the GPU is under heavy workload (rendering complex shaders where I get maximum of 10 FPS, for example some from: www.shadertoy.com) it’s clock does not reach the maximum speed. It just goes up to 433MHz never exceeding this value. But the Memory transfer rate is at it’s maximum:
It seems like it goes to the performance power state P0 when in use so not the issue I was thinking about (locked in P8 state all the time). But indeed if it never reaches near the max clock there may be some issues. No idea for now.