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."

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.

It wouldn't surprise me if this is related to the SteamOS announcement.

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?

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.

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.

NVidia is just playing by the rules, in the Linux ecosystem open source drivers are prefered.

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.

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 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:

It wouldn't surprise me if this is related to the SteamOS announcement.

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.

Why would anyone who buy the best cards on market and intend to play latest games [...]

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 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.

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.).

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.

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).

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.

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.

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.

It wouldn't surprise me if this is related to the SteamOS announcement.

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.

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.

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).

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.

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.

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.

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.

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.