NVidia Optimus fail

(17 comments)

Guys, we have a problem. The name of that problem is NVidia and their Optimus technology. The idea of that tech is quite neat - take a laptop, put two video cards in it, use the powerful card when you need 3D power, use the weak card when you need to conserve battery. The problem is that any laptop with this technology is currently an expensive paperweight on Linux (or rather it was so until a couple weeks ago, see below). And NVidia has no plans for fixing that.

Let me explain the technicalities.

In all modern laptops (such as the new and sexy Dell XPS 15z and many, many others) NVidia Optimus is implemented as follows - there is an NVidia card and an Intel card, all display outputs are connected to the Intel card, when the user wants more 3D power, the NVidia card is powered on and it renders an image into a framebuffer in the video memory of the Intel card which is the responsible for actually outputing that framebuffer to a display.

Currently in Linux if you are using NVidia drivers the Intel card is left uninitialised, your session starts up fine on the NVidia card, it outputs the resulting picture onto the video memory of the Intel card, but ... the Intel card is not configured in any way and so it does not do anything further with this picture and the display stays black.

The alternative is to use Intel video card driver and then the NVidia card stays there in your laptop as dead weight. It does not even power down (out of the box) so you have all the power consumption and none of the functionality. There is some support from NVidia to using that card for CUDA computing purposes in such situation, but nothing else.

After years of neglect and statements from NVidia that Optimus support in Linux is impossible and thus not even planned, one individual stepped up and made it work. Yes, the solution is hacky, yes it is a hassle to set up and make it work, but this is the first glimmer of hope for actually working Optimus on Linux. Over the last couple years the share of laptops with Optimus has greatly increased - almost all laptops that have NVidia video cards have Optimus now. This Bumblebee project is currently our only real hope on making Linux work on these laptops.

This project needs our support in a multitude of ways:
1) help test the actual project on different hardware;
2) look at the code and help improve on it, both the core code and system integration, simplify it so that everyone can install and use this;
3) figure out how we can integrate that support into distributions, so that it becomes possible to have working Linux out-of-the-box on Optimus hardware;
4) pressure NVidia more to provide official Optimus support on Linux (at least in always-on-NVidia mode, without breaking Bumblebee along the way).

Martin has already showed the superiority of open source by implementing something that NVidia considered to be too hard to do, let's show the power of our community to push such solutions to production quality.

Currently unrated

Comments

Cyril Brulebois 6 years, 6 months ago

“Currently in Linux if you are using NVidia fglrx drivers […]” makes me think you're bluffing. :)

Link | Reply

aigarius 6 years, 6 months ago

Thanks for catching that brain fart. That's what I get for actually switching away from NVidia to ATi for my latest purchases, mostly because of this problem.

Link | Reply

Np237 6 years, 6 months ago

VirtualGL is a really horrible hack, so this is far from a complete and working solution.

Overall, I don’t think nvidia drivers have any future on Linux. They don’t integrate with any of the Xorg novelties from the last 5 years, and they still use a modified libGL which makes things such as Optimus impossible to support in a correct way.

If you want something that works, try doing it with Nouveau and Gallium3D.

Link | Reply

aigarius 6 years, 6 months ago

NVidia drivers might not have too much future left, but Nouveau and Gallium3D don't have much present yet. For the modern cards there is basically no 3D, need firmware blobs, no HDMI audio, no Optimus support either and it is multiple times slower than NVidia driver on any cards that were released after mid-2008.

It is a great effort, but not using 50-60% of the hardware potential is not a good thing.

VirtualGL is a horrid hack, but it works. It works in giving our users the ability to use their hardware to the vicinity of 90%. If we cann't provide an even better solution in the next few months, then we need to get this one as usable as possible for ordinary people until the perfect solution comes along.

Link | Reply

Corsac 6 years, 6 months ago

What about not buying laptops with optimus at all?

Link | Reply

Nils 6 years, 6 months ago

No you have a problem. Nvidia is the only company providing reliable graphics solutions for Linux. If you think you have a freetard driver which works just type in glxinfo or attach a second screen and see how things work out :D

Running Linux on a laptop is a bad idea anyways since most of the hardware stuff is not supported well. If you want a UNIX like environment on a laptop buy a Mac.

Link | Reply

aigarius 6 years, 6 months ago

Nils: to be fair Nouveau does have a better support for multiple screens than NVidia driver and also has pretty nice 2D acceleration as well as good 3D for older cards (pre-2008 roughly). I have been running Linux on laptops for ages and it works just fine for me (I never got used to suspending my laptops, so I don't miss that).

Corsac: the problem with 'not buying Optimus' is that nowadays almost every laptop with an NVidia card comes with Optimus. Many don't even say that on the box or in the spec anymore, so the first hint that you got an Optimus is that your Linux boots to a black screen after you install NVidia drivers. The only safe way is to only buy laptops with ATi video cards for now. And those are a rarity for some reason.

Link | Reply

Robert 6 years, 6 months ago

"The idea of that tech is quite neat – take a laptop, put two video cards in it, use the powerful card when you need 3D power, use the weak card when you need to conserve battery."

This is not a neat idea. The neat idea would be to have a GPU that is able to switch into a low power mode when not many demands are being made on it.

This weird situation only exists because nvidia have failed to produce a GPU that can scale down its power needs sufficiently. Duplicating a whole load of silicon and creating a nightmare in implementing the switching mechanism is not good engineering.

Link | Reply

Np237 6 years, 6 months ago

Aigarius: AMD cards are more powerful but also consume more power than nVidia ones, that’s why you find less of them in laptops.

Note that HP is preparing to ship high-end laptops with the new generation of Quadro mobile cards, with a very nice power/performance ratio. And that’s without Optimus.

Nils: so what you mean is, choose wisely your hardware if you want to run Unix on it. I choose wisely my hardware, and I have laptops that run perfectly fine with Linux. And that’s not a stripped down, closed version of Unix, that’s just Linux.

Link | Reply

aigarius 6 years, 6 months ago

Np237: In desktops I have found the opposite - AMD cards on the same price and performance level use less power and produce less heat than NVidia cards. That's why it is easier to find passively cooled mid-range Radeons than GeForces. To find the situation inverted in laptops is strange, in fact some checking of chips on http://www.notebookcheck.net/ tells me that at the same performance level AMD/ATi cards use 10-15% less power.

Link | Reply

Np237 6 years, 6 months ago

Aigarius: interesting. I mostly know about professional graphics, where ATI FirePro boards are extremely power-hungry, while nVidia Quadro are more reasonable (but slower too). The situation may be different for gaming hardware.

Link | Reply

Jacob 6 years, 6 months ago

What about VGA Switcheroo?

Report your problems at https://bugs.launchpad.net/lpbugreporter/+bug/752542

Check also:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=6a9ee8af344e3bd7dbd61e67037096cdf7f83289

http://linux-hybrid-graphics.blogspot.com/

http://asusm51ta-with-linux.blogspot.com/

Link | Reply

aigarius 6 years, 6 months ago

That is a different thing - in the switcheroo case the powerful video card can be actually connected to the display output (either with a physical switch or a BIOS option or with a special method call). That is a bit easier to support - you just need to figure out what level to pull and after that you can just use the usual driver like if you had just one video card.

Link | Reply

Ben 6 years, 6 months ago

Some commentary about this on the nouveau wiki:

http://nouveau.freedesktop.org/wiki/Optimus

Link | Reply

Chris 6 years, 6 months ago

Wow, man. This is a really interesting situation.

Re: Nouveau supporing pre-2008 devices in 3D: I haven't been able to get that to work, or at the very least it isn't officially supported by the Nouveau developers. I tried the Nouveau drivers on the Lenovo T61p I have which has a G84 chip in it (that died and had to be replaced right before DebConf10). glxgears runs, but basically nothing else will. [Or if it does, performance is worse than "slideshow".] So if your goal is actual 3D support, Nouveau isn't there yet AFAICT.

And on the other hand, the proprietary nVidia drivers are non-free, and the kernel module is "stupid huge" as it is currently > 10 MB and growing. Periodically the driver is forked for older versions, too (nvidia-kernel-legacy-xxxx), and updates to these drivers lag Xorg changes, making using this solution messy both in the free software aspect as well as the long-term support aspect.

Simply saying "don't buy Optimus" is overly simplistic and won't help people who didn't know about the Linux problem and have them. And being forced into using AMD/ATi isn't nice, either. The "wontfix" tag being put on this would be lame.

However at the same time, I'm not even sure what to suggest, because this situation is insane. The nVidia -> Intel thing is an abortion that should never have happened.

Link | Reply

VelvetElvis 6 years, 5 months ago

I got a new ThinkPad W510 this past winter and it's happily running Ubuntu with binary Nvidia drivers. I'd never heard of Optimus before this but apparently it doesn't have it.

It would be useful for someone to create a wiki entry somewhere detailing what laptops have it and what don't if it hasn't already been done.

Link | Reply

Joe_Linux 6 years, 1 month ago

Thanks for NOTHING NVIDIA !!!

Take your "Optimess" and shove it.
Well, I guess it's up to AMD/ATI now, as far as the way I want to run Linux on my future Laptop.
But I'm not holding my breath on AMD/ATI ever fixing their almost useless Linux drivers... ? -LoL
We Need OpenHardware now ! :)

Link | Reply

New Comment

required

required (not published)

optional

Recent Posts

Archive

2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005

Categories

Authors

Feeds

RSS / Atom