|
|
Subscribe / Log in / New account

NVIDIA to provide documentation for Nouveau

From:  Andy Ritger <aritger@nvidia.com>
To:  <nouveau@lists.freedesktop.org>
Subject:  offer to help, DCB
Date:  Mon, 23 Sep 2013 21:44:57 -0700
Message-ID:  <20130924044457.GA25785@parker.nvidia.com>
Archive‑link:  Article


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

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



(Log in to post comments)

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 7:48 UTC (Tue) by imgx64 (guest, #78590) [Link]

I wonder if the SteamOS announcement has anything to do with this.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 7:56 UTC (Tue) by MKesper (subscriber, #38539) [Link]

For a moment I thought hell would have frozen over.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 8:20 UTC (Tue) by rvfh (guest, #31018) [Link]

NVIDIA promised to work better with the community after Linus showed them that he was not very happy with them, and others. This is good, as their cards are definitely the best on the market, and though their proprietary drivers usually work very well, I really want to stay clear of them.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 10:20 UTC (Tue) by khim (subscriber, #9252) [Link]

as their cards are definitely the best on the market

Not anymore. And apparently nVidia is in deep trouble.

It's funny, really: when company is in trouble it suddenly "discovers" FOSS community. ATI was quite happy with their own closed-source drivers, but when it was bought by AMD and lost some momentum it opened up the GPU specs, now nVidia follows the suit. Intel was never all that hot which is probably why it opened up first.

We'll see what happens on mobile front: will Mali be able to gain the advantage and push PowerVR to the backseat? If that'll happen we should see “sudden surprise” reaction from Imagination Technologies, too.

P.S. Only it does not work that way: sure, FOSS driver eventually become better then closed-source one, but it takes years and thus they usually don't come out fast enough to save the company from troubles.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 12:37 UTC (Tue) by rvfh (guest, #31018) [Link]

The first article shows that the flagship-to-come from AMD/ATI is hardly the power of a several-months-old NVIDIA product (the GTX TITAN). Although I'm happy that AMD can achieve this, it does not make them ahead of NVIDIA in my books. But you are right that NVIDIA may not be miles ahead of its competition (or should I say sole competitor?) anymore.

The S|C article is interesting read, as usual. And they are often more than _semi_-accurate :-)

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 13:05 UTC (Tue) by khim (subscriber, #9252) [Link]

The first article shows that the flagship-to-come from AMD/ATI is hardly the power of a several-months-old NVIDIA product (the GTX TITAN).

The first article shows that $600 AMD card beats $1000 nVidia card. The second article shows that nVidia has no adequate response to that. Situation is similar to the release of Intel's Core. Prior to that Athlon 64 reigned supreme and Intel was only able to sell any Netburst CPUs because it had long-term contracts (some of them illegal) and supreme PR machine in place. After release of Core AMD fortunes have changed 180 degrees and CPU from AMD was never after a good deal speedwise (or powerwise for that matter). Today AMD only survives because it's GPUs (and consequently APU) are still doing great.

nVidia is in similar situation: historically it was always slightly better, slightly faster then AMD (right after AMD's release of new GPU it had the lead and right after nVidia's release of new GPU it had the lead but usually AMD had the lead for a shorter time), but it looks like it's about to face few tough years.

This may be the reason for today's announcement or it may be just a conicidence, but still, the fact that nVidia is in trouble (in more ways then one) and it's when it opens up is funny.

NVIDIA to provide documentation for Nouveau

Posted Sep 26, 2013 9:09 UTC (Thu) by mingo (subscriber, #31122) [Link]

You are comparing apples to oranges really: pricing of GTX Titan is so high because it's seen as the fastest card on the planet at the moment, so it can milk as much money from the "I don't care about the price of the GPU" buyers as possible.

Whether Nvidia has an answer to future AMD products or not remains to be seen, but the article you linked to was not very convincing to me.

In any case we all agree that nVidia opening up is very good news!

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 12:45 UTC (Tue) by lsl (guest, #86508) [Link]

> And apparently nVidia is in deep trouble.

You quote Charlie Demerjian on matters regarding Nvidia? On LWN? Seriously?

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 13:16 UTC (Tue) by khim (subscriber, #9252) [Link]

Why not? He knows a lot about nVidia troubles and even if he exaggerates a bit his information about them is usually accurate. Now AMD is another matter—there he tends to ignore some dangerous trends and it's where he can not be trusted.

The same approach can be used with Dan Dilger or any other fanboi: as long as you don't use him as source of information about Apple (where he tends to ignore all the potential problems) you can find many interesting things there.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 16:43 UTC (Tue) by rahvin (guest, #16953) [Link]

I like Charlie and followed the website before he took it subscription. But he's rarely even 50% accurate. The vast majority of his predictions end up wrong.

Don't get me wrong, I think nVidia is in trouble, but it's a long term trouble not a trouble that's going to happen in a year or even three. This trouble is Intel eating away at the bottom of the market. It's hard to make money and be successful when the guy selling the CPU's begins integrating your product. Their other ventures (HPC and Tegra) have been the less than stellar successes predicted.

Those are the reasons nVidia is in trouble, not the weekly "I hate nvidia" rant by Charlie.

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 3:58 UTC (Wed) by malor (guest, #2973) [Link]

Demerjian's fun to read, but every single time, every single one, he's there predicting disaster for NVidia, and with one notable exception, they've shipped perfectly acceptable products every time. I think it was the 280 that actually was rather a disaster, but everything since has been anywhere from good to great.

I don't know why he has such a bee in his bonnet about that company, but the man does not seem to be in the same reality the rest of us are, where NVidia is generally shipping cards that outperform its rival, while costing a fair bit less to make.

AMD's much stronger in compute in this generation, but from a gaming perspective, which is the largest market for these cards, meh, big deal. Meanwhile, NVidia provides actual gaming performance that's as good or better on a much smaller -- and therefore cheaper, and more profitable -- chip.

Yet, Demerjian was frothing about terrible the 6XX series was going to be, and then how awful the 7XX series was going to be.

The man is not credible. You shouldn't link him.

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 10:21 UTC (Wed) by khim (subscriber, #9252) [Link]

Demerjian's fun to read, but every single time, every single one, he's there predicting disaster for NVidia, and with one notable exception, they've shipped perfectly acceptable products every time.

Really? What kind of “disaster” he predicted that failed to materialize? Bumpgate? GT300 woes? Tegra 1/2 woes? GF100 woes? Or Tegra3 non-woes? Or maybe GK104 blameshifting? Or, I don't know, Tegra 4 problems?

If you'll read his articles and compare them with what actually happened you'll see that he's usually pretty accurate, but that sometimes people expand the troubles he describes to unrealistic proportions. When Demerjian's talks about “nVidia's Tegra 1 & Tegra 2” problems they expand it to “nVidia's Tegra problem” and counter with Tegra 3, when he talks about “nVidia's trouble with mobile Tegra 4 line” they counter with bunch of tablet announces (not even releases so far—only couple of tablets and nVidia Shield were actually released) and when problems with GF100 are announced they counter with GTX 480 which does not use all 16 SMs!

Demerjian may underestimate the power of nVidia's PR but his description of nVidia's technical problems are usually quite accurate. Too bad he does not do the same service for AMD.

I don't know why he has such a bee in his bonnet about that company, but the man does not seem to be in the same reality the rest of us are, where NVidia is generally shipping cards that outperform its rival, while costing a fair bit less to make.

And that is the power of PR I'm talking about.

Meanwhile, NVidia provides actual gaming performance that's as good or better on a much smaller -- and therefore cheaper, and more profitable -- chip.

Really? In which world 360mm² of GTX 560 are smaller then 255mm² of HD 6870? Or 221/294mm² of GTX 680 is smaller then 212mm² of HD 7870? Only in latest generation nVidia achieved smaller via bifurcation of their chips—which has it's own problems.

The man is not credible.

Well, yeah. If you'll carefully scan everything he write about nVidia, ignore pieces where he correctly wrote about nVidia woes and also pieces where he plain out says the short story is that Nvidia (NASDAQ:NVDA) will win this round on just about every metric, some more than others then yes, you can piece together story of his unworthiness. But you can do such spin with more-or-less any author out there.

NVIDIA to provide documentation for Nouveau

Posted Sep 26, 2013 15:09 UTC (Thu) by tjc (guest, #137) [Link]

> NVIDIA promised to work better with the community after Linus showed them that he was not very happy with them, and others.

I don't think Linus' petulant finger had much to do with this.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 8:07 UTC (Tue) by rengolin (guest, #48414) [Link]

I'm not sure NVidia has anything decent in store, and it might be easier to use the (amazing) Nouveau, but SteamOS is free to use proprietary drivers...

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 16:28 UTC (Tue) by mathstuf (subscriber, #69389) [Link]

But can you distribute an OS which bundles in the driver as-is? If there's a button the user presses to compile and load the module, that's OK (AFAIK), but distributing the bundle wouldn't work without getting an exception from kernel developers (which is less likely even than nvidia opening up their current driver). That could have been the forcing function here.

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 8:21 UTC (Wed) by tdz (subscriber, #58733) [Link]

Valve has been very vocal about their love for free graphics drivers when porting a game to Linux, and NVIDIA must have noticed this. They may have decided to open up a bit to not lose developer support in the long run.

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 13:19 UTC (Wed) by drag (guest, #31333) [Link]

Well I think it probably has a hell of a lot more to do with the fact that Linux and everybody else is now moving to kernel-level modesetting.

Nvidia cares that people's Nvidia Linux systems boot with the same reliability and features that you can get from other graphics cards.

If they have to work around Linux KMS fuck-ups in their binary driver due to the fact that the Linux devs can't quite reverse engineer things correctly then that will make life for them and their customers harder then it needs to be.

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 20:25 UTC (Wed) by tdz (subscriber, #58733) [Link]

I'm sorry, but I don't understand your point. To my knowledge NVIDIA doesn't use KMS in their proprietary driver. They have a completely separate graphics stack in the kernel. So why would they be affected by problems in Linux' KMS. Also why would they start caring about this now and not 5 years ago, when KMS was new?

If it's not for Steam, I could imaging that they want support for Wayland without committing resources for maintaining a KMS driver. Supporting nouveau with documentation is the next best option then.

NVIDIA to provide documentation for Nouveau

Posted Sep 27, 2013 14:35 UTC (Fri) by Lovechild (guest, #3592) [Link]

The problem nvidia is facing is that distributions will be or is using boot splashes and/X technology that relies on KMS. They could at best screw up only a boot splash but the pain just grows.

If they inplement KMS support in their driver they will at least subject that part to the GPL2 clause relating to derived work. Effectively meaning at least the parts KMS support touches would have to be under the GPL2 like the Linux kernel. Nvidia really don't want that, likely for legal reasons. E.g. they might not be absolutely sure all their code base is licensed as to allow them to open source it, in cases of code that comes along with buying another company. The answer might simply be a complicated, expensive "we don't know for sure, better not".

Button line expect nvidia to be able to play this many ways. Initially it might allow them to easily run on modern Linux distributions with their existing code. Long term it might allow them to move some parts more in the open if that makes sense for them (e.g. the way Intel's Graphics drivers work in many ways)

NVIDIA to provide documentation for Nouveau

Posted Sep 27, 2013 15:47 UTC (Fri) by Wol (subscriber, #4433) [Link]

Iirc Valve had a major problem somewhere.

And they said it was just great being able to debug the ENTIRE stack, and FIX the problem rather than just work round a problem in someone else's code.

Cheers,
Wol

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 8:43 UTC (Tue) by Duncan (guest, #6647) [Link]

Very possibly, I'd guess.

Meanwhile, whatever the reason, it's welcome. Perhaps one of these days nVidia can come off my purchase-blacklist. AMD/Radeon (and Intel, but they seem to only do embedded graphics) might get some competition! =:^) (Tho I was stuck on the Radeon r2xx generation for several graphics generations, for similar reasons. =:^( But that's a few generations in the past now, and with this news, perhaps I'll be able to say it's generations in the past for nVidia as well in a few years. =:^)

Now if only "Sony, The rootkit people (tm)", would properly apologize as well (with "properly" including doing something of a similar order to what they robbed from their users to restore what was lost in both that incident and when they took Linux away as a Playstation option, as well)... maybe it could come off the blacklist too. Not that I'm really expecting it, but change DOES seem to be in the air in so MANY areas I wouldn't have expected a few years ago, these days... (Resisting the temptation to further off-topic enumerate!)

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 12:59 UTC (Tue) by Wol (subscriber, #4433) [Link]

I'm a Matrox fan (this system is running on a G450 iirc), but they don't seem to do consumer level cards any more.

Last I looked at their stuff, you're looking at fancy prices in the £K region for fancy stuff, nothing in the consumer £50-£200 range.

Cheers,
Wol

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 13:20 UTC (Tue) by khim (subscriber, #9252) [Link]

Matrox made a wrong turn many years ago: it refused to license GPU chips and produced all the cards in house. This reduced it's market reach, which in turn implied that it had not way to compete with ATI and nVidia. It's swan song wan Parhelia which was pretty cool card for video work, but was meh for gaming. And they have nothing more modern thus of course they left the consumer market.

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 14:27 UTC (Wed) by tjc (guest, #137) [Link]

I wondered the same. The announcements seem too close together to be a coincidence.

Valve has been taking about open game systems. NVIDIA is fast, but not open, and Intel is open but not fast enough. This solves the problem (in theory).

2013: The year pigs started flying?

Posted Sep 24, 2013 8:17 UTC (Tue) by Zenith (guest, #24899) [Link]

Steam for Linux, SteamOS, Spotify, and a raft of indie and middle-tier games for Linux.
And now support by both AMD and NVIDIA for the open source graphics drivers?

It seems increasingly less relevant having to dual-boot your PC to Windows to play games and "get stuff done". I'm impressed! It was always a not-so-secret hope of mine, but realistically I didn't expect it to happen this soon.

2013: The year pigs started flying?

Posted Sep 24, 2013 8:58 UTC (Tue) by Otus (subscriber, #67685) [Link]

> It seems increasingly less relevant having to dual-boot your PC to Windows
> to play games and "get stuff done".

Yeah, I stopped using Windows completely early this year, when the Windows 8 preview ran out of time. I've actually played *more* games since then, due to all the good Linux games in this year's Humble Bundles and Weekly Sales.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 9:01 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

What next, world peace?

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 12:28 UTC (Tue) by lkundrak (subscriber, #43452) [Link]

Yes, please.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 9:36 UTC (Tue) by Felix.Braun (guest, #3032) [Link]

This is huge. Thanks are certainly due to whomever worked inside nvidia to effect this change. However, it must be pointed out that it has taken a *long* time for Radeon drivers to catch up featurewise based on the documentation alone.

So, while this will certainly be helpful to understand the workings of nvidia cards it might take a while before the nouveau driver catches up with nvidias (by all accounts excellent) proprietary offering.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 9:48 UTC (Tue) by Otus (subscriber, #67685) [Link]

> This is huge. Thanks are certainly due to whomever worked inside nvidia to
> effect this change. However, it must be pointed out that it has taken a
> *long* time for Radeon drivers to catch up featurewise based on the
> documentation alone.

And it's not even documentation alone: AMD has people working on the open drivers.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 9:47 UTC (Tue) by moggers87 (guest, #86573) [Link]

How long until they demand Nouveau run the source code through a C preprocessor? :P

I hope my snide comment turns out to be just that. It would be nice to consider NVidia cards again.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 9:59 UTC (Tue) by rvfh (guest, #31018) [Link]

I think this marks a turn in the way NVIDIA consider the community. I just can't find the quote where they said that OSS developers would not be good enough to develop a graphics card driver. Enter Nouveau!

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 15:12 UTC (Tue) by HelloWorld (guest, #56129) [Link]

> I just can't find the quote where they said that OSS developers would not be good enough to develop a graphics card driver.
Well, are they? Mesa is limited to OpenGL 3.2 (instead of 4.4) and Nouveau's performance doesn't begin to approach that of nvidia's driver.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 15:26 UTC (Tue) by mpr22 (subscriber, #60784) [Link]

nvidia's own driver is written by people with rather better access to hardware information than has historically been the case for the Nouveau development effort. It is not surprising - nor enlightening about the relative competence of the two drivers' developers - that there is a disparity between them in favour of the internally developed driver.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 15:33 UTC (Tue) by rvfh (guest, #31018) [Link]

Don't bother feeding the troll :-)

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 15:43 UTC (Tue) by higuita (guest, #32245) [Link]

Then look at the ATI/AMD radeon driver, where in many places is already as fast as the closed driver. Nouveau can reuse most of AMD work on the gallium3d and mesa, that in turns can reuse many of the intel work in the mesa (intel don't directly uses gallium3d). This will help nouveau recover faster from being this late to the FLOSS game.

Mesa is limited to OpenGL 3.2, but already have many features from above versions implemented. it stil have a big backlog of TODO items, still recovering of years of slow developing and lack of developers, but now, with paid developers from various companies, it manage to reduce that backlog by a huge amount.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 16:48 UTC (Tue) by rahvin (guest, #16953) [Link]

Galium3D last I looked is a VMWare project with them supporting the vast majority of the dev's working on it. Maybe if nVidia, AMD and Intel would donate some developer time it could move along quicker.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 19:28 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

No. Gallium3D is also used by AMD's drivers and other projects are also looking at it (mostly ARM reverse engineering projects).

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 20:21 UTC (Tue) by rahvin (guest, #16953) [Link]

No.
What a well thought out and comprehensive reply. Galium3d is:
Gallium3D is a framework intended to ease the programming of device drivers for 3D graphics chipsets by splitting the graphics device driver into three parts. This is accomplished by the introduction of two interfaces: Gallium3D State Tracker Interface and the Gallium3D WinSys Interface. The three components are called

Gallium3D State Tracker – each graphical API by which a device driver is being addressed has its own State Tracker, e.g. there is a Gallium3D State Tracker for OpenGL and a different ones for Direct3D or GLX. Each State Tracker contains an implementation of the Gallium3D State Tracker Interface, and is unique, this means is shared by all existent Gallium3D device drivers.

Gallium3D hardware device driver – this is the actual code, that is specific to the underlying 3D graphic accelerator chip, but only as far as the Gallium3D WinSys Interface allows. There is a unique Gallium3D hardware device driver for each available graphics chip and each implements the Gallium3D State Tracker Interface as well as the Gallium3D WinSys Interface.

Gallium3D WinSys – is specific to the underlying kernel of the operating system and each one implements the Gallium3D WinSys Interface to interface with all available Gallium3D hardware device drivers.
http://en.wikipedia.org/wiki/Gallium3D

Whether or not AMD is assisting in the development of the hardware device driver for AMD hardware of Galium3D has little bearing on the entirety of Galium3D. This hardware driver has almost no code reuse with other hardware. This is because the device driver portion is a relatively small part of the entirety of Galium3D though it is a very important part. As I said, the last I saw the bulk of the Galium3D development is being funded by VmWare (I believe to advance their goal of desktop virtualization, though I could never find official company statements acknowledging it). Though hardware vendors have provided some assistance to development of the small graphics driver portion there is far more to G3D than just the hardware driver.

The whole point of the G3D setup is to abstract the hardware. This is where the bulk of the work in G3D is. Yes you still need hardware drivers that talk the hardware's language but the abstraction allows you to build the pipeline and interface with hardware independence. It is my understanding that the state tracker and winsys portion of the driver compose the vast majority of G3D with the hardware driver composing essentially just shim between the hardware and G3D. Last I saw none of the graphics OEMs except for intel had paid for development time on the state tracker or winsys. I haven't looked for a year so maybe that's changed (and google wasn't helpful, probably because my google-fu is week) but I would be surprised if much has changed on the G3D development front.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 21:09 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

AMD _does_ support Gallium3D development. Just look at the mesa3d-devel mailing list.

And it's also well-known that Intel does NOT use Gallium3D infrastructure at all. They prefer to use their own completely custom infrastructure.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 22:13 UTC (Tue) by SEJeff (guest, #51588) [Link]

Yup GEM aka Graphics Execution Manager. Intel didn't like Gallium3D and decided to NIH.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 22:16 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

Nope.

GEM is the kernel-level interface. And in fact, other drivers _also_ use it. Except Intel implements GEM directly and other drivers use TTM (Translation Tables Mapping) instead.

There's a similar story with Mesa - there's a 'classic mesa' (drivers directly implement OpenGL spec) and Gallium3D (common infrastructure is used for OpenGL and drivers simply translate the resulting TGSI stream). And Intel is the only major remaining 'classic' Mesa user.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 23:42 UTC (Tue) by airlied (subscriber, #9104) [Link]

The Gallium 3D OpenGL state tracker is developed my lots of companies and non-companies alike.

Tungsten Graphics wrote the original, consumed into the VMware, I think since the initial import the biggest contribution to it was an independent who wrote the GLSL to TGSI translator.

Other contributors are Marek who worked on radeon in his spare time and is now employed my AMD, and myself at Red Hat.

That layer is under constant development, a lot of it isn't done by VMware anymore, VMware are currently focused on the llvmpipe sw renderer pipe driver code and their closed direct3d implementations from what I can see.

Also a lot of work is required to write a gallium 3D driver its not trivial code to map to hw as you think,

Apart from all that there is also a gallium video decoding layer using vdpau that AMD has contributed a lot of, a gallium compute interface for OpenCL that AMD and VMware (initially) along with independents put a lot of work into.

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 7:28 UTC (Wed) by gioele (subscriber, #61675) [Link]

> Also a lot of work is required to write a gallium 3D driver its not trivial code to map to hw as you think,

Is the amount of functionality brought by the independent state trackers enough to justify the investment in writing Gallium 3D drivers instead of classic Mesa drivers?

Once you write a Gallium 3D driver for your HW, what do you get "for free" from the rest of the Gallium 3D infrastructure?

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 7:57 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link]

Not having to write complicated OpenGL state trackers, for one thing. And OpenCL in near future.

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 9:25 UTC (Wed) by airlied (subscriber, #9104) [Link]

Not having to rewrite DRI interface code, having to worry about OpenGL state tracking semantics (GL does things different for rendering to windows and FBOs, and every driver has to repeat the mistake in classic), abstracted a bit from the OpenGL GLSL compiler. Free mipmap generation, lots of utility helpers.

Just a lot less boilerplate and cut-n-pasting all over the place.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 19:26 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

Here's the state of OpenGL support in Mesa: http://cgit.freedesktop.org/mesa/mesa/tree/docs/GL3.txt As you see, GL3.3 is probably going to be finished pretty soon and GL4 is not that far in the future.

Nouveau's performance is really hobbled by the inability to do video card reclocking. In effect, Nouveau always works in the lowest power mode which kinda beats the purpose of a high-end videocard :(

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 16:22 UTC (Tue) by flussence (subscriber, #85566) [Link]

The cynic in me suspects that some PHB at NVIDIA only allowed this to happen so that they can quietly drop maintenance of the nv DDX driver to save a few bucks.

But we'll have to wait and see.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 16:29 UTC (Tue) by yokem_55 (subscriber, #10498) [Link]

I thought they already did that a couple of years ago?

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 16:38 UTC (Tue) by flussence (subscriber, #85566) [Link]

I thought they'd kept it around as a basic userspace-modesetting driver, with the intent being to allow users to boot to a basic desktop and install their "real" driver. It seems the last release was over 12 months ago though so I assume you're correct.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 17:01 UTC (Tue) by mjg59 (subscriber, #23239) [Link]

Userspace modesetting won't work under most distributions when Secure Boot is enabled.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 20:42 UTC (Tue) by rahvin (guest, #16953) [Link]

Is there a quick explanation why? That seems very strange to me.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 20:44 UTC (Tue) by mjg59 (subscriber, #23239) [Link]

Userspace modesetting means giving userspace the ability to arbitrarily program hardware with a DMA engine which means now userspace can turn your kernel into a bootloader and that's kind of the point.

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 22:38 UTC (Tue) by rahvin (guest, #16953) [Link]

So a mode setting kernel driver could potentially allow a user (might require privilege escalation depending on setup I suppose) to boot arbitrary software?

NVIDIA to provide documentation for Nouveau

Posted Sep 24, 2013 22:43 UTC (Tue) by mjg59 (subscriber, #23239) [Link]

Kernel drivers are supposed to prevent userspace performing any kind of operation that would touch arbitrary kernel memory. One that didn't do so would clearly be a mechanism to boot arbitrary software, yes.

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 7:23 UTC (Wed) by paulj (subscriber, #341) [Link]

Given there are Secure Boot bootloaders that allow one to load arbitrary operating systems, then what does it matter if such an OS then allows privileged user-space to run?

Unless you mean that, ultimately, Secure Boot is intended to disallow users from running arbitrary code on the hardware, and allow only code limited to approved distributors to be run?

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 9:20 UTC (Wed) by lsl (guest, #86508) [Link]

Those boot loaders are supposed to perform a check for physical presence. If there's someone right in front of the physical hardware he could already smash it to pieces or install some hardware bug, so why not let him boot an arbitrary kernel?

The kernel can't reasonably perform such checks before letting an user space driver access the graphics hardware (and with it, the entire system).

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 12:13 UTC (Wed) by farnz (subscriber, #17727) [Link]

It all depends on the bootloader you're using, though. I can easily imagine that Red Hat and SuSE enterprise customers are planning to use bootloaders that check the signature of the next thing they load, so that there's a chain of blame all the way through the system from power on to running kernel that lets them trace the sign-off on any exploitable code (and thus work out if there's something they could do differently to avoid an exploit of their employee's CAD workstations or whatever).

I'd expect such customers to follow James Bottomley's guide to replacing all keys trusted by the firmware with ones under the customer's control, so it wouldn't matter that you can get the LF bootloader that's been signed by Microsoft's key, as that key is not trusted by the firmware.

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 15:18 UTC (Wed) by PaXTeam (guest, #24616) [Link]

that blog url seems to be dead but you can still read the entry on the main blog page. more importantly though, why would you trust the firmware to manage your keys properly when you don't trust the keys that come with it? the source of these is the same manufacturer that you either trust or don't trust, but you can't have it both ways ;).

NVIDIA to provide documentation for Nouveau

Posted Sep 26, 2013 18:48 UTC (Thu) by farnz (subscriber, #17727) [Link]

That's why I referred to a chain of blame, not a chain of trust - there's a good chance that the firmware isn't secure enough to be trustworthy. If that's the case (e.g. because it executes code signed by a Microsoft key when you've replaced that with your own key), the chain of blame ends at the firmware, and hence at the manufacturer.

NVIDIA to provide documentation for Nouveau

Posted Sep 26, 2013 19:45 UTC (Thu) by PaXTeam (guest, #24616) [Link]

my comment was about your second paragraph, not the first one. you pointed at a blog post that explains how to replace untrusted keys and then you said that this way one would avoid trust issues coming from MS signed boot loaders. but this statement assumes that the key replacement process is trusted - whereas you start with the assumption that the UEFI code doing the replacement is not which is a contradiction ;). or in other words: your advice of replacing untrusted keys but keeping untrusted UEFI code around doesn't make sense.

NVIDIA to provide documentation for Nouveau

Posted Sep 26, 2013 20:06 UTC (Thu) by mjg59 (subscriber, #23239) [Link]

You replace the certainty of Microsoft (or anyone with access to their keys) being able to run code on your system with a possibility that they're able to do so. If you don't trust Microsoft (or anyone who might be able to force them to hand over keys), that still seems like an improvement. You're obviously at the mercy of your firmware vendor, but that's always going to be true.

NVIDIA to provide documentation for Nouveau

Posted Sep 26, 2013 21:35 UTC (Thu) by PaXTeam (guest, #24616) [Link]

what exactly is being improved? the user's sense of security or actual security? because in the world of security only the latter matters (and yes, i don't exactly have a high opinion about much of the security industry ;) and i don't see how that's possible with replacing keys (=trusting that they actually get replaced) all the while not trusting the very code responsible for, among others, the key replacement.

NVIDIA to provide documentation for Nouveau

Posted Sep 26, 2013 21:42 UTC (Thu) by mjg59 (subscriber, #23239) [Link]

You can't verify that your CPU will perform all cryptographic operations correctly, so what's the point in any cryptography at all? Even if you believe that some sufficiently powerful actor can still compromise your system via a firmware flaw or backdoor, removing Microsoft's keys means that the majority of existing signed binaries won't run on your system. That means an attacker won't be able to use a flaw in one of the thousands of Microsoft-signed binaries to attack your system.

NVIDIA to provide documentation for Nouveau

Posted Sep 29, 2013 0:42 UTC (Sun) by PaXTeam (guest, #24616) [Link]

i don't understand, since when are CPU level backdoors part of the threat model of UEFI/Secure Boot?

also you keep saying what the removal of the MS key means but you don't explain why the UEFI code to accomplish this can be so much more trusted than trusting what the MS key will sign.

NVIDIA to provide documentation for Nouveau

Posted Sep 29, 2013 5:03 UTC (Sun) by mjg59 (subscriber, #23239) [Link]

Security tends to be built on the assumption that lower layers aren't actively trying to screw with you. We trust ssh because the layers we can examine appear to be correct, even though the CPU could potentially have determined that we were generating a host key and given us one from a list maintained by the NSA.

Secure Boot is the same. It's possible that the UEFI code *is* hostile to us. Secure Boot is irrelevant here - hostile firmware can modify our OS even without Secure Boot being involved. But the firmware is produced by one of a range of different firmware vendors, and has in turn been modified by our system vendor. The probability that the NSA (or any other state agency) has a backdoor that exists in every firmware implementation is slim - there's too many people who have access to the source code (including random board vendors in Taiwan) to be able to guarantee secrecy.

However, the security of the firmware is irrelevant if you don't believe that Microsoft's key can be trusted. If your firmware trusts Microsoft's key then the NSA (or some other hostile body with access to Microsoft's key) can sign a bootloader that your firmware will trust and then use that to compromise the rest of your OS. Removing Microsoft's key removes that avenue of attack. Someone who wants to compromise your system can no longer simply go to Microsoft. They instead have to identify the specific firmware that you're running, locate a back door or vulnerability and then deliver an attack that's specifically tailored to you. Removing Microsoft's key doesn't make it impossible for someone to attack your boot process, but it does make it harder. That seems like an improvement in security.

The source code to AMI's Secure Boot implementation is out in the wild, thanks to Jetway leaving it on an insecure FTP site. I'm sure someone could do a reasonable audit.

NVIDIA to provide documentation for Nouveau

Posted Oct 1, 2013 13:07 UTC (Tue) by PaXTeam (guest, #24616) [Link]

1. the CPU cannot determine anything of this sort in general, it'd be equivalent to solving the halting problem (cf. Rice's theorem). if you think otherwise i think the whole world would be dying to know how to pull off such a feat ;).

2. Secure Boot (and its key management in particular) was proposed here to solve the problem of not booting untrusted code, i.e., the entire trust was placed in these keys all the while ignoring the fact that the UEFI code is in the same 'trust domain'. i'm glad you actually agree with me that separating the two is non-sensical.

3. your statement about the NSA's capabilities requires justification. some food for thought: backdooring doesn't require source code (and especially not permanent source changes). backdooring doesn't require the cooperation of firmware producers (also the food chain is longer than that). backdooring can be targeted. etc.

4. the security of the firmware becomes relevant *exactly* when it comes to key management. how else would you know whether the firmware does as asked (removes the MS key for good) or just pretends to do so but still accepts some blob containing some secret magic signed by the supposedly revoked key? one more time: you *cannot* separate the trust in UEFI code from the trust in the keys it manages. so any 'improvement in security' based on removing the MS key is just a feeling at best, not actual security.

5. availability of some source code on the net has exactly zero relevance to the code running as your machine's UEFI firmware. you can audit it all you want, it won't give you all the backdoors that could exist in the actual binary stored in flash (and to be honest, it'd be rather dumb to risk exposing anything of this sort in this kind of source code anyway).

NVIDIA to provide documentation for Nouveau

Posted Oct 1, 2013 15:26 UTC (Tue) by mjg59 (subscriber, #23239) [Link]

1. It doesn't need to know in the general case - if you know your target's crypto library then you just push a microcode update that recognises the specific series of instructions it executes in that path.

2. Secure Boot places the root of trust in the firmware, so yes, if you can't trust the firmware then you can't trust anything above that. But like I said, that's true even without Secure Boot.

3. There are at least 4 common firmware implementations that were independently developed. They're built with different compilers. This code is distributed to a much larger number of board vendors, each of whom then rebuilds it with their own choice of compiler.

Could a security agency compromise all of these? It's theoretically possible, but it doesn't seem like the easiest avenue of attack. The number of firmware implementations is larger than the number of operating systems that run on top of them - backdoor Windows and Linux and you have the same benefits for much less effort. That's not to say that firmware is secure and trustworthy, or that individuals won't be targeted, just that Secure Boot probably isn't the easiest avenue of attack.

4. Why would you do it that way? It'd be far too easy for a user to verify - remove the Microsoft key, check whether Windows boots. As you suggest, the obvious thing to do would be to have some additional embedded key that's checked regardless of whether or not the Microsoft key is present. So sure, removing the Microsoft key doesn't secure you against a security agency who's managed to compromise your firmware. But it *does* protect you against attacks where someone's found an exploit in something that was signed by Microsoft. Reducing your attack surface is an improvement in security.

5. So someone should just rebuild that source code and check whether it matches the binaries that Jetway ship. Matching obviously doesn't guarantee the absence of a backdoor, but a failure to do so would be a pretty strong indication that something's up.

NVIDIA to provide documentation for Nouveau

Posted Oct 1, 2013 21:14 UTC (Tue) by PaXTeam (guest, #24616) [Link]

1. matching the crypto library code (something microcode cannot do anyway) won't do any good because that code can occur in several other contexts than your target sshd and it can also be executed for arbitrary other purposes and the CPU can't tell which is which without solving the halting problem.

second, if you have the ability to force arbitrary microcode updates on your target then you're already root there for all intents and purposes, so you have easier ways to backdoor their system.

2. but according to local wisdom here Secure Boot is supposed to give us, well, a secure boot process if only we used our own keys. turns out we're no better off than trusting trust once again.

3. have you seen the Snowden leaks? do you know how many companies got compromised and/or compelled into cooperation by the NSA and other agencies? so yes, i'm not exactly impressed by '4 common firmware implementations', it's a very *small* industry actually (and what does building with different compilers matter? nothing?). in fact, if i were the NSA, i would have my men planted there long ago and the 'how do i compromise them' question would simply become 'when and what do you want me to do?'. as for which is more numerous, i bet there're more different vmlinux and heck, even ntoskrnl images out there than UEFI firmware updates.

4. that's not how it'd work, obviously a Windows boot despite (supposedly) not having the MS key would be a dead giveaway. however it's possible to still accept code signed by the (supposedly removed) MS key if there's an additional condition - no need for an extra key at all, just some embedded secret that only the backdoor owner would know (and whoever else reverse engineers it of course). in fact MS would not even have to be complicit here, they'd just sign such an image in good faith without being aware of the secret payload that'd trigger the 'accept this despite being signed by the removed MS key' logic in the backdoored UEFI firmware.

as for 'an exploit in something that was signed by MS' you probably didn't mean that, but rather an exploitable bug as i find it unlikely that an actual exploit embedded in the to-be-signed code would pass their processes whereas bugs (exploitable or not) slip by all the time. with this understanding it seems now that the worry about the MS key is not that someone abuses it to sign something bad (which is what i was going about before) but that otherwise well meaning code gets signed and then exploited due to its bugs. this is a legitimite concern and removing the MS key would indeed help here... except this problem applies equally well to any other key as well and considering where MS stands with its SDLC and other processes in the industry (read: mostly above everyone else) i think the users are worse off trusting anybody else's keys, key signing processes and software development capabilities than those of MS. perhaps a sad piece of truth for free software but as far as i'm concerned, this is the reality. so if the advice here is still that users should become their own CA and use their own keys for Secure Boot then my bet is that the likes of the NSA (and even less resourceful actors) will still have a field day owning their systems.

5. just a few points above you were bringing up different compilers as one of the reasons why universal backdooring would be so much harder for powerful and skilled actors (it isn't, but that's not the point here) and now you're suggesting that much less resourceful end users should try to gain confidence in their firmware by trying to second guess the exact toolchain and build environment their vendor used. sorry, this doesn't add up to a good argument ;).

NVIDIA to provide documentation for Nouveau

Posted Oct 1, 2013 22:23 UTC (Tue) by raven667 (subscriber, #5198) [Link]

You guys seem to be talking about two different things and I'm not sure any effective communication is going on here. In one case you have a general statement that firmware, especially firmware that is capable of being updated, can harbor persistent threats, backdoors, etc. EFI provides standard capabilities, like network support, which may make these kinds of threats easier to design or more useful. These risk of these kinds of threats though are unchanged whether SecureBoot(tm) exists or not and so to rope in Secure Boot into the discussion is to muddy the waters about two different threats/risks and two different responses.

NVIDIA to provide documentation for Nouveau

Posted Oct 2, 2013 18:28 UTC (Wed) by mjg59 (subscriber, #23239) [Link]

I do wonder if we're somehow talking past one another. We appear to agree that there's no fundamental reason to trust firmware - it's possible that it's deliberately backdoored, and it's almost certainly buggy in exploitable ways. When we build any kind of secure system we have to assume that the firmware isn't actively malicious, in the same way that we have to assume that everything else under our stack isn't actively malicious.

But Secure Boot isn't about protecting us from the firmware. It never has been. It's about limiting the set of objects that your firmware will run. Now obviously if a sufficiently powerful actor has leaned on your firmware vendor then they may be able to run arbitrary code on your firmware, but why bother? They could just have the firmware include some SMM code that'd trigger in specific circumstances and modify arbitrary addresses in your running OS.

Obviously Secure Boot does nothing to protect you against such actors, but that doesn't mean it adds nothing to security. Microsoft have signed literally hundreds of binaries. Fedora have signed significantly fewer than that, and all the ones signed by Fedora have also been signed by Microsoft. Removing the Microsoft key and only trusting the Fedora one clearly improves security, if only because you'll no longer be able to boot the Ubuntu grub that'll happily boot unsigned kernels. Perhaps you weren't aware that Microsoft is effectively the global signing authority for UEFI binaries?

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 16:05 UTC (Wed) by mjg59 (subscriber, #23239) [Link]

The machine owner should (through a demonstration of physical presence) be able to do whatever they want. Someone who doesn't have physical presence shouldn't be able to modify the booted kernel, even if they have privileged access.

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 23:05 UTC (Wed) by dlang (guest, #313) [Link]

this works for personal devices like laptops, but not for servers

NVIDIA to provide documentation for Nouveau

Posted Sep 25, 2013 23:07 UTC (Wed) by mjg59 (subscriber, #23239) [Link]

Yes, which is why we have IPMI.

NVIDIA to provide documentation for Nouveau

Posted Sep 26, 2013 2:32 UTC (Thu) by dlang (guest, #313) [Link]

two things here.

not all systems that are deployed as servers have IMPI

trading a system that requires root access to do thing for a system that puts it's console on the network exposted to attackers (especially where that console is 'secured' by vendor proprietary code) doesn't seem like a win to me.

IPMI

Posted Sep 26, 2013 15:06 UTC (Thu) by tialaramex (subscriber, #21167) [Link]

"not all systems that are deployed as servers have IMPI"

Sure, it's totally acceptable to choose no lights out management if you have 24/7 hands-on. The 24/7 hands-on people are physically present and meet that constraint.

The practice of calling a cheap desktop PC in a closet a "server" has plenty of other problems long before you get to remote management.

We have drifted far off topic.

NVIDIA to provide documentation for Nouveau

Posted Sep 26, 2013 15:13 UTC (Thu) by mjg59 (subscriber, #23239) [Link]

If you don't deploy using IPMI then you clearly have physical access during initial configuration. And if you've left the IPMI network connected to the rest of your network, you're doing it very, very wrong. But since nobody in the server market seems to be talking about shipping with Secure Boot enabled by default, you can do your key installation in any way you want.

NVIDIA to provide documentation for Nouveau

Posted Sep 26, 2013 22:48 UTC (Thu) by jmorris42 (guest, #2203) [Link]

> The machine owner should (through a demonstration of physical
> presence) be able to do whatever they want.

Nope. Physical presence does not equal ownership. We circulate laptops as library material. Do they get to do whatever they want? Oh heck no. And if the security tape over the screws is tampered with we fine em to cover our time reauditing the system.

How about a lab computer for library patrons. They are sitting at the console, so they install a new OS? Not on my systems they ain't, at last not without a screwdriver and some way to distract the staff.

NVIDIA to provide documentation for Nouveau

Posted Sep 27, 2013 4:43 UTC (Fri) by mjg59 (subscriber, #23239) [Link]

Does physical ownership in your environment equal root? If so, you have other problems. If not, you have nothing to worry about.

NVIDIA hiring

Posted Sep 24, 2013 20:04 UTC (Tue) by ncm (guest, #165) [Link]

I see that Nvidia is trying to hire developers. My own reaction
was that I could not seriously consider them, given their attitude
toward the Free software world. If other potential applicants
have expressed similar misgivings, they might have twigged that
publishing documentation would be a very cheap way to expand
the pool of applicants -- or at least to attract attention.

NVIDIA hiring

Posted Oct 4, 2013 18:17 UTC (Fri) by elanthis (guest, #6227) [Link]

I 100% guarantee you that NVIDIA has no trouble with finding qualified applicants for their software development just because of some Free-software purists balking at the company. I have more than a few friends who work or worked at NVIDIA these days. The biggest problem they (and many other software companies) have these days is that the US has a shortage of experienced developers and getting VISAs for foreign workers is a very slow process (often taking around 6 months between when a company decides to hire a person and when that person can actually show up to their first day of work).

If your hypothesis were true, Microsoft wouldn't be the largest software company in the world, nor would most of these other top 10 companies be the top 10: http://en.wikipedia.org/wiki/List_of_the_largest_software...

The most highly skilled and qualified people tend to go where the money is. Certainly there are people who have other priorities (I've so far avoided MS even though I know I'd be getting paid almost 3x as much as I do in game development, because I love game development), but those people are a minority.

NVIDIA hiring

Posted Oct 7, 2013 21:18 UTC (Mon) by nix (subscriber, #2304) [Link]

I 100% guarantee you that NVIDIA has no trouble with finding qualified applicants for their software development just because of some Free-software purists balking at the company. I have more than a few friends who work or worked at NVIDIA these days. The biggest problem they (and many other software companies) have these days is that the US has a shortage of experienced developers and getting VISAs for foreign workers is a very slow process (often taking around 6 months between when a company decides to hire a person and when that person can actually show up to their first day of work).
Er, yeah. That would be why NVIDIA has sizeable development going on in other places (heck, I walked right past their Cambridge, UK office the other day). It's not restricted to hiring in the US!

NVIDIA to provide documentation for Nouveau

Posted Oct 2, 2013 19:06 UTC (Wed) by intgr (subscriber, #39733) [Link]

Apparently AMD also released docs for their newest graphics chipsets just now:
http://www.botchco.com/agd5f/?p=58


Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds