Leap 42.3 Optimus laptop - nvidia-prime - bumblebee

Hello.
I used to use the proprietary nvidia driver on my previous laptop (asus G75VW).
I bought a nice second hand optimus laptop ( asus g750VZ ).
After reading a lot on the subject, what is the recommended way to use the nvidia driver on an optimus laptop ( asus g750VZ ).
The current OS is leap 42.3
Kernel is 4.4.92-31-default
The graphic card is GK104M [GeForce GTX 880M]

I plan to follow : https://forums.opensuse.org/showthread.php/523839-How-to-install-Nvidia-GPU-driver-in-Optimum-laptop

Any help is welcome

I’m interested, because I have a similar laptop (also bought second hand :-). I have problems (minor) on video setup (see elsewhere on this forum) but bumblebee seems to run with Nouveau, the free driver.

I’m not sure if you can find help here for proprietary software (?).

optirun --status
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is off.

optirun glxgears -info
GL_RENDERER   = Gallium 0.4 on llvmpipe (LLVM 3.8, 256 bits)
GL_VERSION    = 3.0 Mesa 17.0.5
GL_VENDOR     = VMware, Inc.

but it’s pretty hard to know if bumblebee runs and with what result, due to limitation in nouveau

optirun vblank_mode=0 glxspheres
/usr/bin/vglrun: ligne 257 : exec: vblank_mode=0 : non trouvé (not found)

I plan to test also the proprietary driver in a near future (G04)

jdd

Hi, ASUS might have used non-standard “tricks” to maximize performance in their “G” series, so your mileage might vary.
AFAIK my recommendations from that previous post still hold true, but I haven’t tested it myself on Leap 42.3 yet.
Also be aware that recent Nvidia drivers use GLVND Multiple GLX client libraries in the NVIDIA Linux driver installer package - Announcements and News - NVIDIA Developer Forums so ensure that any guide you rely on has updated information.
Should you find problems relating to the drivers feel free to ask, better if in the Hardware subforum where most experts hang around.

The correct command is:

vblank_mode=0 optirun glxspheres

I will read the link.

Thank you

Reading once more : https://en.opensuse.org/SDB:NVIDIA_Bumblebee
And the particular point : OPTIONAL: Install NVIDIA driver
As my mother language is not English, I would like to know if I understood well that in case I plan to install the Nvidia proprietary driver I just follow the procedure with nouveau from the beginning, then continue the procedure under the optional option “OPTIONAL: Install NVIDIA driver

I don’t think so, but may be the result is the same (I don’t have the proprietary driver installed right now), for sure my code line works with this proprietary driver (extraordinary fast).

But I don’t use the video acceleration (not now, at least), I use mostly optirun with ffpmeg to conversion.

I didn’t find real way to evaluate the speed gain

and yes, I guess the proprietary driver have to be installed in addition to nouveau (I don’t know if nouveau can be removed), it’s the “driver=” somewhere that make the change.

Warning: using nvidia-xconfig creates on my ASUS N550JK an xorg.conf file that prevent booting.

jdd

This page is very interesting :slight_smile:

https://github.com/Bumblebee-Project/Bumblebee/wiki/FAQ

Yes, that is correct. Please note that Nouveau is not “uninstalled” but “blacklisted” to give a chance to the proprietary driver:

Blacklist nouveau (even if you plan to use nouveau driver):

echo "blacklist nouveau" | sudo tee -a /etc/modprobe.d/99-local.conf
sudo mkinitrd

Also please note that bumblebee with Nouveau didn’t work on an Asus of mine on Leap 42.2 so I had to install the proprietary driver, but your mileage might vary.

No, it doesn’t work: “optirun” requires an executable, not a parameter.

Noted

So I install nvidia driver the hard way, then I follow the SDB “SDB:NVIDIA Bumblebee” from the begin to the end as if nouveau was running.
Of course it is not necessary to blacklist nouveau as it is already done when installing nvidia the hard way.

So it is not necessary to install bumblebee when nouveau is running and not blacklisted ?
Is it correct ?

Well, there is DRI PRIME which does more or less the same.
https://wiki.archlinux.org/index.php/PRIME

If I understand well, bumblebee is necessary to use the nvidia card

jdd

I was speaking about the sequence order as describe in “SDB:NVIDIA Bumblebee - openSUSE Wiki
when you encounter problem as OrsoBruno said

Also please note that bumblebee with Nouveau didn’t work on an Asus of mine on Leap 42.2 so I had to install the proprietary driver, but your mileage might vary.

So my question is :
Due to some problem (like with asus GXXX model), If you cannot follow the sequence order as describe in “SDB:NVIDIA Bumblebee - openSUSE Wiki”, you rollback to start point, install nvidia driver the hard way, and restart from beginning but with nvidia driver installed ???

No, installing the Nvidia driver “the hard way” on Optimus laptops is going to bring you A LOT of trouble: do not do that unless you are very sure about what you are doing.
Let’s not mix things up: you have two *different *routes.

As installed (no bumblebee, no Nvidia) the system might be able to use DRI PRIME, as arvidjaar suggested.
AFAIK the kernel and Xserver in Leap 42.3 are too old to allow that, so you may try Tumbleweed (easier option) or install manually a newer kernel (at least 4.8.x) and a newer xorg-x11-server (at least 1.19.x) on Leap.
Please see this thread https://forums.opensuse.org/showthread.php/522499-How-do-I-install-(nvidia-suse)-Prime-using-the-Nouveau-driver-on-my-Asus-Optimus-laptop?p=2810421#post2810421 for a few tests we did on ASUS gear a while ago.

The other route is Bumblebee, the easiest way to deal with Optimus laptops AFAIK.
Follow the guide to the letter, any deviation is likely to bring you trouble.
Maybe it works with Nouveau; if not, install the Nvidia driver as described in the guide.
Anyway, the Nvidia driver must be installed *after *Bumblebee (you have even to uninstall the Nvidia driver if there is any before installing Bumblebee) and Nouveau must be blacklisted for Bumblebee to work (whether this is done automagically by the bumblebee or Nvidia install or should be done manually I’m not sure at this point; but adding that manually does no harm anyway).
Hope this helps.

No.

$ xrandr --listproviders 
Providers: number : 2
Provider 0: id: 0x68 cap: 0x9, Source Output, Sink Offload crtcs: 4 outputs: 5 associated providers: 1 name:Intel
Provider 1: id: 0x3f cap: 0x4, Source Offload crtcs: 0 outputs: 0 associated providers: 1 name:modesetting

And I could also spare separate driver for Intel iGPU if I did not have artefacts when DRI3 is enabled and to my best knowledge there is no easy way to disable DRI3 with modesetting driver.

With all respect - **if **DRI PRIME works, this is the most easy way because you do not need to do anything at all - it just works :slight_smile:

Of course someone may actually want or need nVidia binary driver (performance, power management, extra features, limited hardware support by nouveau …) in which case it is either bumblebee or nvidia-prime.

Personally I never had any need to use dGPU on my Optimus notebook so I finally settled for nouveau simply to avoid extra out of tree driver (bbswitch) - dGPU is powered down automatically in this case when not used.

Agree, but that was a big IF with Leap 42.2 at least. Maybe the drm backports from 4.9.x to 4.4.x in Leap 42.3 changed things though (not tried yet myself).

I am starting to day this way; hope for the best.

No install problem.

Can somebody tell how to test if the nvidia driver is running when necessary.

glxspheres seems to run faster without optimus command ???

user_install@linux-u6go:~> /usr/bin/glxspheres
Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
Visual ID of window: 0xb5
Context is Direct
OpenGL Renderer: Mesa DRI Intel(R) Haswell Mobile
60.876116 frames/sec - 67.937745 Mpixels/sec
60.004030 frames/sec - 66.964497 Mpixels/sec
60.036099 frames/sec - 67.000287 Mpixels/sec
60.043458 frames/sec - 67.008499 Mpixels/sec
60.037584 frames/sec - 67.001944 Mpixels/sec
60.038990 frames/sec - 67.003513 Mpixels/sec
60.036831 frames/sec - 67.001103 Mpixels/sec
60.037264 frames/sec - 67.001587 Mpixels/sec
60.033997 frames/sec - 66.997941 Mpixels/sec
60.039743 frames/sec - 67.004353 Mpixels/sec
60.040247 frames/sec - 67.004916 Mpixels/sec
60.030092 frames/sec - 66.993582 Mpixels/sec
60.042918 frames/sec - 67.007897 Mpixels/sec

user_install@linux-u6go:~> optirun /usr/bin/glxspheres
Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
Visual ID of window: 0x21
Context is Direct
OpenGL Renderer: Gallium 0.4 on llvmpipe (LLVM 3.8, 256 bits)
34.361401 frames/sec - 38.347324 Mpixels/sec
34.289004 frames/sec - 38.266528 Mpixels/sec
34.185107 frames/sec - 38.150579 Mpixels/sec
34.302704 frames/sec - 38.281818 Mpixels/sec
34.137625 frames/sec - 38.097590 Mpixels/sec
32.868122 frames/sec - 36.680824 Mpixels/sec
32.554553 frames/sec - 36.330882 Mpixels/sec
32.386001 frames/sec - 36.142777 Mpixels/sec
31.195373 frames/sec - 34.814036 Mpixels/sec
28.477028 frames/sec - 31.780363 Mpixels/sec
27.789076 frames/sec - 31.012609 Mpixels/sec

user_install@linux-u6go:~> sudo optirun --status
[sudo] password for root:
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is off.

user_install@linux-u6go:~> /sbin/lspci -nnk | grep '\[03' -A2
00:02.0 VGA compatible controller [0300]: Intel Corporation Crystal Well Integrated Graphics Controller [8086:0d26] (rev 08)
        Subsystem: ASUSTeK Computer Inc. Device [1043:157d]
        Kernel driver in use: i915
--
01:00.0 3D controller [0302]: NVIDIA Corporation GK104M [GeForce GTX 880M] [10de:1198] (rev ff)
        Kernel modules: nouveau, nvidia_drm, nvidia
03:00.0 Network controller [0280]: Qualcomm Atheros AR9462 Wireless Network Adapter [168c:0034] (rev 01)

If you need anythings else, please ask.