NVIDIA Driver Developer Discusses Linux Graphics
An anonymous reader writes "Andy Ritger, who leads the NVIDIA UNIX Graphics Team responsible for creating drivers on Linux, FreeBSD and Solaris, has answered many questions at Phoronix about the state of Linux graphics, gaming, and drivers. Ritger shares some interesting facts, such as: the Linux graphics driver download rate is 0.5% that of their Windows driver downloads at NVIDIA.com; how the Nouveau developers are doing an incredible job; creating an AMD-like open-source strategy at NVIDIA would be time intensive and unlikely; and development problems for the Linux platform. Also commented on are new features that may come to their Linux driver within the next twelve months." Like all stories at Phoronix, in common with most other hardware review sites, this one is arbitrarily and maddeningly spread across 8 pages.
I download my Nvidia drivers from the Archlinux package repository. How many Linux users manually download them from Nvidia? The 0.5 percentage could be a big understatement...
Who is going to be the first to just grab the .txt from the article with the pictures and supply it in a common format for all these sites?
What was the topic again? I have ADD and got distracted somewhere.
--- We need more Ron Paul!
Q: Are there any plans in place to provide new features within the xf86-video-nv driver or to better engage with the Nouveau developers for some open-source support?
With the nv driver, we've always tried to provide something minimal that just works out of the box and requires the least maintenance. For that reason, feature set in the nv driver has stayed pretty slim.
The guys working on nouveau have done a really incredible job so far. However, our policy remains the same: we won't try to hinder their efforts, but we have no plans to help them.
Scumbags.
Q: AMD was able to open source and/or document a lot by separating out the parts they couldn't legally disclose. Similar problems have been cited as preventing NVIDIA from open sourcing their driver (licensed 3rd parts code, etc) or documentation. Could nVidia use the same strategy?
A similar strategy might be technically possible for NVIDIA, but for better or worse I think it is quite unlikely. There are several reasons for this:
- For competitive reasons on other platforms, I don't think we would ever open source any of our cross-platform driver source code (which is 90%+ of the Linux driver... see my earlier description of code sharing). The Linux-specific pieces of the driver code base don't really stand on their own, and generally need to change in sync with the cross-platform code, so I don't believe it would be practical to just open source the Linux-specific pieces.
- We have developed substantial IP in our graphics driver that we do not want to expose.
- Unfortunately the vast majority of our documentation is created solely for internal distribution. While at some point it may be possible to release some of this information in pubic form it would be quite a monumental effort to go through the vast amounts of internal documents and repurpose them for external consumption.
Yes, and there's a whole community that would like to help you do that. That second answer is the real point here. They don't want to open source it because they don't believe in open source. It's that simple. Hopefully this will kill the last of the NVIDIA apologists.
How we know is more important than what we know.
While likely accurate, you also forget that Windows users are much more likely to have no clue what they are doing and not be downloading any drivers because they aren't in a car.
I'd like the authors of some common troll s to note:
a) The most high profile binary kernel module distributor considers the unstable kernel API to be very little trouble.
b) One of the most high profile X driver cerators thinks that X is well designed.
so there.
SJW n. One who posts facts.
One powerful reason for the low Linux download rate is because the packaging for the NVidia Linux drivers is terrible. It doesn't upgrade properly, it replaces system provided OpenGL libraries with little warning, and it has lacked (the last time I looked) a way to detect if there is a more recent driver available. Instead, people install the freshrpms or atrpms or other repositories that report dependencies and available updates more reliably for RedHat based software,
I shouldn't have to compile a kernel module in order to install a software package: it should be published, or at least publishable, along with the updated kernel itself. But NVidia refuses to use licensing that would permit this, so they're going to continue to have people not only using alternative installation sources, but becoming quite angry when they update their kernels and their graphics drivers from NVidia stop working until they can be recompiled and a new kernel module built.
From page three:
Ever the child... I must admit it made me snigger...
From what I understand, NVIDIA's driver architecture is significantly different. The NVIDIA driver replaces most of the X graphics stack, whereas fglrx and ATI's open-source projects have always tried to work mostly with the X11 system. Personally, I prefer ATI's approach, and spend all my GPU and CPU money with them any more.
My blog. Good stuff (when I remember to update it). Read it.
Both Intel and AMD own their own respective graphics chipset. Intel, AFAIK, developed their own integrated graphics chipset, mostly, and AMD purchased ATI.
Both Intel and AMD support the free software community far better than Nvidia. Both Intel and AMD are racing to integrate video graphics into their respective CPUs. With the graphics chip integrated into the CPU, Nvidia gets locked out.
Nvidia's only remaining market niche, as I see, is extremely high end graphics. Intel's and AMD's graphic offering, at the moment, lag Nvidia's, somewhat. Someone who needs all the rendering power they could get would not have Linux support as a major bullet point, as I see. They'll be quite content to using Nvidia's drivers on either Windows or Linux, depending on their software, with Nvidia's nature as a binary blob under Linux being of little concern. That's the only market niche I see remaining for Nvidia. Both AMD's and Intel's product lines, although not as powerful as Nvidia's, are perfectly fine for the average user and/or gamer. With out of the box support in current Linux distros for Intel's hardware (mostly already the case today), or AMD's hardware (eh, maybe tomorrow), Nvidia's outlook there is not too bright.
0.5 percent well if thats the only matrix they go by,then every distro should make you download it from there each time you install.
Dont include it any more.
Personally I will withhold judgement until I know who exactly will be releasing the information. It just might become something that you do want to see.
Wait - you're expecting mere FACTS to dissuade trolls? You must be n.... wait a minute.
It is interesting then that ATI gfx drivers have generally been a pain in the ass to use in Linux, while Nvidia's work well most of the time.
Don't take life so seriously. No one makes it out alive.
Saying that NVIDIA think the unstable kernel API being "very little trouble" is a little understated. What they actually say in the article:
1) The lack of a stable API in the Linux kernel. This is not a large obstacle for us, though: the kernel interface layer of the NVIDIA kernel module is distributed as source code, and compiled at install time for the version and configuration of the kernel in use. This requires occasional maintenance to update for new kernel interface changes, but generally is not too much work.
That said, the kernel API churn sometimes seems unfortunate: in some cases, working interfaces are broken or replaced with broken ones for no seemingly good reason. In some other cases, APIs that were previously available to us are rendered unusable.
Is that you get people who've toyed with writing a driver for something simple, and get lulled in to thinking that means that all drivers are not a huge deal. Problem is that's not the case. Something like a basic SATA controller really doesn't have a whole lot in the way of functionality for you to implement to get a driver up and working. You can see this in terms of downloadable driver sizes too. Take a look at something like the MegaRAID cards from LSI. The actual driver is all of 25k.
Well that's not the case with graphics cards. They are extremely complex beasts, and getting more complex all the time. You are working to implement a very complex API (OpenGL). As such the driver is going to be much more complex. You can again see this in terms of driver sizes. The core nVidia driver for my 7950 here at work is 16MB. That's just the main driver file, there are other support files it needs to work, and then more files on top of that to really give you all the functions you want (like the custom control panel and such).
So it is a much harder job. It is also a continually moving target. As of this month, we now have a new generation of graphics hardware out that has major differences. The DirectX 11 gen hardware (Radeon 5000 series) is quite different from the previous gen in terms of what it can do. As such the drivers are going to be different. It isn't a case of "Just update the old drivers for the new hardware." It is writing drivers to support a whole new set of features.
Thus I think you get people who have this "Oh it isn't so hard," idea because they've played with the simple stuff. Ya well, sorry guys this isn't simple. In fact, I'd wager graphics drivers are the most complex drivers on systems these days.
As such I can see why nVidia isn't impressed. It isn't a case of "Just give us the docs and we'll knock out a dynamite driver in a week." They might like to pretend that is how it'll be but it's not.
The pain-in-the-ass ATI drivers were closed source and used the binary only kernel module fglrx. They did a poor job of keeping it aligned with the kernel releases of different distributions. The closed source xorg driver fared slightly better, but was still lagging behind the xorg mainline sources. Since xorg integrated the open source Radeon 9600 driver I haven't had to bother installing any closed source drivers, and my system has been more stable. It just works.
What, no preference? Heretics!
[/sarcasm]
This post contains no rudeness or derision of any kind. All arguments are friendly. Terms and exclusions may apply.
Sucks to be you. I had no problem with the hd3200 in my tx2524, even doing output to an external monitor or my tv. Granted, if you have two different screen resolutions it's very hard to discover that you need to set a virtual desktop that can encompass both together.
I was a little wary in the beginning remembering the hell that was trying to get an ati all in wonder card trying to work in the past, have to say i was pleasantly suprised this time around. Only thing i wish they had was hardware accelerated video decoding, though it handles hdtv no problem.
I install the Nvidia X server once on a box and leave it. If it has trouble, then I'll update it. Translation: very rarely. I install the Nvida drivers on my windows partition (on the same box) an average of once per month. Because I either just reinstalled windows (again) or I'm trying to fix a compatibility issue (again.) So yeah, that ratio surprises me.. well, none at all.
-Troll, Flamebait, and Offtopic are NOT equivalent to disagreement.
Another example of dogma over practicality. 99.9999999999% of users have no use for the source code and could care less if it was available. Who cares if the source code for the driver is available AS LONG AS THEY HAVE A DRIVER AND IT'S FREE!!! And by free I mean "does not cost money".
Personally I think it's a mistake to choose an inferior product simply because it does not have the source code available which most people will never need, look at or use. But of course you are free to make that choice.
I'm a big proponent of open source but this is one of those issues where the purists bite off their nose in spite of their face. It threatens to drive away companies that have the temerity to support Linux in a way other than what the purists believe.
That's my rant for the day.
Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
You're so convinced that preference for open source software is a question of "dogma" espoused by "purists" that you haven't stopped to consider the practicalities of the issue. When it comes to drivers on Linux, proper open source releases have huge practical advantages:
When it comes to graphics drivers, these issues are mitigated to a large extent by the fact that Nvidia and ATI have very active driver teams that keep up with things. There are still some advantage to Intel graphics from open source drivers: you'll never have to worry about picking "old" or "new" driver packages like Nvidia for example. Having the option to one day run OpenBSD is another. But, in general, using Nvidia or ATI blobs on Linux is reasonably painless.
The same is absolutely not true for any other kind of hardware. Proprietary network drivers, RAID drivers, printer drivers, or webcam drivers are simply a nightmare - much better to get something with in-kernel drivers that will just work out of the box. The manufacturer *will* forget about you and leave you stuck on random old kernel revisions limping along with an unsupported driver.
-- The act of censorship is always worse than whatever is being censored. Always.
The "dogma" is that it absolutely has to be open source. Everything you've mentioned can also be addressed by a freely available hardware spec without requiring the release of the source code. There's more than one way to skin a cat (apologies to any cat lovers out there) but the purists won't settle for anything less than the source code.
Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
You keep telling yourself that it's just because we're dogmatic. I'll add an anecdote in the meantime.
I was in a similar selection dilemma as the original AC and ended up selecting Intel graphics (Thinkpad X61s) because I knew it would just work and I could use the kernels from the distro I've chosen.
I later found out that the whole linux development team had individually made the same decision (not picked the same machine, but all went for Intel graphics).
I'd also like to point out that "Everything you've mentioned can also be addressed ... without requiring the release of the source code" is a totally laughable idea when you present it without details. As an example how do you expect the community to be able to fix bugs and keep old drivers up-to-date (two of GPs points) when the source is not available?
As an example how do you expect the community to be able to fix bugs and keep old drivers up-to-date (two of GPs points) when the source is not available?
A real community would be dedicated enough to write binary patches. Only pussies use compilers.
When information is power, privacy is freedom.