Slashdot Mirror


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.

29 of 317 comments (clear)

  1. Measurement from the NVIDIA site? by Lord+Lode · · Score: 4, Insightful

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

    1. Re:Measurement from the NVIDIA site? by otravi · · Score: 5, Informative

      This was mentioned in the article. They do find it troublesome to measure their Linux user-base due to this.

    2. Re:Measurement from the NVIDIA site? by ustolemyname · · Score: 5, Informative
      Quote from the article:

      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.

    3. Re:Measurement from the NVIDIA site? by Wowsers · · Score: 4, 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).

      --
      Take Nobody's Word For It.
    4. Re:Measurement from the NVIDIA site? by sakdoctor · · Score: 4, Funny

      I just checked the nvidia site for the first time for linux drivers.

      Operating System: Windows Server 2003 64-bit, Windows XP 64-bit
      File Size: 123 MB

      Operating System: Linux 64-bit
      File Size: 21.2 MB ...What?

    5. Re:Measurement from the NVIDIA site? by Mad+Merlin · · Score: 4, Funny

      I just checked the nvidia site for the first time for linux drivers.

      Operating System: Windows Server 2003 64-bit, Windows XP 64-bit File Size: 123 MB

      Operating System: Linux 64-bit File Size: 21.2 MB ...What?

      Clearly Linux is 6x more efficient than Windows.

    6. Re:Measurement from the NVIDIA site? by Anonymous Coward · · Score: 5, Funny

      No, Windows is better value. You get 6x as much driver for your money.

    7. Re:Measurement from the NVIDIA site? by nrgy · · Score: 5, Informative

      I think you have it wrong and I'm writing this at Sony Pictures Imageworks on a CentOS box.

      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.

    8. Re:Measurement from the NVIDIA site? by Miamicanes · · Score: 4, Insightful

      > So why are those goodies disabled under Linux?
      > Come on NVIDIA, just release the specs and let us write our own damned drivers eh?

      It's not so much that they're "disabled", as a case of being "not implemented". The problem is that the line between what's a hardware capability and what's implemented mainly at the driver level through software is increasingly blurred. Just to give a familiar example, look at a PCI Winmodem. At the end of the day, a Winmodem is basically a PCI soundcard that's hardwired to a phone jack and optimized for PSTN-level voltages & impedance. Someone like Conexant could flawlessly document how to use the chips on one of their Winmodem cards to generate and sample audio, and it wouldn't do a thing to help anyone actually make the card act like a 56k modem under Linux. Someone has probably done it by now, but back when it would have actually still mattered (circa 1999-2000 or so), there was no such thing as an open-source Linmodem driver for that precise reason. Documenting the hardware was necessary, but even fully-documented, it would have only gotten you ~2% of the way towards the ultimate goal of *being* a software-defined modem.

      There's another problem with video drivers -- patents. As a practical matter, everyone in the industry violates at least one patent belonging to the other big players, and they're *all* sitting ducks for every patent troll who comes wandering along. If NVIDIA were 100% altruistic, fully implemented every Windows feature into their Linux drivers, and released the full documented source code to their proprietary Linux drivers, they'd essentially be painting a red target on their forehead and making the patent trolls' fishing expeditions that much easier. It's sad, but it's true.

    9. Re:Measurement from the NVIDIA site? by Sillygates · · Score: 4, Informative

      "Most" users use intel integrated graphics (probably especially the ones that don't actually care about graphics)....

      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.

      --
      I fear the Y2038 bug
  2. There's only two questions that matter by QuantumG · · Score: 3, Insightful

    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.
    1. Re:There's only two questions that matter by smellsofbikes · · Score: 4, Funny

      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.

      I wonder how far back that particular typo goes, although I'm too lazy to find out. Regardless, it's a funny mental image.

      --
      Nostalgia's not what it used to be.
    2. Re:There's only two questions that matter by Anonymous Coward · · Score: 5, Insightful

      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.

      No it won't. I have dual 9800s and it runs WoW like a champ (read: no spontaneous system resets or strange/spurious bugs.) I'm unlikely to change to a card with an open source driver anytime soon, because what I have right now works.

      I'm really mystified by this attitude - if a company produces a stable, reliable product with closed software and the market is willing to pay for it, what difference does it make? It's not like they are charging $$$$ for crappy product, like, say, Windows. 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. (Speculation: some of their binary code dynamically optimizes an FPGA on board for better performance.) 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.

      Don't get me wrong, I doubt that 95% of the code that is closed is actually worth closing. It really might be that last 5% scattered everywhere that warrants keeping it closed.

    3. Re:There's only two questions that matter by Anonymous Coward · · 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.

    4. Re:There's only two questions that matter by Kjella · · Score: 4, Insightful

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

      Oh, STFU and volunteer yourself to go write open source AMD drivers. They've been running an open source strategy now for 2+ years and they're still short on manpower even though there's plenty specs out there and AMD is actively leading the development on top of the hours they've spent getting the documentation through legal review. There's plenty evidence to suggest the open source drivers would drop dead if AMD wasn't carrying them every step of the way, you think nVidia is impressed? The alleged army of open source coders waiting for specs is more like a handful, that's not a claim it's a fact. By all means they're making great progress and all that but they're way, way behind the blobs still.

      --
      Live today, because you never know what tomorrow brings
    5. Re:There's only two questions that matter by skine · · Score: 3, Funny

      I'm sorry you feel that way.

    6. Re:There's only two questions that matter by petrus4 · · Score: 3, Insightful

      I'm really mystified by this attitude - if a company produces a stable, reliable product with closed software and the market is willing to pay for it, what difference does it make?

      The reason why you can't understand this attitude, is because you're not a Stallmanite freetard.

      You're essentially correct; from any sane, neurotypical point of view, there's absolutely nothing wrong with nVidia's hardware or its' drivers being proprietary whatsoever.

    7. Re:There's only two questions that matter by RiotingPacifist · · Score: 3, Interesting

      Sure the radeon/radeonhd drivers are in need of help, but most radeon developement is being done by two non-ATI guys.
      Sure the 3D rendering is behind the blobs, but not that far behind [1]
      And the 2D drivers are faster
      And in my experience way more stable (outside of KMS issues i have had 0 crashes under radeon, the same could not be said for catalyst or nvidia drivers)

      The reality is that for everyday use*, ATI cards now work out of the box on linux with rock solid stability this is not the case for nvidia, and it's just a matter of time till the 3D support catches up with nvidia's and firmly place ATI cards as #1 choice for Linux users (if its not already)

      *call me old fashioned, but i don't consider compositing part of that.

      --
      IranAir Flight 655 never forget!
  3. Hopefully this will put an end to some trolling. by serviscope_minor · · Score: 5, Insightful

    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.
  4. Lies, damn lies, and download rates by Antique+Geekmeister · · Score: 3, Insightful

    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.

  5. Re:Ran ran ruu! by PitaBred · · Score: 4, Informative

    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.

  6. Nvidia facing obsolescence by mrsam · · Score: 5, Interesting

    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.

  7. Re:Hopefully this will put an end to some trolling by _Sprocket_ · · Score: 3, Funny

    Wait - you're expecting mere FACTS to dissuade trolls? You must be n.... wait a minute.

  8. Re:Ran ran ruu! by jim_v2000 · · Score: 4, Insightful

    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.
  9. Re:Hopefully this will put an end to some trolling by thue · · Score: 4, 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.

  10. I think the problem by Sycraft-fu · · Score: 5, Insightful

    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.

    1. Re:I think the problem by RiotingPacifist · · Score: 4, Informative

      For anybody that cares,this covers some of the complexity in a simple way.

      --
      IranAir Flight 655 never forget!
  11. Re:And don't forget the NVidia non-user base by Chandon+Seldon · · Score: 4, Insightful

    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:

    • They can be distributed with distros without anyone needing to jump through weird hoops.
    • They can be maintained in-kernel, so they work with new kernel releases automatically.
    • They can be fixed by the community, so they have fast turnaround on annoying bugs and favorite features.
    • If the device manufacturer doesn't keep up with them, they don't instantly code rot.
    • They can be integrated with other standard code, so they do all the normal stuff without anyone needing to re-invent the wheel.

    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.
  12. Re:And don't forget the NVidia non-user base by koiransuklaa · · Score: 4, 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?