
Nvidia seeks peace with Linux, pledges help on open source driver - bitops
http://arstechnica.com/information-technology/2013/09/nvidia-seeks-peace-with-linux-pledges-help-on-open-source-driver/
======
cobrausn
Here is the full text of the email, also sent to the Mesa3D development
community.

\---------- Forwarded message ---------- From: Andy Ritger
<aritger@nvidia.com> Date: Mon, Sep 23, 2013 at 11:44 PM Subject: [Nouveau]
offer to help, DCB To: nouveau@lists.freedesktop.org

Hi Nouveau developers,

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.

As a first step towards that, we've posted a document here:

    
    
        ftp://download.nvidia.com/open-gpu-doc/DCB/1/DCB-4.0-Specification.html
    

that documents the Device Control Block ("DCB") layout in the VBIOS. The DCB
describes board topology and the board's display connectors.

I suspect much of the information in that document is not news for the Nouveau
community, but hopefully it will be helpful to confirm your understanding or
flesh out the implementation of a few unhandled cases.

A few of us who work on NVIDIA's proprietary Linux GPU driver will pay
attention to nouveau@lists.freedesktop.org and try to chime in when we can.

If there are specific areas of documentation that would most help you, that
feedback would help NVIDIA prioritize our documentation efforts.

If you have specific questions for NVIDIA, you can ask here, or direct them
to: open-gpu-doc@nvidia.com. I can't promise we'll be able to answer
everything, but we'll provide best-effort in areas where we are able.

Thanks, \- Andy Ritger

------
icambron
One thing I guess I don't understand is why Nvidia's own drivers are closed
source to begin with. What do they gain by it? Is it that open source drivers
would make their hardware easier to reverse engineer? Is it that the drivers
themselves are an important piece of IP, and competitors would learn all these
cool tricks they use in their drivers? Neither of those fit my model of the
role and value of drivers. It seems like they'd just want to maximize the
usefulness of the hardware they sell. But I'm obviously missing something.

Edit: Thanks for the responses. That's quite a variety answers.

~~~
dman
Couple of guesses

a) If the drivers were open patent trolls and competitors would sue.

b) I have heard stories about some graphics vendors who have a lot of
duplicated code in their drivers for supporting different generations of
cards. Instead of building abstractions that achieve generality theyve
succumbed to the copy paste rabbit hole.

c) If we all saw the mess that lives in the drivers none of us would be okay
with it running it as a kernel module.

d) There are questionable optimizations that vendors would be caught on.

~~~
qznc
e) legal department requires too many changes/check (no swear comments, proper
licence headers, ...) so it is too much work

f) convoluted build process which is impossible to recreate outside NVidia

g) some code is licenced from somebody else

h) obvious NSA backdoor built in

~~~
zanny
Linux doesn't seem to have problems with swearing in the source. I don't know
why Nvidia would, either - the words exist for a reason and people use them to
fill a conversational need, if you don't like certain syllables in succession
grow up.

~~~
TheSwordsman
Because not every project is headed by Linus Torvalds. That man has almost no
filter (which in my opinion is a good thing).

However, that same type of stuff may not reflect other organizations and
members of those organizations in a good light. So there are definitely
concerns there.

I'm a developer, and my company's closed source code definitely has its share
of profanity and "WTF"s. But that would not fly for things we make available
on GitHub, just due to concerns of our image. Most developers wouldn't give
two shits about the comment...

~~~
brubaker
Do you honestly believe that there would be any damage to your company's image
that would last more than 5 seconds to a small minority of people that would
even see an article regrading "improper language"?

Unless your fellow developers are posting extremely obscene racial slurs and
threatening rape on the interns. In which case your company has bigger issues
to worry about.

------
kunai
Linus' response:

    
    
      We'll see. I'm cautiously optimistic that this is a real
      shift in how Nvidia perceives Linux. The actual docs 
      released so far are fairly limited, and in themselves they 
      wouldn't be a big thing, but if Nvidia really does follow 
      up and start opening up more, that would certainly be great.

~~~
cobrausn
Why not include the rest? Or at least, the rest of what was mentioned in the
article.

 _They 've already been much better in the ARM SoC space than they were on the
more traditional GPU side, and I really hope that some day I can just
apologize for ever giving them the finger._

~~~
sz4kerto
BTW, that difference comes from the different amount of proprietary IP in the
respective fields.

~~~
ajross
There really is comparatively little "proprietary IP" on the kernel side of a
GPU driver. In almost all cases, the kernel is responsible for doing things
like setting modes, managing memory allocation/mapping between the GPU and CPU
domains, and transmitting command buffers from userspace to the hardware.
Where there is proprietary stuff, it's generally related to stuff like DRM
(HDCP) or video playback which aren't covered by the kernel DRM framework
anyway and wouldn't prevent an free interoperable driver.

~~~
rys
There is a lot of proprietary IP in a modern GPU driver:
[https://news.ycombinator.com/item?id=6176498](https://news.ycombinator.com/item?id=6176498)

~~~
ajross
Shrug; you're talking about reverse engineering hardware implementation from
the details of the transferred data. Source access is hardly required for
that, and the Nouveau driver we're talking about is an existence proof. And in
any case all modern GPU manufacturers except NVIDIA ship GPL kernel modules
and aren't leaking "proprietary IP" to each other. This isn't an issue of
secret sauce in the kernel, sorry. NVIDIA just don't want to spend the effort
to conform to someone else's architecture.

~~~
swetland
Even NVIDIA takes this approach on their mobile integrated GPUs on Tegra
(GPL'd kernel driver).

I wish they'd do so on the desktop too. Having the kernel driver (which really
does not need to be all that much code) be open source makes it massively
easier to upgrade the kernel around the GPU driver.

------
castis
As someone who wasn't aware of the issue with Optimus nVidia cards before I
purchased my laptop, this is fantastic news. I get support thanks to the
wonderful work of the bumblebee team but it's never really felt "solid" to me.
However, this is most likely because of my inexperience with the subject.

I feel as though I represent a fairly decent number of people when I thank
Valve for the steps being taken to make Linux better as I use it as my primary
OS.

~~~
potkor
There's supposed to be native Optimus support in the latest drivers. Ubuntu is
aiming to support it for 13.10 (and backport to LTS), see
[https://wiki.ubuntu.com/X/HybridGraphics](https://wiki.ubuntu.com/X/HybridGraphics)

Let's hope it works out. There are still some showstopper bugs like suspend
not working and touchpad locking up.

Bumblebee was always a stopgap and a kludge - and a lot of credit is due for
the enterprising bumblebee hackers.

~~~
virtualwhys
I've yet to hear whether or not the new Optimus drivers reduce heat generation
for multi-monitor setups (which are fixed to max power mode in Linux when more
than 1 monitor is in use, resulting in more fan noise).

Would hope so, but never get much a reply from Nvidia's Linux board:
[https://devtalk.nvidia.com/default/board/98/](https://devtalk.nvidia.com/default/board/98/)

As it stands was forced to modify the VBIOS in order to undervolt the card and
finally get the GPU fan in laptop to shut up. Silence is golden.

------
redthrowaway
As far as the timing of this move and the announcement of SteamOS is
concerned, I'm having difficulty seeing the reasoning behind it. Wouldn't
Nvidia just continue work on their proprietary Linux drivers, and wouldn't
most gamers (who are unlikely to care about FOSS) simply use them? I imagine
OEMs would include the best drivers available for the devices the choose to
use, which at this point means proprietary.

~~~
ajross
Surely SteamOS will be using a proprietary driver build. There are reasons to
desire DRM/KMS-based drivers, and Valve might have been pushing this to
NVIDIA, but surely "open sourceness" isn't going to be a feature driver for
SteamOS.

And in any case the NVIDIA proprietary userspace driver stack doesn't work
with the Nouveau kernel driver anyway. Maybe this means there is hope that it
will someday.

~~~
Already__Taken
I can imagine that with valve engineers being used to their pretty open source
engine development practices. Starting to talk more with Nvidia hardware
people they might be asking for a lot more improvements that nvidia could be
starting to realise they might benefit from offloading to the open source
world.

When Microsoft or sony come knocking to have this conversation they might be
more prepared to put a specialist hardware team between the system developers
and hardware makers coupled with a very strict QA process.

~~~
shawn-furyan
This is pretty close to my interpretation. Basically I think that Valve has
forced the hands of the graphics card makers to elevate the Linux platform to
first class citizen status. Due to the poor integration of the Nvidia
proprietary drivers with the Linux kernel, it seems like they have two options
to get their drivers into a better state:

1\. Hire a lot of kernel hackers

2\. Try to get the open source driver maintainers to improve integration in a
way that is closer to the actual hardware (without giving everything away),
and then somehow tie their proprietary driver into that integration code.

The letter certainly doesn't express interest in improving the capabilities of
the nouveau drivers to a point that they can compete with the proprietary
drivers in terms of 3d performance, and I think that it would be prudent of
the open source driver maintainers to be skeptical of Nvidia's motives given
the timing and limited nature of the release.

~~~
lallysingh
I agree completely. I'd add:

3\. Improve the relationship between NVIDIA and the open-source community.

If AMD was both much better on Linux (due to #2/#3), and they were "good
enough" for a substantial portion of users who're now using SteamOS, that's a
lot of lost revenue for NVIDIA.

~~~
zanny
Too bad as the target audience of Steam on Linux (mainly, a hacker who also
plays games, and doesn't buy Windows licenses) I can't go with either
companies products.

Nvidia is direly amoral in their completely asinine hatred of FOSS and their
inability to contribute. I won't support a business with that mentality. They
either grow up and play ball in mesa or I don't give them a cent.

But AMD has terrible performance and instability in both drivers, and they
still have proprietary firmware. It is like trying to have ones cake and eat
it too - "hey look, we have foss drivers, except not!" is not good enough. The
whole point of foss drivers is not hiding anything from users, and having
binary firmware blobs making their devices impossible to reimplement without
reverse engineering defeats the purpose.

Then there is Intel, who just makes a foss driver as their only option and
does it right. So my next build is using 4600 HD graphics and I'll just play
minecraft and quake live rather than whatever shiny new shooter Valve brings
to Linux.

~~~
sliverstorm
Of course, Intel has it somewhat easier, considering their GPU+driver combo
only needs to play minecraft and quake live.

------
gcb0
This happens every two years.

Nvidia: we will help the open source community!

> delivers binary blob

nvidia: we will help the open source community with a better integrated driver

> delivers deb and rpm that inject binary blob in kernel

... what they are launching today is information that Noveau would get anyway
after a couple weeks with the new cards. All this will do is get you the same
crappy support you would get, two weeks in advance.

------
hansjorg
This is a bit surprising. I was expecting an increased effort into their
proprietary drivers due to Valve's Linux announcements, but not this.

Of course they could do both, but isn't Nouveau 3D performance so far behind
the proprietary drivers that nobody is going to be using it for gaming anyway
(at least for a long time)?

I guess it could be that they're just buying some goodwill from the general
community in anticipation of working closer with it.

~~~
TheCraiggers
You're making the assumption that the problems with performance are caused by
many small issues. It could very easily be the case that a couple medium-sized
changes will drastically improve performance.

This is pure conjecture on both our parts, of course. I was simply taking
issue with your prediction of Nouveau not being useful for a 'long time'. It
almost sounded like you were suggesting this was a useless gesture on Nvidia's
part.

~~~
hansjorg
I don't think it's a useless gesture, just that it seems more like a PR move
directed at the community than directly related to SteamOS.

------
dnautics
you don't suppose this came about because steam announced steamOS?

edit: noticed it's in the article.

~~~
brokenparser
Valve is one company which has been developing a distro internally. nVidia is
another company which has been working on polishing up some documents in order
to release them on their FTP site. Yesterday, both companies stepped forward
and announced what they've been up to lately. Neither of them have noted any
relevancy at all to each others developments and (as an outsider) it seems
unreasonable to speculate on such based on timing alone. SteamOS is unlikely
to ever use nouveau and nVidia is even more unlikely to consider SteamOS as a
reason to release documents for nouveau. Many more projects are ongoing all
over the world and any two of them could at some point make announcements on
the same day.

~~~
pbhjpbhj
> _nVidia is another company which has been working on polishing up some
> documents in order to release them on their FTP site._ //

You know this for a fact? It's not that the announcement was made now to gain
traction in the Linux community and push forward Nvidia as the graphics
company for Linux then?

It surprises me a bit. Too be honest I'd have thought Nvidia would need to
document their drivers for internal purposes and that the detail already in
the internal documentation would be more than sufficient for the Nouveau team
to use. But I'm an outsider to GPU engineering and programming in general
really so a misapprehension is quite likely.

> _Many more projects are ongoing all over the world and any two of them could
> at some point make announcements on the same day._

Indeed but you'd expect Nvidia, or similar, to be manoeuvring themselves to
align with Steam's announcement.

~~~
swetland
If this were about PR it wouldn't be a post to a technical mailing list about
a single document being dropped and mention of work going on to provide more
(but unlikely all) docs in the future.

Just because two things happen on the same day (or within a week of each
other, etc) doesn't mean they're closely connected.

Having worked closely with silicon vendors in the past, the situation that
there _are_ no internal docs or that the docs are horribly outdated or
incorrect compared to the HDL or source code, is pretty common. When the only
consumer of docs is an internal team, it's not uncommon for those docs to be
nowhere near what an external team would expect or need (or a company would be
willing to release without serious cleanup and checking).

~~~
pbhjpbhj
> _If this were about PR it wouldn 't be a post to a technical mailing list_
> //

You're probably right.

That said your view of PR seems naive. It looks far better to release on
social networks that someone found that CompanyN was "already" working on
something than it does that there's an official press release. The channel
used here - mailing list to social networks - doesn't tell us much IMO.

> _it 's not uncommon for those docs to be nowhere near what an external team
> would expect or need_ //

You think they'd be worse than the nothing that is currently provided by many
hardware manufacturers.

------
lukaszdk
There was a thread on Reddit a while back were a few users said that Nvidia
are not that great at documenting their hardware internally.

"Nope. One of the reasons is that NVIDIA still doesn't document anything. A
friend of mine worked there, and he told me that most of the knowledge was
gathered by having little gatherings with the "village elders" as they were
called. Seriously. He even leaked a humorous internal video to me called "Zero
Documentation" in the style of Zero Punctuation."

[http://www.reddit.com/r/Games/comments/1anev9/a_nice_little_...](http://www.reddit.com/r/Games/comments/1anev9/a_nice_little_writeup_on_why_xbox_emulation_is/c8z24z1)

------
TerraHertz
IMO there's one primary reason Nvidia does not release open source drivers,
and never will, despite whatever they say now. It has nothing to do with
lawyers, or protecting hardware secrets - that's all just smokescreen to
obscure the real reason.

If open source drivers were available, it would be possible to port the low
level code to any operating system environment anyone wanted to. And that
means _future_ , _experimental_ operating systems and GUIs too. Effectively
this would enable OS/GUI innovation, allowing radical new 3D graphics based
UIs, escaping the Microsoft Windows, Linux and Apple trap.

Considering the dismal state of UIs now (Windows 8, cough, say no more) you
can imagine what the appearance of a well designed, sensible and user-enabling
OS/GUI in the next few years would do to Microsoft.

Open source 3D drivers would definitely result in a quite rapid overturn of
the present OS monopoly-by-three applecart. So the powers that be in the
personal computer market are going to allow it ... over their dead bodies.

Incidentally, 3Dfx did make the full source code for their Glide drivers
available (for money.) I worked at a company that bought the 3Dfx drivers, and
I personally ported the drivers (which were Windows & Linux targeted) to a
minimal MIPS processor based platform intended for gambling machines. It
worked - passed all the test code. Then the company went through a 'local CEO
was ripping off the company, sack him and kill all his projects' spasm, and
the machine never got to market. Soon after that 3Dfx was deep sixed and their
patents sucked into the Nvidia pool.

Personally I've always suspected those events may have had something to do
with certain parties making sure an open source 3D engine never happened -
precisely because it would be a threat to the OS status quo.

------
verbin217
Here's the relevant part of the video that the picture is from:

[http://www.youtube.com/watch?v=MShbP3OpASA&t=2980](http://www.youtube.com/watch?v=MShbP3OpASA&t=2980)

------
comex
Direct link to thread on lists.freedesktop.org:

[http://lists.freedesktop.org/archives/nouveau/2013-September...](http://lists.freedesktop.org/archives/nouveau/2013-September/014480.html)

------
ianstallings
Skeptical panda is very skeptical. If these open source drivers perform as
well as their proprietary ones I will eat a whole crow pie.

------
mahgnous
My guess is this has something to do with SteamOS and the recent rise in
gaming on Linux.

------
Arnor
Finally! I have an image of Linus flipping the bird in my image library :)

------
cientifico
Still rejecting to buy nothing with nvidia for my personal use.

------
kazagistar
My akmods in fedora broke a few days ago, and thus I am still on the 3.10
kernel.

------
tomrod
Great! Looking forward to seeing this progress.

