Slashdot Mirror


Torvalds Slams NVIDIA's Linux Support

New submitter jppiiroinen writes "Linus Torvalds received the Millennium prize last week for his work on Linux operating system. He was already in Finland, so Aalto University arranged a talk session with him (video). During the Q&A, a person asks why NVIDIA does not play well with Linux. Torvalds explained shortly that NVIDIA has been one of the worst companies to work with Linux project — which makes it even worse that NVIDIA ships a high number of chips for Android devices (which use Linux inside). Torvalds even summarized that ('Nvidia, f*** you!') in a playful manner. What has been your experience on NVIDIA drivers with Linux?"

34 of 663 comments (clear)

  1. Problems? Really? by certain+death · · Score: 5, Insightful

    I haven't had problems with NVIDIA cards since Redhat 5.2. ATI on the other hand...every time I try to install Linux on a laptop with an ATI video card, I end up having to futz with it for hours to get it to work.

    --
    "My immediate reaction is "WTF? What kind of moron doesn't make things 64-bit safe to begin with?" Linus
  2. Re:THEN YOU DO IT MISTER HIGH AND MIGHTY !! by queazocotal · · Score: 5, Insightful

    You can't code reliably for complex hardware without specifications.
    Which are not released.

  3. Re:Problems? Really? by Torp · · Score: 5, Insightful

    Nvidia cards are the only way to reliable game on Linux, either natively or through wine. Look at the winehq.org appdb for any game, then notice how most reported problems are on Ati video cards.
    Case closed, unfortunately.
    I have no experience with arm nvidia graphics drivers though.

    --
    I apologize for the lack of a signature.
  4. Re:THEN YOU DO IT MISTER HIGH AND MIGHTY !! by houstonbofh · · Score: 5, Interesting

    It does tick me off a bit... NVIDIA was the FIRST graphics company to really come out and support Linux across the entire line. They have consistently made binary drivers in a realistic time frame when new hardware comes out. While all the rest were saying BS about licensing and proprietary codecs, Nvidia just made the damn drivers. Now that is not good enough.

  5. Compromises by Wowsers · · Score: 5, Insightful

    I have had to make a compromise in using the Nvidia driver. It's a "black box", so you don't know what is in it or how others might be able to improve on it, but on the other hand, it does the 3D work for stuff like KDE, Google Earth or 3D games like Brutal Chess or BZflag.

    In Mageia, there is the Nouveau free driver, it works very well for 2D stuff, but does not work for 3D stuff.

    So it depends on your requirements, and how wedded you are to the "Free" concept. Having said that, if there was a free driver that does 3D on Nvidia cards, I'd take it.

    --
    Take Nobody's Word For It.
    1. Re:Compromises by Anonymous Coward · · Score: 5, Insightful

      And when people use that tool to make you do things you don't want, then remember what you agreed to. But it's not a religion, so that makes it okay.

    2. Re:Compromises by rtfa-troll · · Score: 5, Insightful

      To me, computers are a tool, not a religion. So I am OK with a "black box" that works better than an "open box" any day.

      The tool analogy is great and people often make it. There's alot of sense to it. As long as you are only involved in very basic or simplistic consumer level computing, that is fine. However, if you think in terms of cars, there comes a point where any serious use ends up wanting to travel long distances, wanting to travel through wild areas and wanting to transport non standard goods. At that point, you want a car where you know you can find spares. You want a vehicle where you know that in every little village in Azerbaijan you will be able to get a person who can fix your car.

      With things like device drivers and graphics, you will come accross strange problems where a piece of code outside the device driver interacts with a piece inside in an unexpected way. If you have the source to both, you will be able to debug that problem much more easily. This means, that your normal programming team will be able to see what's gooing wrong and, most likely, find a work around even if the bug is inside the device driver and they aren't capable of fixing it. It's similar to having a vehicle where the local service people are able to swap and replace parts themselves, rather than one where you have to have it taken back to the original manufacturer to make every fix.

      It's good to think about computers as tools, but you have to understand that they are more like fully automated drilling machines than like simple screwdrivers. Even if you personally don't have to understand them, someone else likely will. If you bought a drilling machine, you would expect to get the service manual with it. The source code serves in the same way in software and you should insist on it for anything you rely on.

      There is another important difference; with computers one solution tends to end up as the basis for another more complex one. The solutions add and add, often without much review or chance to rebuild. This means that even if a system seems like a one time non business critical solution, you should always bear in mind the possibility that something else more important gets layered on top of it later.

      --
      =~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();
  6. Re:Puzzled by Anonymous Coward · · Score: 5, Insightful

    The actual question that led to the 'Fuck you, NVIDIA' was about hybrid graphics on laptops I believe, which are currently not usable(?)/supported by NVIDIA under Linux, that's was the problem I believe. I recommend rewinding the video a bit for more context.

  7. Re:Problems? Really? by RedK · · Score: 5, Insightful

    Linus isn't talking about gaming, performance or anything else like that. The point is : nVidia ships a binary blob and an obfuscated source portion that needs to be built outside of the vanilla kernel. That is what Linus is talking about, nVidia's lack of cooperation with the kernel people at integrating their drivers into the main line kernel in a way that respects the project's goals and visions.

    Why you people are discussing the performance when that is not at issue, I have no idea. It was all pretty clear to me what Linus meant.

    --
    "Not to mention all the idiots who use words like boxen."
    Anonymous Coward on Monday August 04, @06:49PM
  8. Re:Problems? Really? by Junta · · Score: 5, Funny

    Both systems duel boot the OSs.

    Well there's your problem, having your OSes walk 10 paces, turn around, and shoot each other is bound to lead to problems. I would suggest trying to dual boot instead.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  9. Re:Problems? Really? by Richard_at_work · · Score: 5, Insightful

    Why should Nvidia subscribe to the projects "goals and visions"? Thats the projects concern, not theirs.

  10. Re:THEN YOU DO IT MISTER HIGH AND MIGHTY !! by Lonewolf666 · · Score: 5, Informative

    AMD provides specifications and a small developer team that actually works on open source drivers.
    Intel provides open source drivers.

    NVIDIA makes good binary drivers, but those have problems when a new kernel version comes out with changed interfaces:
    Only NVIDIA can adapt them, and until they get around to it, NVIDIA may not work with the latest kernel version.

    --
    C - the footgun of programming languages
  11. Re:Problems? Really? by RedK · · Score: 5, Insightful

    Hence why it's Linus (the project lead) that's talking about it ? He's voicing his concern... I don't get what you're even trying to get at here...

    --
    "Not to mention all the idiots who use words like boxen."
    Anonymous Coward on Monday August 04, @06:49PM
  12. misleading headline by Anonymous Coward · · Score: 5, Informative

    Linus did give Nvidia the bird and a "fuck you" but he never slammed the quality of the Nvidia's hardware. His gripe with Nvidia is how hard it is for Linux to work with the company since they only provide a binary blob driver which makes bug fixing for it dependent on Nvidia's whims. Plus they refuse to even provide specs and API's for their hardware which make writing open drivers much more difficult and time-consuming because of having to reverse-engineer everthing to get a workable driver. In this case, Linus is absolutely correct.

  13. Re:THEN YOU DO IT MISTER HIGH AND MIGHTY !! by houstonbofh · · Score: 5, Insightful

    I suspect your definition of "realistic time frame" is a bit different than some people (especially those who consider Linux their primary OS, and won't touch Windows).

    I only run Linux on my desktop, laptop, media PC, and work PC. Also, my fiancée only runs Linux. Last time I rebuilt my Desktop, about a year ago, I used a GTX550Ti, and the drivers were prebuilt in a PPA for Ubuntu.

    When I buy new hardware, I wouldn't want to wait months/years to use it... So nVidia clearly considers Linux a second-class citizen, which may be OK for you, but not for some.

    Everyone considers Linux a second-class citizen. nVidia just threats their second class better than most. Even HP takes a while to release drivers for new printers...

    It doesn't mean that the companies are any better - but nVidia's "high road" as you make it out to be really just makes them the bottleneck when it comes to hardware driver support. It puts them in a position where they MUST create the drivers in a timely fashion, because there is no other choice.

    Whereas, with other vendors, the existing reference drivers can often be fiddled with to gain partial support for new hardware, and as specifications are released, anyone with the know-how can begin adding support for that hardware - the bottleneck becomes the availability of talent and motivation.

    So that is why the ATI drivers are so amazing, and support the latest stuff! No, wait a minute... They only support a narrow range of product before they fall off, and you get the 2D only version.

    Anyhow, I take a different road - I avoid high-end graphics hardware entirely, and since I'm not a "gamer", it doesn't matter to me. I just use hand-me-down hardware that people give me and I'm content with it - but I do usually favor AMD's graphics chips since they are more open by nature.

    For someone not that interested in graphics drivers, you sure have a strong opinion. And actually, for your case, I would recommend Intel over ATI. PErhaps because to me, graphics are important, and stability more so.

  14. Re:THEN YOU DO IT MISTER HIGH AND MIGHTY !! by rajafarian · · Score: 5, Informative

    I think you and many here misunderstood what Linus was talking about. Linux specifically said NVIDIA is one of the worst companies with whom they worked. Period. There is no need to bring up ATI into the table. There is no need to bring up that your card has always worked beautifully. This is talking about his and the kernel maintainer's experience in dealing with hardware vendors, something that we ourselves never have to deal with. Their proprietary drivers may be the best ever but that has nothing to do with!

    If the kernel maintainers have a question about the hardware, they can't ask NVIDIA they have to test and reverse engineer to find the answer whereas with other companies, they may get an answer directly from the manufacturer. Get it? "...NVIDIA just made the damn drivers. Now that is not good enough." Not from a kernel maintainer's or Stallman's point of view, I'm pretty sure.

  15. Re:Alot better than ATI by Microlith · · Score: 5, Insightful

    Quick, let's lash out at Linus!

    he is starting to get that syndrome where everything out of his mouth makes you want to roll your eyes and ignore him

    You've obviously never had to deal with a shitty company before. Nvidia interacts heavily with the Linux world, but any attempts to accomplish things if you aren't a direct customer buying millions of chips from them is goddamn impossible. It's not just getting sources, it's just making shit work and having to deal with the fact that a prominent company whose technology gets used in so many platforms causes you no end of trouble (bug reports, workarounds, etc.) but they won't assist or aid you in the slightest. On top of being entirely closed source. You can't ignore the issue entirely, but your hands are tied in terms of how you can actually look into and resolve a problem.

    So yeah, Nvidia cranks out Linux drivers that work decently well. That doesn't make them immune to criticism, especially not at the level Linus probably has to deal with them at.

    But hey, Slashdot is rapidly becoming very, very anti-Linux so why not?

  16. Re:Problems? Really? by GreatBunzinni · · Score: 5, Informative

    Why should Nvidia subscribe to the projects "goals and visions"? Thats the projects concern, not theirs.

    NVidia isn't required to, as you put it, "subscribe to the projects goals and visions".

    But Linus Torvalds is also not required to enjoy or approve of NVidia's policies, particularly when they generate bad publicity for Linus Torvalds' project and also cause a number of people to complain to Linus Torvalds about a problem which he didn't caused nor can he do anything at all about it. Hence, a very appropriate and sorely required "Fuck you, NVidia".

    --
    Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
  17. Re:Problems? Really? by myrdos2 · · Score: 5, Insightful

    If it costs them money to support Linux and they're damned if they do, damned if they don't, then what incentive is there to continue even supporting them at all?

    Because they feel the Linux market is worth supporting. They don't do it to make Torvalds happy.

  18. Re:THEN YOU DO IT MISTER HIGH AND MIGHTY !! by Anonymous Coward · · Score: 5, Insightful

    If I were nvidia, i'd be glad to make drivers. An unusable card does not sell very well.

  19. Re:Problems? Really? by UnknowingFool · · Score: 5, Insightful

    The problem isn't that nVidia doesn't put out functioning binary drivers. They do. Their binary ones are much better than ATI ones IMHO. The problem is that the binary drivers don't always survive kernel updates So people who rely on nVidia's proprietary binary drivers can't always update their kernel or they lose their graphics until nVidia puts out an update. Now, there are open source drivers for nVidia that get updated with every kernel update; however, nVidia does not put out enough specifications so that these drivers are able to use full card functionality like full 3D acceleration. It wasn't until recently that the open source drivers have been able to reverse-engineer some of the functionality.

    --
    Well, there's spam egg sausage and spam, that's not got much spam in it.
  20. Re:Problems? Really? by Anonymous Coward · · Score: 5, Informative

    > If it costs them money to support Linux and they're damned if they do, damned if they don't, then what incentive is there to continue even supporting them at all?

    It doesn't.
    I think people nowadays just don't understand what Linux is anymore.
    This discussion has nothing to do with desktop, performance or even servers.
    Nowadays, Linux is shipped on 900000 phones every days and that's a very lucrative business.
    Nvidia has a share of this with its Tegra chips but their way of supporting it makes it a pain in the ass for others inside the kernel development community.
    From that point, Linux complaining is totally fair. PR is basically his only weapon.

  21. Re:THEN YOU DO IT MISTER HIGH AND MIGHTY !! by UnknowingFool · · Score: 5, Informative
    Your quote:

    It isn't NVIDIA's job to make drivers for someone else's OS.

    If nVidia does not make drivers for someone else's OS who, how do they make it for? They don't have their own OS. Their entire business relies on someone else's OS. So does nVidia make drivers for Windows and OS X or not?

    --
    Well, there's spam egg sausage and spam, that's not got much spam in it.
  22. Re:THEN YOU DO IT MISTER HIGH AND MIGHTY !! by GPLHost-Thomas · · Score: 5, Insightful

    Nobody asked Nvidia to do any driver. Linus is here complaining that they aren't COOPERATIVE. That's very different. Besides that, yes, it should be Nvidia's job, since they are the ship makers. Also, they do use Linux themselves. So they just take, and don't give, which isn't fair.

  23. Re:Problems? Really? by sjames · · Score: 5, Informative

    Nvidia drivers were actually the driving force behind the concept of kernel tainting where an oops dump reports that non-free modules were in use. Nvidia drivers were creating a huge number of oops reports that couldn't be debugged due to being closed source.

  24. In defence of Linus by Anonymous Coward · · Score: 5, Interesting

    I like Linus. He speaks his mind, and that is good. He does not strive to be a politically correct suck-up like most of the soulless corporate speaking heads you see all over the place.

    He has every right to say "Nvidia, fuck you". How should his message be sugar-coated? Should he write a 500-page NY Times bestselling book about the matter? Hold a seminar? Issue a press release? Have a meeting with Nvidia CEO, CTO and CIO, presenting empty Powerpoint fluff and wanking around the issue in such abstract terms that it can be interpreted in any which way, after which everyone thinks they've done their part but nothing happens as a result? No. It suffices with three small words. Why waste more time and effort? To not hurt someone's feelings? Don't be such a baby.

    I think part of how Linus comes through as he does is a cultural thing. Although he has lived in the USA a lot, he's still a Finn. If you need to deliver a message to someone who is not behaving, you deliver a message, wrapping it up in a pink box with a greeting card full of hearts is pointless. And let's face it, Nvidia hasn't been a model citizen - if you're a dick, don't be surprised that others are dicks towards you.

    And you ask: what incentives does Nvidia have to support Linux? Well, how about not making life hard for the people who pay actual real money for Nvidia's products? And not making life hard for the people who try to support the Nvidia products on a great OS on their free time?

  25. Once upon a time by symbolset · · Score: 5, Informative

    This story starts more than a decade ago. There was a hugely popular software vendor concerned that maybe one day people might choose to not use their software. They had vast sums of money and controlled access to the immediate future for software and hardware vendors alike.

    Foreseeing a potential difficult future they chose to defend themselves in a particular way. They formed subsidiaries they controlled and gave them patents, and filled them with developers skilled in the finer (and secret) nuances of how to interact with their software, and they kept them informed with advance knowledge of how it would work in the future.

    These subsidiaries approached hardware designers with a simple message: they would accept the patented technologies and use them; they would let the subsidiaries write the drivers that had special hooks into the software; they would do this under non-disclosure and never tell - or they wouldn't. If they accepted they would not be able to publish open specifications about how their own hardware worked because that would be exclusively cross-licensed with the subsidiaries in exchange for access to the patents. The hardware makers who wouldn't play along wouldn't get as good compatibility with the big company's software, nor inclusion in their distribution CD and OEM images. The refusers would be plagued with difficult installation, buggy drivers and unhappy customers and fail in the market. The software would change in ways the refusers could not predict, but the accepters could. Some accepted, and some refused. Those who accepted survived, those who refused mostly died.

    This has continued to the present day and as the hardware has evolved the agreements persist in ways that are now not removable.

    Nobody involved in Linux wants hardware manufacturers to write the device drivers for them. They only want open and clear specifications for how the hardware works so they can make their own drivers. They aren't going to get that from NVidia, nor ATI, nor any others whose technology is intertwined with this compromise from yesteryear. This boon is now beyond their ability to grant without starting again from the beginning.

    --
    Help stamp out iliturcy.
    1. Re:Once upon a time by symbolset · · Score: 5, Interesting

      I was looking for an excuse to expand on this already overlong story but didn't want to be rude and self-reply. Thanks for giving the opportunity.

      One must be mindful that these offers were all carrot and no stick. The developers came with a plausible story: we have experience and insight into the big company's software, as many of us came from there. We know how to pass validation. We have the inside track to getting on the CD, and can speed your way to market. We can use our secret ways to optimize it because we have special insight we can't share even with you. All we ask (other than pay) is that the interfaces become private between us. We will help you develop your hardware so that the hardware interfaces presented are optimal for interfacing with the software, and we don't want to share that work with others for no pay, which is fair, right? They had good stuff to offer too: the benefits of some deep research into compositing that the hardware vendors couln't get some other way - but it always came with this catch. And it seemed like such a little catch at the time since there were no credible challengers to the big company's ware. And it seemed quite reasonable to work together and not share with outsiders. But the devil is in the details.

      Only rarely would the stick come out, in reference to some other company: "oh, that seems to be a smart way to think. So-and-so thought so." So-and-so being a dead company who failed to come around to the "right" way of thinking. The threat implied was never stated outright.

      Later, when hardware vendors want more, they get more committed. Implement that new hardware feature in the OS game engine rendering interface? Sure.. but there's more cost than just money. Want the standard user interface to leverage high-end blurring, transparency and shadow features... sure.. but how that works has to remain private between us. That requires a specially committed level of partnership. Along the way there were more patents to incorporate and license, and a stronger bond to build until the hardware manufacturer is committed to the big vendor's software and none other - in a way they can't be free of even if they want to be. These aren't just patents and copyrights: they're trade secrets too, and those are immortal. Each is as much to blame as the other, as they used each other to mutual advantage. There's enough dirt in there to get mud all over everybody and nobody wants that.

      Every now and then some PFY trying to implement a feature for X will call up the hardware vendor hoping for some help. "So I've got some app in the debugger, and I can see it load a texture in the buffer and trigger the interrupt that submits it to your hardware. But there are mode-setting things in here that have been deserialized and I can't see which one goes first, or the right grammar for the call so when it doesn't crash it looks like crap. Throw me a bone. Feed me just a tiny little hint please, I'm dying here." These calls used to be fielded by actual developers who might be conflicted and want to say the easy truth but would instead give the same bored answer every time: "sorry, but that's a trade secret." And never would they say the big secret: "and it's not our trade secret so we'll never be able to answer these questions." Now it's probably handled by some flunky in Bangalore who couldn't give the right answer if he wanted to. It might as well be a recording - but they still want to pretend that they care.

      This is all in the desktop and laptop arena of course. Servers are different. The big software company didn't have tyranny over server vendors like they did over desktops. Servers had to support Unix at first, and then Novell, and then Linux - to the point where no server company could survive or even be taken seriously with servers that could only run the big company's software - though they did try, notably with Broadcom network chipsets. The special features of the software/hardware interface just weren't as importa

      --
      Help stamp out iliturcy.
  26. Re:Problems? Really? by Anonymous Coward · · Score: 5, Insightful

    It's been established for a while that nVidia is not going to open source their driver. It's not like this is a surprise. In the past, Linus has gone on record to say that binary blobs are better than no driver at all.

    The turnaround on a kernel release would need to be a month or so for a company like nVidia to make the required changes to their driver and have it ready when a new kernel is launched. Hell, even the Evil Microsoft provides developers access to pre-RTM builds with enough time to make sure that their drivers work at launch.

    What kind of OS changes their driver API so much that a driver compiled for one version doesn't "just work" with an incremental update? An immature one. Frequent kernel updates are basically patches. If your driver API is changing that much, you need to re-examine how you're doing your development.

    We have every right irritated with Linus here. I've written software for Linux, Windows, and embedded RTOSes. Linux was by far the most painful. Boost was the only thing that made it tolerable. Berating a company that supports a user base which represents 1% or less of their market without any modern-day language tools at their disposal (STL, Boost, a decent IDE) is just counter-productive.

    If Linus wanted to do something productive, he'd help to stabilize the various APIs in the kernel so that this stops being an issue.

    Bottom line: this goes both ways. Either you allow binary blobs and give the providers of those blobs a chance to get their drivers working before you put out a new kernel, or you launch a kernel whenever you feel like it and live with the fallout.

  27. Re:Problems? Really? by hairyfeet · · Score: 5, Interesting

    Have you tried the FOSS drivers? Because you really shouldn't complain when AMD did what the community asked them to do and handed over the specs, or did everyone forget how many times we've heard "Just open up the specs and we'll support the hardware" on this very forum and others? AMD took that one step farther by actually hiring developers to assist the FOSS driver devs in getting up to speed, and from what I've been reading they've been coming along nicely, although focus has naturally been a little heavy on the APUs since so many of them are out there.

    This DOES highlight what i consider to be a major failing in Linux for quite some time, the fact that its damned near impossible to JUST get security updates, as package A needs kernel B and depends on packages E-G so to keep the thing updated you end up with an "all or nothing" so you can't just update say the XBMC software without changing graphics drivers and a bunch of other shit. People can scream bloody murder all they want but THIS IS WHY a hardware ABI is a GOOD thing, because if I want to keep my 3 year old graphics drivers while being fully patched and running the latest of everything else on Windows? not a problem, I just don't have to update the graphics driver. this is also why AMD's support phase isn't a problem on Windows, as one can simply stick with the last driver and be fine for the life of the system and after 4 years they've squeezed all the power they are gonna out of a chip. Again like it or not the ONLY REASON that that Nvidia or AMD have to keep releasing new drivers for old hardware in Linux is because you simply can't use the old drivers with new kernels or the whole thing falls down.

    So I don't see how the community has any right to complain about AMD, you got exactly what you asked for, all the specs opened and handed to you on a silver platter. AMD simply has a hell of a lot more on its plate than just graphics so continuing to support 4+ year old chips on an OS with maybe 5% market tops is simply a waste of resources. if you want to complain pitch a fit at Torvalds for making driver support such a damned mess, even one of the big Red hat developers says the current way of doing things simply isn't sustainable, that a single group can't control 20,000 packages and drivers and keep it working, and recommends an ABI and a much more stripped down design that allows you to concentrate on the core while letting those that sell the hardware provide drivers. I wonder how much money Nvidia has blown keeping a team of devs around to do nothing but constantly update the Linux drivers when Torvalds constantly breaks the damned drivers with kernel fiddling? bet it isn't cheap, not cheap at all.

    If handing you the full specs like you asked for STILL isn't enough? Maybe its time to look in the mirror and consider that maybe, just maybe, you're doing things the wrong way. There should be no damned reason why you can't take the last release that AMD made for that HD3200 and have it run perfectly on the latest distro and the fact that you stand here and admit that it doesn't work just shows what is wrong with linux in a nutshell. After all how do you expect the smaller hardware guys to support you if the big guys have to pay entire teams to constantly fix the damned things just to make the drivers work?

    --
    ACs don't waste your time replying, your posts are never seen by me.
  28. Re:Problems? Really? by amorsen · · Score: 5, Insightful

    Torvald's is carrying out the unproductive one.

    Your so-called productive approach has been entirely unproductive for more than a decade. It is way past time to say "fuck you".

    --
    Finally! A year of moderation! Ready for 2019?
  29. Which is why I find it doubly funny by Sycraft-fu · · Score: 5, Insightful

    There was all this chatter about how if the GPU companies would just open up, legions of extremely smart programmers would make grad-A OSS drivers, better than the Windows counterparts!

    So AMD does and... Nothing. We have a broke ass, "sorta works" OSS driver. Apparently the legions of programmers are either busy playing WoW or maybe, just maybe, writing a graphics driver for a modern card is way harder than people give it credit.

    I think part of the problem is you get people who've written something like a NIC driver and say "Oh this driver writing isn't bad." The problem is most hardware is peanuts compared to a GPU. They are just amazingly complex. You can see it in driver sizes. A NIC or RAID driver will generally be 100ish kbytes, sometimes less. On my system, the primary WDDM nVidia driver file is 20MB, and it won't even work completely with that alone. It's driver to support OpenGL is another 25MB, another 10MB for D3D10/11 components, 7MB for CUDA, and so on, never mind support stuff like the control panel.

    Basically it is a really complex problem, and of course each new version of the graphics hardware brings in a new setup to deal with. So it isn't so easy to bash out a high quality driver for graphics cards.

    Thus the OSS AMD drivers really aren't any good, despite AMD playing nice. The community has not managed to produce some amazing driver that is fast, stable, feature complete, that makes Windows people say "Man I wish I had that." Had that happened, I'd be more inclined to say "Get with it nVidia." However as it stands, nVidia is able to produce a Linux driver that is in every way as good as their Windows driver, and that is damn good. Given that, I'd say they are doing it right.

    1. Re:Which is why I find it doubly funny by Kjella · · Score: 5, Interesting

      Basically it is a really complex problem, and of course each new version of the graphics hardware brings in a new setup to deal with.

      I think particularly the last part. Unlike CPUs that have to be 99.9% the same to support already compiled binary code, graphics drivers only care about the DirectX/OpenGL layer. Everything about how you accelerate those commands is being rewritten constantly. For example the AMD OSS drivers cover three very different architectures, VLIW5, VLIW4 and GCN. And within each architecture you have different generations with different ways of doing things and instruction sets. The hardware API is changing because they're working closely with the driver team, who are the only ones talking to the hardware - until you try writing an OSS driver. Third party chips like HDMI change both suppliers and versions so the hardware API changes, without code changes practically nothing works on a new card. There's a lot of upkeep.

      The other part is that the generic code is woefully behind the times, regardless of the driver code. Mesa still only supports OpenGL 3.0, which was released in July 2008 and that support only came first this year - at that point 5.5 years behind the specification. So if you want to run recent OpenGL code you need closed source drivers because the whole stack is missing, not just the driver code. Basically even if AMD is doing the same bits as AMD does for Windows, nobody's doing the OpenGL equivalent of Microsoft's work on DirectX. Or well obviously some are working on it, but not enough to keep up.

      The last part which makes sharing code between the open and closed source driver hard is DRM. AMD simply can't let the open source driver have any code that would make it easy to poke at what the closed source driver is doing like for example patch it to dump a BluRay to disk (despite AACS, BD+ and HDMI all being broken). Same goes for audio and PAP. Even just keeping the DRM bits in a little blob by itself would be painting a big sign saying "reverse engineer this". This means things have to go back and forth with the lawyers all the time, and you need this information because of what I wrote in the beginning.

      On the bright side Intel seems to want to use more of their own graphics in coming Atoms - google "Intel Valley View" for more - because PowerVR has been the absolutely worst of the bunch when it comes to Linux support - and pretty terrible at Windows support too from what I gather. And at least according to AMD their OSS support is getting better with each generation, even though it has a long way to go...

      --
      Live today, because you never know what tomorrow brings
    2. Re:Which is why I find it doubly funny by arglebargle_xiv · · Score: 5, Insightful

      I think part of the problem is you get people who've written something like a NIC driver and say "Oh this driver writing isn't bad." The problem is most hardware is peanuts compared to a GPU.

      That's an understatement. GPUs and baseband processors are some of the most hellishly complex programmable devices ever created (I'd say baseband processors are far worse than GPUs, for long and complex reasons that I couldn't be bothered typing up here). For example a typical ATI GPU several years ago had around 4,500 registers, many of which were documented with a single-line entry in a data sheet containing a name/description like SCL_DAX_ENABLE. Each functional unit had its own group of developers who knew it inside out and didn't meddle with any other functional unit. If you needed help, you picked up the phone and called the guy who'd done that part of the silicon. Two days later, the two of you had finally agreed on how a particular hardware feature was supposed to be used.

      No matter how enthusiastic you are about OSS, you can't open-source that.