Few companies have been the target of as much criticism in the Linux community as Nvidia. Linus Torvalds himself last year called Nvidia the “single worst company” Linux developers have ever worked with, giving the company his middle finger in a public talk.
Nvidia is now trying to get on Linux developers’ good side. Yesterday, Nvidia’s Andy Ritger e-mailed developers of Nouveau, an open source driver for Nvidia cards that is built by reverse engineering Nvidia’s proprietary drivers. Ritger wrote that “NVIDIA is releasing public documentation on certain aspects of our GPUs, with the intent to address areas that impact the out-of-the-box usability of NVIDIA GPUs with Nouveau. We intend to provide more documentation over time, and guidance in additional areas as we are able.”
It wouldn’t surprise me if this is related to the SteamOS announcement.
This also might have helped them revise their policy about publishing some docs:
http://www.brightsideofnews.com/news/2012/6/21/china-nvidia-loses-f…
Whatever their reasons might be, overall I believe this is a great move and a big win for the open source community and the Linux desktop as the out of the box experience can only be improved from now on.
That was my immediate reaction as well. But thinking about it, it would take a while before the open source drivers were truly ready for gaming, even with Nvidia’s help. And given that at this point they are still just dangling carrots, it could be years before we see Nvidia-assisted open drivers competing with their closed source ones.
Honestly, and I’ll get hate for saying this, but I seriously doubt the FOSS drivers will EVER be as good.
Before anybody starts thinking I’m dissing the devs I would point out its been a few years since AMD handed the devs all the docs on a silver platter, even going so far as to hire some guys to jump in and help and the AMD drivers are STILL a good ways behind and really aren’t useful for gaming, at least last time I tried it a month or so ago on my AMD netbook and my HD4850 equipped desktop.
The rotting elephant in the room nobody talks about is how damned near everything in a modern GPU is cross licensed and proprietary, from S3 to HDCP its all owned by somebody and you have to sign an NDA to use the stuff. This is gonna be hell to work around considering how many advanced features are baked into today’s GPUs and unless/until the patent situation changes I have a feeling the FOSS devs are always gonna be a day late and a dollar short.
Finally as far as SteamOS? There is another rotting elephant nobody wants to talk about, in fact i haven’t found a single mention of this in any article i have been able to find about SteamOS and it is this…how in the world are they gonna have DRM in Linux? The GPL IS VIRAL, RMS himself has said so (see his article on why he wants those that write libraries to use GPL over LGPL) and from the get go the GPL was designed to be the anti-DRM yet there is no way in hell you are gonna get the big gaming houses to sign off on a DRM free console, no chance in hell.
So I really don’t see how in the world SteamOS is supposed to work, i really don’t. Hell I don’t even see how Valve can allow you to download the OS and install it yourself and still have DRM, even the relatively mild Steam DRM, as by design you can download your own kernel and modify it to “lie” to the software. So has anyone read anything about the DRM in SteamOS? How is it supposed to work and not run afoul of the GPL?
How did Google do it with Android?
I honestly don’t know anything about this topic, so I’m just curious.
Edited 2013-09-25 15:58 UTC
By spending over a billion dollars to make their own GPL V2 only fork? They also really didn’t need much more than the kernel, coming up with their own VM and userspace and the kernel is GPL V2, which has what is known as “the TiVo loophole” that will let you do proprietary on top of the kernel without running afoul.
This is pretty much the exact opposite of what valve is trying to do and I just don’t see how its gonna work without them getting sued for the next decade by the rights holders of the GPL V3 software they are using (a good chunk of the networking, audio, and video stacks are all GPL V3, which is why Google didn’t use them for Android).
Not to mention there is a VERY vocal minority of Linux devs and users that are so foaming at the mouth when it comes to their hatred of anything proprietary I really wouldn’t be surprised to see them update their software in a way that insures SteamOS can’t use it. I really wish i had thought to save it as i had an online discussion with one of the low level kernel guys and he actually said when i pointed out that drivers breaking in this day and age was nutty “I hope we break all non GPL drivers constantly!” and it was obvious from his side of the conversation that breaking non FOSS drivers actually made him happy, he would have rather had a broken OS than allow any proprietary anything into Linux.
So I really don’t see how this is supposed to work, i really don’t. Google spent something like 2 BILLION dollars creating their own fork for Android and ChromeOS, Valve just doesn’t seem like they are willing to sink that much into this, and GPL V3 is designed to make proprietary damned near impossible on the platform. Why they didn’t follow Sony’s example and use BSD where proprietary is allowed I’ll never know, but I’ll be shocked if SteamOS isn’t facing at least 2 lawsuits and has cracks released within an hour of it being RTMed to the public. Certain things just don’t mix, FOSS and DRM? Just don’t go together.
Thanks for the explanation. This just makes the entire project more interesting. I can’t wait to see how things play out. In some ways, watching how things unfold may be more interesting than playing the videogames themselves.
Well if you would like to learn more, type in “How Steam DRM works” along with “GPL V2 versus GPL V3” and “TiVo Loophole” into any search engine and that will give you a good overview of what we are talking about here and why its not as simply as merely porting steam to Linux.
But the “dirty little secret” nobody that advocates FOSS will talk to you about is how divided the community, especially the devs, have become. On the one side you have those that actually want Linux to be high quality and stand toe to toe against the best MSFT and Apple have to offer, and on the other hand you have the GPL purists, or “FOSSies” as I call them because like Moonies they treat the GPL like religious dogma, who would be perfectly content to have a broken OS that works on less than 5% of the hardware out there as long as it maintains “GPL Purity” and upholds the “spirit of the GPL”.
At the end of the day the FOSSie side will do everything in their power to sabotage Steam as they see it as an attack on GPL purity, and the fact that Torvalds refuses to let go of the driver model he came up with back in 93, which just FYI but NO other OS free or proprietary uses, means Valve is gonna have hell just keeping the thing functional. I wouldn’t be surprised if they don’t have to do like Dell did and have a huge dev team to maintain their own fork and disconnect from the main repos to keep things from breaking and while that is going on mark my words you’ll see plenty of critical projects come out with updates that break Steam and when this is pointed out you’ll get the standard “If they release the source this wouldn’t happen” extortion threat.
Simples, DRM is handled by the Steam client and doesn’t need to comply with the GPL as it’s written by Valve.
NVidia is just playing by the rules, in the Linux ecosystem open source drivers are prefered.
That doesn’t really explain anything though, because they’ve been happily ignoring the “rules” for over a decade. Something must have prompted this change of tune…
Agreed.
http://www.osnews.com/permalink?573165
I personally think the reason is the new capabilities of the AMD/ATI open source drivers in Linux kernel 3.11.
Read one user’s account here:
http://www.reddit.com/r/linux/comments/1n2iac/thoughts_on_the_lates…
So now that the 3.11 kernel is out and Catalyst has problems with xorg 1.14 (again…), I decided to give the latest radeon driver another go. (The one with the new DPM additions.) Holy cow am I impressed. This is the first time I feel like I’ve ever gotten complete parity out of a FOSS video driver.
Nvidia now have a lot of catching up to do, IMO, before anyone would consider using nVidia hardware for a new Linux system.
Edited 2013-09-25 06:14 UTC
Because now Linux is taking off big time, and they can’t miss the boat.
It isn’t just a preference, it is all but a requirement to have open source graphics drivers if Linux developers want to make significant enhancements to the Linux graphics stack, such as Wayland for example.
This is because the closed proprietary drivers from nVidia and AMD essentially replace the majority of the Linux graphics stack. Hence, in order to change the Linux graphics stack, Linux developers need OEMs to implement equivalent/sympathetic changes within their proprietary drivers. This puts the OEMs in a position to dictate the progress, or lack thereof, of the Linux graphics stack.
NVIDIA have ‘no plans to support Wayland’
http://www.omgubuntu.co.uk/2010/11/nvidia-have-no-plans-to-support-…
Unacceptable.
Edited 2013-09-25 06:08 UTC
That are good news for Wayland.
If the Noveau and the open source AMD driver gets Wayland support (and improved 3D thanks to this specs) there’s no reason not to switch to Wayland for most people.
Bad for Canonical since they’ll probably have to port Noveau to Mir on their own
Bad for Canonical since nVidia proprietary drivers are probably their only reason for writing Mir (and not using Wayland) in the first place.
http://arstechnica.com/information-technology/2013/09/intel-rejecti…
http://www.networkworld.com/news/2013/062013-canonical-mir-271072.h…
Best explanation!! Bravo
But you have to give nvidia a lot of credit for always at least supporting nix in a binary form. They Have always provided better binary drivers than ati. It used to be a pain to just install fglx.
they are probably the only video card manufacturer to have their drivers running in freebsd.
To be fair to them that statement WAS made 3 years ago when Wayland really wasn’t going to be big for a while. We (the people that knew about and supported wayland) knew this and to have a company for whom Linux support has traditionally been a lesser concern, because not many linux enthusiasts bought Nvidia, this wasn’t as unreasonable as some made it out to be. While we don’t have a current statement from them right now one can assume that they are working on one because most of the distro’s and environments are looking at changing within a year
To be fair, it wasn’t just the statement from nVidia that they wouldn’t support Wayland that was unacceptable.
This is what is unacceptable: Hence, in order to change the Linux graphics stack, Linux developers need OEMs to implement equivalent/sympathetic changes within their proprietary drivers. This puts the OEMs in a position to dictate the progress, or lack thereof, of the Linux graphics stack.
The example of Wayland is just one example. What is unacceptable to Linux developers is not being in control of Linux development, and having to rely on goodwill from OEMs to support whatever they wanted to support.
That was, and still is, what was, and remains, unacceptable.
After all, Linux kernel driver developers don’t want nVidia’s code, all they want are device programming specifications, such as these:
http://www.x.org/docs/AMD/
Given device programming specifications (which do not reveal any IP), Linux kernel developers can then write and maintain their own driver code. Where is the harm to nVidia?
Edited 2013-09-25 10:30 UTC
Why would anyone who buy the best cards on market and intend to play latest games care about some unofficial driver which cannot guarantee anything and provide less than 30% of performance and capabilities of the official one?
The whole Nouveau project is meaningless until nVIDIA releases their hardware spec completely and dump their binary driver, which is not going to happen.
do tell! You must be a developer who writes 3D drivers!
Do you see a gap between your predicate and your conclusion? If I bought NVIDIA card (which just couldn’t happen before this announcement), I would certainly avoid binary driver (which I have no reason to trust) and use Nouveau driver instead. So while Nouveau may be meaningless for you, it certainly isn’t for me.
Do you read Nouveau source code before installing it?
The open source drivers are still a joke for anyone doing serious 3D work on Linux.
Until they reach the same performance level and feature parity as the closed source ones, they are no use for me.
Interesting that such a misunderstanding of how the open-source trust model works could still exist in 2013. I don’t have to read every line of code I’m running in order to trust it. What I need to have is a reasonable confidence in that a 3rd party with no financial or loyalty ties to the original organization can and has read and checked at least a representative portion of it. It’s sort of really the watchdog model. You can try to hide exploitative gems in your code, but if anybody on the net is free to read it and you get as much exposure as the Nouveau project does, it’s extremely difficult to hide them both from your fellow project co-developers or from the public (e.g. the occasional curious guy poking around in your code due to hunting a bug they tripped over). Moreover, good open-source projects have a review process for contributions where several senior devs from independent organizations must sign off a change before it goes in – any process which improves development transparency and accountability helps trust. Keep in mind, we’re not talking about a “My Pet OSS Toy” project, we’re talking a large projects often with dozens of contributors and thousands of regular users or more (Nouveau, Linux, libc, X.org, etc.).
Beware who you trust,
http://c2.com/cgi/wiki?TheKenThompsonHack
Actually, Nouveau is a collaboration project by multiple volunteers, who review each others work. That means that it is extremely unlikely to successfully plant a Ken Thompson Bug into Nouveau without engaging most of the contributors into conspiracy. Quite unlikely for the project where collaborators don’t know each other in person.
Even then quite likely there are some lurkers on source changes mailing list, who provide additional (albeit ineffective) mean of review.
Indeed, open source software with wider audience is really hard to subvert.
Then package maintainer for your distribution may have a bad day or just be a dick. There’s maybe 2-3 people who are checking distro specific patches in testing repo and 2000 who are updating from it without much care. If the maintainer would like to insert malware to update repo, he has a good chance to succeed. No to mention Ubuntu PPA or other unofficial repos.
The original posting to the Nouveau mailing list asked the Nouveau devs for a prioritized list of documents they need, so the Nvidia team could work on getting those released. This is just the first release. There are more documents to come.
Because they don’t have integrated graphics or a low-end card, and they need to run Xorg.
Because the GUI installers run on Xorg, and people can’t get to the installer if the graphics break.
Because 30% is still better then vesafb.
Because depending on the distro, the driver may not be in the repos, and sometimes it breaks on package upgrades.
Because the CLI is prettier with KMS compatible drivers. This is kind of silly, but I like my console to take advantage of the monitor and graphics card, no matter how underwhelming the GPU may be.
I hope their next step towards Linux would be releasing EGL drivers for Wayland.
The actual status of Nouveau, is that they drivers are missing power management, SLI, and OpenCL support (FOR CURRENT GENERATION CARDS!). SLI is irrelevant for 90% of users. OpenCL is missed in a tiny percentage of games. Power management is the big one here. If NVIDIA’s documentation can get Nouveau upto spec on gpu clock speeds and memory timing speeds then the Nouveau drivers will rapidly catch up in performance. I actually bother to read the nouveau website and follow the updates from Phoronix.com on this. Michael Larabel did a really good job laying out the current state of the drivers including performance benchmarks.In two years time, the Nouveau drivers would have been giving NVIDIA a run for their money. By releasing documentation they are speeding up the inevitable. I expect we are going to see very rapid improvement on linux graphics within 6-12 months. OpenGL 4 support is going to be worked on by Intel, and that work flows into Nouveau and ATi drivers. I expect by end of year 2015 we will have at least performance parity with Windows across intel/nvidia, and possibly with ATi as well, if not outperforming windows.
Edited 2013-09-25 01:41 UTC
A better out of the box experience has been cited as one reason, and someone mentioned this would benefit Tegra as well since the drivers are similar. Nvidia has been very keen on making sure Tegra is well supported.
Intel has been putting a lot of pressure on Nvidia in the low end, and Intel’s FOSS driver program has made them the go to hardware provider. Intel’s IGPs are decent products, and if all you want to do is browse the web and run a compositor, they are just as good as Nvidia. For performance or lots of monitors, an addin card from Nvidia or AMD is still needed, but they aren’t the must have item they used to be.
Intel is encroaching on Tegra’s turf with the new Atoms, and Nvidia is fighting them in addition to Samsung and Qualcomm. Qualcomm has no desire to be open source friendly, and Samsung is all about the bill of materials so their commitment waivers when the price is right. Intel just wants to sell hardware to keep the fabs rollings. They have shown they will give away the kitchen sink to get marketshare, and they will have to in order to break into the mobile game.
Actually, I personally think that it is due to the release of Linux kernel 3.11, because this recently released Linux kernel (which includes open source drivers) for the first time supports dynamic power management and UVD hardware-accelerated video decoding for AMD/ATI GPUs.
http://www.phoronix.com/scan.php?page=article&item=amd_opensource_u…
http://www.phoronix.com/scan.php?page=article&item=amd_dpm_mix&num=…
http://www.phoronix.com/scan.php?page=article&item=amd_radeon_dpm&n…
Intel’s open source drivers for Linux have long supported all features, including hardware-accelerated video decoding, and now AMD/ATI open source drivers have essentially caught up with Intel.
Having open source drivers is essential if Linux kernel developers wish to introduce significant changes to the open source graphics stack, such as the Wayland compositor for example.
So from right now, since the release of Linux kernel 3.11, one would strongly recommend either AMD or Intel graphics for a Linux system rather than nVidia. If a purchaser wants to install Linux on a bunch of new machines, the best advice right now is to avoid nVidia hardware. Just ask Linus.
http://www.wired.com/wiredenterprise/2012/06/torvalds-nvidia-linux/
Unless there is a competitive open source Linux driver for nVidia graphics developed soon, nVidia will presumably start to loose all Linux business.
Edited 2013-09-25 05:50 UTC
This will only happen for those that don’t care about the latest OpenGL/OpenCL version support and performance level that the binary drivers currently have.
Which would be Linux servers, embedded Linux, the vast majority of desktop Linux users and of course Android users (the Android Linux kernel supports a subset known as OpenGL ES).
http://developer.android.com/guide/topics/graphics/opengl.html
I can’t think of any use for OpenCL under Android.
The Android Linux kernel would represent the majority usage of the Linux kernel by now.
As expected, you failed to list anyone that cares about 3D content production.
I didn’t list any set of people who would like to use OpenCL at all … I only listed people who run Linux who wouldn’t have a use for OpenCL. Which turns out to be most users of Linux.
Since I didn’t even try to list people who would like to use OpenCL, why exactly is my omission of “anyone that cares about 3D content production” supposed to be a problem?
I don’t in any way try to pretend that there aren’t some people who would use OpenCL, and therefore wouldn’t use the open source drivers in their current state.
My question to you is this … why exactly are you trying to pretend that the current lack of support for OpenCL in open source drivers is in any way an issue for most of the people who run Linux, when clearly it simply isn’t (for most).
Edited 2013-09-25 11:44 UTC
You are the one only picking on OpenCL, while cleverly leaving out that the open source drivers are still way behind in proper OpenGL support.
The Radeon and Intel open source drivers both currently support OpenGL 3.0, and are not far off supporting OpenGL 3.3.
Mesa 10.0 With OpenGL 3.3 Likely Coming In November
http://www.phoronix.com/scan.php?page=news_item&px=MTQ2OTU
“don’t expect OpenGL 4.0 support as still a lot of GL4 extensions are to be implemented in Mesa”
The major work still to be done for OpenGL 4.x support for the Linux graphics stack is, I believe, work to be done for Mesa, and not the specific GPU drivers per se.
The Current State Of OpenGL 3, OpenGL 4 In Mesa 9.2
http://www.phoronix.com/scan.php?page=news_item&px=MTQxMTE
In any event it is my understanding that there are currently very few Linux programs which require support of a later version of OpenGL than 3.3.
For readers who might actually be interested, here is a short report on the current state of OpenCL support:
Gallium3D OpenCL Is Starting To Show Progress
http://www.phoronix.com/scan.php?page=news_item&px=MTQ2OTQ
Edited 2013-09-26 11:01 UTC
While this is a good start, they need to do *much* more than release some documentation. They need to release all source code from their binary drivers that they are legally allowed to. They also need to pay programmers to work on the open-source drivers for their cards.
TL;DR: Docs are nice, code and money is nicer.
You guys make video cards, stand on your hardware!
Be a role model and have integrity to say we do the honorable thing and our product is superior to all.
I think some high-profile Linuxers, e.g. Torvalds, really should tone down their criticism of nVidia. They’ve not been perfect over the years, but how many other companies do you know that have actually bothered to provide official Linux drivers at all, let alone ones that were at least somewhat current? Be glad they bothered with you at all and, with that attitude, I wonder why they continued to give you any time. It makes sense to start now in either case because of Steam, but those kernel devs need to get some perspective.
While I do agree with you to a certain extent, it is not like companies like nVidia can afford to diss the Linux market anymore.
The UNIX graphic workstation of yesteryear used in big movie production companies were largely replaced by cheap x86 workstation using fine-tuned Linux distros and the GPU manufacturers kind of need the “street cred” that it brings with it.
Au contraire, nvidia needed to tone it down … they were like “we are not going to release programming specifications for our preciousssssss devices just so the developers of the world’s most-used OS can write drivers for their OS for our products … heaven forbid we might sell a significant few more of our products at no cost to us”.
Fortunately, with this announcement of some promises to provide the nouveau driver project with some programming information, it would appear as though nvidia management may have finally begun to see some common sense.
Edited 2013-09-26 01:24 UTC
I would welcome a nouveau driver will full vdpau support (including temporal-spatial deinterlacing). Not gonna hold my breath though.