nVidia Optimus
What is nVidia optimus? It is a genius new method of obtaining a great battery life on a laptop with a power house graphics card. Essentially all laptops that are "optimus enabled" have two graphics chips in them - one nVidia and one Intel based. If you are familiar with hardware then you will know that Intel chips, while having worse 3D performance than nVidia, offer much lower power consumption. Optimus allows the system to switch seamlessly between the Intel chip and the nVidia chip when you go from normal desktop usage to intense 3D -
Well it does on Windows anyways.
I've been working with Linux long enough to know that just because it works on Windows does not mean it is going to work on my operating system of choice as well. Unfortunitly this is currently the case with the nVidia optimus technology. To quote an nVidia representative from their user forums:
"We have no plans to support Optimus on Linux at this time."
Guess what? That statement was seven months ago now (February of 2010) and nVidia has been quite on the situation since then. This is really a shame, nVidia has had a dominant hand in the Linux market because of their superior drivers for sometime now. I am going to be hard-pressed to continue to support a company that refuses to support their hardware on my platform of choice. Intel graphics chips might soon be the only choice for mobile Linux users if nVidia does not add optimus support to their Linux drivers soon, as more and more laptops are utilizing this new technology.
Now as with most things the commercial giants fail to pickup in the world of Linux, there is an FOSS project dedicated to dissecting the hybrid graphics systems and get them working with the FOS Nouveau project. The only problem is that if you want a quality level of 3D performance these projects are still a ways off from providing this.
I must say I am slightly torn, do I snatch up a single GPU nVidia system now - before I can no longer find them, do I wait and see if nVidia releases optimus technology for Linux, or should I just boycott the nVidia cooperation all together since they see Linux as a second class operating system?
~Jeff Hoogland
We don't know if this is due to an architecture limitation of either the Linux kernel or Xorg (or both), or that NVidia simply doesn't want to spend the R&D dollars on it. We can't assume that every decision that is made that doesn't include Linux is because Linux is a "second class" operating system. Sometimes it is just a challenge thats return isn't worth the financial investment. (Note: Sucks that Blogger doesn't allow post edits)
ReplyDelete@FEWT if an FOSS project is making strides towards getting it working with the Nouveau drivers then odds are it is nVidia just being lazy IMO
ReplyDeletenVidia is a company, and not a person. There is a difference between a person being "lazy" and a company showing value to shareholders. If the FOSS project is making progress, then this is a non issue really. If Linux desktops had enough market penetration to justify the R&D costs, I'm sure NVidia would be happy to support it. I would guess their current investment in Linux development is pretty deep into the red.
ReplyDeleteI'm just looking at it realistically. We can want companies to give us stuff for free all we want, but there has to be some sort of benefit to both parties, and I don't really think that it is significant enough. It may also be something that they cannot simply provide due to some form of licensing on the technology. All I was trying to say is that it is not really black and white.
There's support for GPU switching in the Linux kernel. X.org is not ready for such thing and requires a restart, but the kernel supports it...
ReplyDeleteWhile the kernel recently gained support for this, Xorg still completely lacks any kind of support for this, so any switching will require an xorg restart (e.g log off/on and close all gui programs). So nvidia would either have to make major changes to xorg or re-implement and maintain the Intel drivers inside their closed drivers and add kernel tricks where required, alternatively they could just wait until xorg or wayland support this in a sane way.
ReplyDeleteAs for your choices for a new card (given no drivers will support this):
* Best driver at any cost = Nvidia
* Best open source driver = ATI (AMD are giving the radeon guys code whenever it passed legal review and generally supporting the radeon driver developers much more than nvidia help noaveau)
* Best open source company = Intel (if you ignore the fact their graphics cards suck and that series of cards that had closed driver, intel are by far the best company for FOSS (meego, kernel, powertop, etc))
I think my next video card will not have a nVidia GPU.
ReplyDeleteWhy not direct your anger at ALL hardware vendors for not making a standard software interface for this?
ReplyDeleteNvidia does support Linux with a lot of their hardware and in fact they have been among the best hardware supporters of Linux for a long time.
ReplyDeleteUnfortunately that doesn't mean that they will support every chip they ever make for Linux.
Sending them nasty emails or threatening them with a boycott isn't a very positive way to influence people.
Don't be so hung up on brand names, just go buy a laptop that is well supported on Linux, doesn't matter if that is AMD, Nvidia, or Intel.
Make sure that when you buy the laptop you fill out the registration and select Linux as your OS of choice so that the manufacturer knows who its customers are.
Anything other than that is just being a dick.
To all those who excuse nVidia on the grounds of development costs. They can cut their Linux R and D to almost zero simply by open sourcing the driver code. If open sourcing is a step to far, They can also reduce the cost dramatically by publishing the interface information.
ReplyDeleteThe R and D costs are not an excuse, that is acceptable. They can easily help themselves by helping the community.
Solution: use a machine with ATI graphics.
ReplyDeleteATI's closed fglrx driver for Linux has essentially caught up with Nvidia's closed driver for Linux, and since ATI provided programming specifications to open source developers, the open source drivers for ATI chips has improved by leaps and bounds.
ATI chips are easily the best choice for Linux systems now, and they have been for quite some time.
I'm not so sure nVidia, even if they wanted to, could implement this technology without implementing changes to the X server. nVidia is fairly good as a proprietary company to support Linux, but history has shown that their mindset is far from the open-source model, despite contributing quite well to make their own proprietary drivers work. I don't think this will change any time soon. As for now a buyer of nVidia simply has to accept its current state as a proprietary company.
ReplyDeleteSome is working on making it possible to swap drivers and gpu without restart of X, but I don't remember who and was probably in the beginning of this year I read about it. I think this could be more interesting than only having an locked in technology for switching between nVidia and Intel, because quite many run systems with AMD/ATi chips, which give good performance and low energy consumption. I don't know if I'm so happy about solutions that creates an unholy dependency on only two companies.
Device driver work is sooo not that hard compared to designing and overseeing the manufacturing of the hardware. The device driver is just the minimal software glue to make the hardware work with the rest of the system.
ReplyDeleteThey need a device driver to test their hardware so the cost is already there. It is just a matter of putting a few more people on it to polish it and make it work well on other platforms. They should be testing on all platforms when they design their hardware! They will find hardware bugs by running their hardware on Linux before they ship it.
It is a chicken and egg situation. Once people see that Linux is the future, they will invest in it more. It won't take much.
I would have to disagree on the better drivers from ATI. I always buy nvidia cards on my laptops as all my friends with ATI never get the drivers working and end up never having 3d desktop affects and all the other issues that come with that. No, turning off 3d effects and crippling my desktop is not an option. I don't use the pretty effects I use the productivity features that come with it. And why shouldn't my desktop look as smooth if not smoother than windows and mac? And ati does not have stable and implemented features like VDPAU so x264 video HAS to decoded on slow CPU's and frames are dropped due to this. ATI has notoriously been bad with drivers and nvdia hasn't. So this makes me very sad that optimus is not going to be supported soon. Sad for nvidia too as I will no longer buy their products and tell everyone I know not to buy it either. I am not boycotting them, purely going for the device which is most compatible with linux with most features. But I am sure eventually nvidia will figure something out, if the kernel and xorg supports it.
ReplyDeleteati's drivers have been getting better and better since amd bought them...
ReplyDeleteYeah right. And go with what ? ATI, integrated GPUs ?
ReplyDeleteI keep hearing these myths about ATI actually caring about linux, but so far with my linux rig that unfortunately has an ATI card, I am severely unimpressed. I'm not expecting development on the linux drivers to be as rapid as windows, but come on, it is as if there are only 2 people in the linux team and they expect the whole community to work for them.
You're not gonna be any better off by choosing another proprietary hardware vendor that also cares more about the bottom line. But cry anyway and pretend this is a new problem will you ?
There is no problem with x.org, because NVidia fails to implement even basic functionality. I would be perfectly fine with a driver that would only allow me to use the NVidia card in the Optimus environment, but even that is impossible now. If you buy the hardware with optimus you can only use the Intel graphics - there is NO WAY to switch to the NVidia card. It just sits there and eats power (because it can not be switched off either).
ReplyDeleteIt should be trivial for NVidia to just init the Intel card properly to dispay the NVidia framebuffer and then manage the NVidia card as usual, but they are too lazy even for that.
All I know is that I spent 1000 dollars on a notebook with a card I'll never use...
ReplyDeleteOh, nad ATI is not an option for me, because I work with CUDA technology in many of my applications. So, in two words:
I'am screwed.
Not only the Optimus cards are not usable under linux... even worst: they draw power (about 7,5 watt) and can't be disabled except by using an unsupported open tool (not suitable for all models without additional reverse engineering).
ReplyDeleteThat is: you pay for a nvidia Optimus card, you can't use it, and it heats your laptop spending battery power. Many (if not most) laptop BIOS don't allow to disable the Optimus card. Nvidia hasn't even provided a tool to reliably disable their card.
Many users only need integrated graphics, but we are forced to buy ati/nvidia laptops because they are the only ones with "decent" screens (high resolution). An example are Clevo computers: excellent high resolution MATTE screens only in nvidia Linux-incompatible models.
This is a disaster... thousands of laptop models, all essentially the same unconfigurable models, made for silly people playing games in poor small screens.
The reason nvidia is not supporting optimus and has no plans to is because of the X.Org window system. According to a news source I found, they commented on their stance. The way optimus works is that the nvidia GPU writes directly to the framebuffer of the intel GPU. basically its like using an intel driver for an nvidia graphics card. This feat is not possible on the current X window system without restructuring the entire x.org project into something new. The code for X.org has been the same since its development and nvidia cannot work with its severe limitations.
ReplyDeleteOn a brighter note, ubuntu has switched to the Wayland window system, which from what i understand still sits on top of x.org codebase but in a newer way. perhaps this will allow nvidia to support optimus in future updates once it catches on and comes out of alpha/beta
STILL NO SUPPORT FROM ANYONE :/
ReplyDeleteEven Natty Narvhal nightly built doesn't work as of now
Can this issue be tackled by having computer vendors provide updates to their BIOS so that we can switch to ONLY the nvidia card or is this hard-coded?
ReplyDeleteThis cannot be done by a BIOS update, If the hardware manufacturer (HP, Dell, etc...) did not implement the switch/multiplexer hardware then no software update will come out to make it possible to disable/switch between the nvidia GPU and the Intel GPU.
ReplyDeleteThis is because the output is done by the Intel GPU, everything is routed through it. Only the Intel has access to hardware, the NVidia just outputs to the Intel.
I'm very disappointed on NVIDIA's recent acts. I paid pretty much money to buy a new laptop with a high end GPU (2 Gb GT560). I didn't buy that laptop to play games on it. But rather to run simulations using CUDA for my phd thesis. My codes were tuned for linux and I simply don't want to use win for it. Simply now I feel like I've thrown 1300 bucks to the trash :(. I haven't seen for so long that a company has ever been that much unrespectful to its consumers. I will never buy any NVIDIA product again.
ReplyDeleteas seen on:
ReplyDeletehttp://www.nvnews.net/vbulletin/showthread.php?s=b57f4636bdc64b3074e822df8c72bff8&t=144750&page=14
there might be a solution:
http://www.martin-juhl.dk/2011/05/optimus-on-linux-problem-solved/
I have not tried it.