NVIDIA Driver Developer Discusses Linux Graphics 317
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.
Re:Measurement from the NVIDIA site? (Score:5, Informative)
This was mentioned in the article. They do find it troublesome to measure their Linux user-base due to this.
Re:Measurement from the NVIDIA site? (Score:5, Informative)
Q: Overall, what percentage of NVIDIA's customers do you believe use Linux?
I don't know many concrete percentages. Highend workstation visualization is roughly half Linux, and Digital Content Creation (DCC) is largely Linux. NVIDIA Linux graphics powers a respectable portion of the 3D workstations. Our CUDA user base also has a large Linux contingent.
However, the number of Linux driver downloads from nvidia.com is only 0.5% the number of nvidia.com Windows driver downloads. Of course, many Linux users get our driver through distro packages and other means that wouldn't be measured in that download figure.
Measuring the size of the NVIDIA Linux user base has always been a challenge for us.
Italics mine.
Re:Measurement from the NVIDIA site? (Score:5, Informative)
I used to go off to the Nvidia site to download the Nvidia drivers for my card, then manually installing the driver.
Then I read about DKMS packages in the repositories that I could install, so every time the Kernel got updated, the package for the graphics driver got automatically recompiled with that Kernel. I was unsure about trying it, but when I did I never looked back, it's been great. Never had to manually edit the xorg.conf file ever again (although I have a backup just in case it goes wrong).
Re:Measurement from the NVIDIA site? (Score:3, Informative)
Re:Ran ran ruu! (Score:5, Informative)
Re:Measurement from the NVIDIA site? (Score:3, Informative)
They're replacing the OpenGL libraries with their own proprietary binaries. Those are roughly 20 Megabytes: the kernel module is tiny.
Re:Measurement from the NVIDIA site? (Score:3, Informative)
Re:There's only two questions that matter (Score:4, Informative)
As someone who's worked for NVIDIA driver development, I can tell you that NVIDIA has no "beliefs" regarding open source at all, and most of the developers have no problem with it. I've had plenty of chats with folks there who were trying out Ubuntu, etc. A guy down the hall had a poster on his door of the linux kernel 0.1 source (I think from a Red Hat conference of some kind). The real reason they don't want to open-source the driver is because the driver is /massive/, and setting up the documentation and outlets for it would take time and effort away from their primary goal, which is staying on top of the market and satisfying as many customers as they can while doing so. And trust me, I don't care how good a dev team you've put together, if they simply dumped the driver code out on the net I guarantee no one would be able to reverse engineer the damn thing.
So yeah. If you can make a good case why it's in their interests to open source it, I bet they'd consider it more seriously. Don't make the mistake of anthropomorphizing a large company.
Re:Measurement from the NVIDIA site? (Score:3, Informative)
Well, Debian has Popcon [debian.org], but it's completely voluntary and off by default, so it's probably hard to tell for sure.
Re:Measurement from the NVIDIA site? (Score:5, Informative)
The film industry is mainly Windows and Linux, the larger the facility the higher the chance of it being a Linux house, but not always.
You hear "Macs make movies" so often and if anyone who doesn't work in the industry could see the state of things they would find the quote funny.
The main users of Apple products are producers and other pencil pushers running around with iPhones and Mac Pros, video files passed around during production are usually QuickTime files. Other than that a very limited amount of the business is anything Apple related. Final Cut is popular however its only one tool in the whole production chain and a facility doesn't need to equip everyone with a Mac just because its used. It is not uncommon to see a few Macs around facilities however you do not seem them in numbers.
I have only visited one all Mac based facility and even then they had RHEL dual booting macs. I can probably count on both hands how many visual effects studios I've seen or heard of that are all Mac based. Linux and Windows are no doubt the prominent players in the visual effects field. Linux isn't just on the backend either, plenty of facilities run Linux on the desktop and any one day there are thousands of artists typing grep and ls in a terminal somewhere. Its not just the bigger facilities either, plenty of smaller shops run Linux all around. If a facility isn't running Linux it most likely is running Windows.
Avids are used in editorial nothing more, so you do not see them in numbers. The Autodesk offerings have moved off Irix and are now HP/IBM Linux workstations.
Nvidia has the DCC market cornered with the Quadro line, I'm not going to get into the debate of whether they are wroth the price or not though. Even if a facility doesn't use Quadros in mass you can almost be certain the workstations have some sort of Nvidia card installed. Most applications in DCC are OpenGL based, since Nvidia has a track record of having a better OpenGL product, its not hard to understand why they might have a strong hold on the DCC industry.
Re:Hopefully this will put an end to some trolling (Score:5, Informative)
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.
Re:Ran ran ruu! (Score:3, Informative)
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.
Re:There's only two questions that matter (Score:3, Informative)
Actually, there's a pragmatic reason for open-source in preference to closed-source: it integrates much better with a Linux distro. I have an Nvidia card too, and setting it up isn't the easiest thing. As mentioned in the article, you can't just open the Nvidia graphical config program and reconfigure your display on-the-fly. I just installed a new monitor last night on Kubuntu and had to go through this. While the Nvidia graphical config program works, it can't save an xorg.conf file in /etc/X11 because it doesn't have permissions (it wasn't run sudo, since I just picked it from the "System" menu). So I had to save it in my home dir and manually copy it. Even then, it didn't work that well; I ended up running it three times I think, and getting three different xorg.conf files even with the same settings. I finally stumbled on one that works with my dual-monitor (TwinView) setup.
With open-sourced drivers and utilities, the community and distros are able to fix issues like this, and distros are able to much better integrate these things into their system. With closed-source stuff, there's only so much they can do, because they don't have access to the code, and even if parts of it were OSS (like the utilities), distros and the community are much less likely to expend any effort on them if the important parts are still closed-source.
The linkage between closed-source drivers and the kernel isn't all that reliable either. A lot of kernel symbols are exported with "EXPORT_SYMBOL_GPL", so proprietary drivers can't use them. Kernel devs aren't very friendly towards closed-source drivers, and when bugs show up involving closed-source drivers, they refuse to help (how can they? The code is secret), whereas with open-source drivers, they can debug the problem. So, there's a pretty big price paid in maintaining a closed-source driver.
And if you can't understand nVidia's position - e.g. maybe they really DO have some novel graphics processing pipeline in their software that provides them with a competitive speed advantage over the competition - then it's worth keeping it obscured. That's capitalism.
Nvidia isn't a software company, it's a hardware company. They sell graphics chips, which are used by OEMs like Giga-Byte and ECS to make graphics cards for the high-performance graphics card market. There's only one other vendor out there that's even remotely competitive: ATI (now part of AMD). I'm not a graphics expert, but honestly, what could they possibly be doing in software that makes their hardware run so much better? ATI doesn't seem to feel the same way, because they had no problem open-sourcing their drivers.
You can be damned sure that if I suddenly managed to come up with a novel algorithm for faster database transactions that I'd keep it secret, too, and then sell the hell out of it in competition with Oracle and DB2. Again, that's not bad, that's competition.
That's apples and oranges. Databases aren't sold bundled with hardware; they're a purely software product. Oracle databases don't require a special Oracle PCIe adaptor card; they run on any sufficient hardware and supported operating system. Nvidia isn't selling drivers, they're selling graphics cards. What's more, databases and other high-level software is very distinct from the OS and hardware it runs on. Even Oracle databases come in versions for every major OS: Windows, Linux, Solaris, etc. It's no big deal, if you're a Linux distro, if Oracle is open-source or closed-source. Heck, it's probably no big deal for Oracle to make .rpm versions of its products, targeted at specific RHEL and SLES versions, making installation just as simple as any open-source app. This isn't the case with a graphics driver, for the reasons I pointed out above. It really needs to integrate better with the distro, and that isn't possible if it's closed-source, unless Nvidia does the integration work themselves for each targeted distro (which they don't).
Re:I think the problem (Score:5, Informative)
For anybody that cares,this [yangman.ca] covers some of the complexity in a simple way.
Re:Measurement from the NVIDIA site? (Score:3, Informative)
I am working at Rhythm & Hues, which is about 95% Linux on the desktop (all SUSE). Windows is used to run scanners, Macs are used for painting.
I was also at Digital Domain, which is closer to 60% Linux on the desktop. There Windows is used to run Maya, and also for painting. Macs hardly used at all.
I also worked at The Foundry in London selling the Nuke compositing system. Sales are approximatey 1/3 each for WIndows, Linux, and OS/X, this is for the interactive version. Since that costs about 50x as much as a render-only version used by a renderfarm you can be pretty damn certain that shows the approximate usage on desktops and not your bogus "renderfarm" claim. Digital Domain gets theirs for free so they don't count, and R&H does not use Nuke so that is a huge collection of Linux that is not being counted. ILM and Weta are also huge users of Linux and they have site licenses so that may also not be counted.
Re:Measurement from the NVIDIA site? (Score:5, Informative)
Most people I know (I'm not going to talk about "Most people") end up downloading the drivers directly from the nVidia site when they are using windows.
When I'm on linux I never download the drivers from the nvidia site, I use rpm fusion (for fedora).
I would say that most linux users probably do this for one important reason: A part of the nvidia driver has to be compiled to the specific kernel version that you are running (uname -r), if you update your system, and you don't compile a new copy of the driver, you will lose all accelerated graphics support....It's a pain.
If you use a package repository, your kernel will be held at the supported version for the nvidia driver, until the nvidia driver gets recompiled against your kernel. The people over at rpmfusion are pretty fast about doing this, so, you end up getting your kenel updates delayed by a few hours, in the same day.
Re:There's only two questions that matter (Score:3, Informative)
My next purchase will be AMD/ATI as soon as the drivers give me performance that match NVIDIA.
OpenGL support in ATI is crap. never buying their stuff again.
Re:And don't forget the NVidia non-user base (Score:5, Informative)
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?
Re:Measurement from the NVIDIA site? (Score:1, Informative)