Optimus-Manager Switching Works. Inadequate Nvidia Performance. dGPU Still on in Intel Mode.

Hello all,

Like the title says, Optimus manager switches which gpu, intel or nvidia, handles the rendering load. Unfortunately, powertop shows that the dGPU is still powered on in intel mode. Additionally, my dGPU performs a fair bit worse than when i used PRIME in a prior install. (i.e. CS:GO now sits ~100 fps instead of ~180 on lowest settings) The performance is more noticeable in other games using proton

So, here are some potentially informative commands:

optimus-manager --version
Optimus Manager (Client) version 1.2.2
mhwd -li
> Installed PCI configs:
                  NAME               VERSION          FREEDRIVER           TYPE
           video-linux            2018.05.04                true            PCI
    video-nvidia-430xx            2019.10.25               false            PCI
inxi -Fxz
System:    Host: nicolae-pc Kernel: 5.4.6-2-MANJARO x86_64 bits: 64 compiler: gcc v: 9.2.0 Desktop: Xfce 4.14.1 
           Distro: Manjaro Linux 
Machine:   Type: Laptop System: LENOVO product: 20378 v: Lenovo Y50-70 serial: <filter> 
           Mobo: LENOVO model: Lenovo Y50-70 v: 31900058WIN serial: <filter> UEFI: LENOVO v: 9ECN26WW(V1.09) date: 05/27/2014 
Battery:   ID-1: BAT1 charge: 32.7 Wh condition: 32.7/54.8 Wh (60%) model: LENOVO PABAS0241231 status: Full 
CPU:       Topology: Dual Core model: Intel Core i5-4200H bits: 64 type: MT MCP arch: Haswell rev: 3 L2 cache: 3072 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 22359 
           Speed: 798 MHz min/max: 800/3400 MHz Core speeds (MHz): 1: 798 2: 798 3: 798 4: 800 
Graphics:  Device-1: Intel 4th Gen Core Processor Integrated Graphics vendor: Lenovo driver: i915 v: kernel bus ID: 00:02.0 
           Device-2: NVIDIA GM107M [GeForce GTX 860M] vendor: Lenovo driver: nvidia v: 430.64 bus ID: 01:00.0 
           Display: x11 server: X.Org 1.20.6 driver: modesetting resolution: 1920x1080~60Hz 
           OpenGL: renderer: Mesa DRI Intel Haswell Mobile v: 4.5 Mesa 19.3.1 direct render: Yes 
Audio:     Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel 
           bus ID: 00:03.0 
           Device-2: Intel 8 Series/C220 Series High Definition Audio vendor: Lenovo driver: snd_hda_intel v: kernel 
           bus ID: 00:1b.0 
           Device-3: C-Media Blue Snowball type: USB driver: hid-generic,snd-usb-audio,usbhid bus ID: 1-1:6 
           Sound Server: ALSA v: k5.4.6-2-MANJARO 
Network:   Device-1: Intel Wireless 7260 driver: iwlwifi v: kernel port: 4000 bus ID: 08:00.0 
           IF: wlp8s0 state: up mac: <filter> 
           Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Lenovo driver: r8169 v: kernel port: 3000 
           bus ID: 09:00.0 
           IF: enp9s0 state: down mac: <filter> 
           IF-ID-1: docker0 state: down mac: <filter> 
           IF-ID-2: tun0 state: unknown speed: 10 Mbps duplex: full mac: N/A 
Drives:    Local Storage: total: 465.76 GiB used: 128.88 GiB (27.7%) 
           ID-1: /dev/sda vendor: Crucial model: CT500MX500SSD1 size: 465.76 GiB 
Partition: ID-1: / size: 457.16 GiB used: 128.88 GiB (28.2%) fs: ext4 dev: /dev/sda2 
Sensors:   System Temperatures: cpu: 56.0 C mobo: N/A 
           Fan Speeds (RPM): N/A 
Info:      Processes: 189 Uptime: 32m Memory: 7.69 GiB used: 1.75 GiB (22.7%) Init: systemd Compilers: gcc: 9.2.0 Shell: bash 
           v: 5.0.11 inxi: 3.0.37 

Have you tried optimus switch at all?

optimus-manager configuration file has an option to change what method is used for powering down the gpu, you can try changing it to somethings else.

if that inxi output is from nvidia mode then something is wrong, i think you might have it set to hybrid mode (render-offload) which requires launch parameters for processes to run on the nvidia gpu.

Yeah, I couldn't switch to intel mode, and kinda gave up after a couple days troubleshooting.

I'll look into that

It was Intel mode

then it's still not right because the nvidia driver was loaded, with the nvidia driver loaded the gpu can not be disabled.

i included configs for using the modesetting driver for intel mode instead of the xf86-video-intel drivers. if you wanted to try it again, after setting up optimus-switch you could just run these and it will use modesetting while on intel mode.

sudo mv /etc/switch/intel/intel-xorg.conf /etc/switch/intel/intel-xorg.conf.old
sudo mv /etc/switch/intel/modeset-xorg.conf  /etc/switch/intel/intel-xorg.conf

then run sudo set-intel.sh before you reboot to apply the changes.

Using the optimus-manager-qt, I set the optimus switching method from 'none' to Nouveau, and powertap shows the GPU is now off in intel mode. I'll try optimus switch again if I can't figure out what happened to my performance soon. Got any ideas I could go off, or any commands that might give more information?

Not sure how much you have loooked into the prime render offload? I looked up your graphics card on nvidia website, it recommends the 440.40 driver for nvidia. That gives you the option to use prime render offload on your set up. Here is a link to a xorg.conf.d configuration.

I don't have an intel/nvidia set up so I am unsure of any specific tweaks, but the linked page is full of information regarding prime render offload. From reading through that post, it would seem that the nvidia gpu is always going to be powered on even when not in use. That's because the only cards that have power features are nvidia turing cards and later when it comes to the prime render offload.

If you have 440xx drivers, you can use hybrid mode and launch games with parameters. My testes show it works great, although one time I had lowered performance. I tried it again and then it was on pair with nvidia mode, so some variations are possible.

Also note, then when using nvidia or intel mode, you can tweak the conf that optimus-manager creates by adding some additional parameters. So if the defaults don't work for you, change them.
Look into /etc/optimus-manager/ and xorg-intel.conf and xorg-nvidia.conf. You can put there some additional tweaks.
Optimus-manager loads configurations so if you had a good performance in PRIME, you should be able to achieve the same in optimus-manager.

Go to my guide and then go to the point 9:

I didn't know that, mhwd auto installed the bumblebee 430 for me, so i assumed i should get the 430 non-bumblebee driver, I'll hopefully remember to update this thread once I get around to changing from 430 to 440 and use prime render offload.

Thanks a lot for your help everyone!

the new 440.xx beta driver fixes the prime sync and prime sync/prime lockup loop issue. not sure when this will makes it way into manjaro

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by