Slashdot Mirror


Why Linux Loses Out On Hardware Acceleration In Firefox

devtty writes with some bad news for Linux users, from OSNews: "The release notes for Firefox 4.0 beta 9 noted that it comes with hardware acceleration for Windows 7 and Vista via a combination of Direct2D, DirectX 9 and DirectX 10. Windows XP users will also enjoy hardware acceleration for many operations 'using our new Layers infrastructure along with DX9.' Furthermore, Mac OS X has excellent OpenGL support, they claim, so they've got that covered as well. No mention of Linux, and there's a reason for that. 'We tried enabling OpenGL on Linux, and discovered that most Linux drivers are so disastrously buggy (think "crash the X server at the drop of a hat, and paint incorrectly the rest of the time" buggy) that we had to disable it for now,' explains Zbarsky, 'Heck, we're even disabling WebGL for most Linux drivers, last I checked...'" An update to the story softens this news slightly, saying that "hardware acceleration (OpenGL only) on Linux has been implemented, but due to bugs and issues, only one driver so far has been whitelisted (the proprietary NVIDIA driver)."

20 of 456 comments (clear)

  1. Yes, as I've said many times.... by Burnhard · · Score: 3, Insightful

    Until graphics card manufacturers take Linux seriously, these problems are always going to occur. That's why it's stupid to use the argument that OpenGL is better than D3D because it's cross-platform. It's only cross-platform insofar as there is actually an implementation on Linux. After that, I'm wondering if it's better to use D3D and Wine instead of native GL!

    1. Re:Yes, as I've said many times.... by BasilBrush · · Score: 2, Insightful

      OpenSource guys know how to implement graphics drivers, but they're horribly understaffed.

      Yes. That's because most programmers need to be paid money for their work so they can eat and put a roof over their head. This is the fundamental problem with Stallman's free software religion.

    2. Re:Yes, as I've said many times.... by diegocg · · Score: 5, Insightful

      Graphic cards manufacturers do take Linux seriously. At least Intel and AMD/ATI do, they contribute with open source drivers, engineers and even specs.

      And after years of supporting opensource drivers, they still suck. The problem is that a good quality graphic driver is really hard. It takes years and several engineers to write one, so often the drivers are late or incomplete. As if that wasn't bad enought, Linux has needed to rewrite big chunks of the graphic stack: KMS, and now Gallium3D, which force a kernel/mesa driver rewrite. And then there are other problems, like the fact that X sucks and graphic drivers have not been able to make Xrender really fast (some times toolkits seem to be faster using software than using Xrender; also Xrender doesn't reports which parts of its interface are hardware accelerated and which ones are using a software fallback which makes hard to trust it)

    3. Re:Yes, as I've said many times.... by Cyberax · · Score: 4, Insightful

      There are independent OpenSource graphics developers who do an amazing job (thanks for r300, Corbin Simpson!). But there are too few of them, mostly because the whole area of graphics driver development is fairly specialized and complicated.

      PS: I'm a long-time lurker in Mesa IRC and mailing lists, and I'm planning to join Mesa development once I've more free time.

    4. Re:Yes, as I've said many times.... by smash · · Score: 3, Insightful

      Delicious irony. I've been using nvidia cards for 10+ years mostly due to the driver support. Not just linux, ATI's drivers have sucked every time i've dealt with them on windows, too.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    5. Re:Yes, as I've said many times.... by Yvanhoe · · Score: 5, Insightful

      And there are a few of us who get paid for coding open source software.
      But you are right, we do not exist, we should never be brought up in any conversation...

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    6. Re:Yes, as I've said many times.... by dicobalt · · Score: 3, Insightful

      Until Linux kernel developers take hardware manufacturers seriously these problems are always going to occur. See what I did there? The lack of good drivers is mostly attributed to the open driver developers not having access to the information they need in order to make a proper driver. That's obviously because NVidia/ATI do not want to give out their secrets. Can you really blame them? Linux needs a HAL that allows binary drivers to be plugged in with no recompiling, same as Windows has always done. Till that happens Linux will always have these type of problems because of the kernel having a childlike neediness to have everything recompiled just especially for that specific system. Nobody wants to acknowledge the need for full featured HAL.

    7. Re:Yes, as I've said many times.... by Teun · · Score: 1, Insightful
      There are fields where your argument carries weight but certainly not in the field of hardware drivers.

      Hardware drivers are paid for by the manufacturer of the hardware and their customers, it's already clear Linux users are almost exclusively spec their boxes with nVidia cards just because nVidia drivers suck less than the stuff from the competition.

      --
      "The likes of Facebook and WhatsApp are free to those whose privacy is of zero value."
    8. Re:Yes, as I've said many times.... by Anonymous Coward · · Score: 2, Insightful

      I don't see how "You aren't allowed to know how your graphics hardware works" has anything to do with "Programmers need to eat too". The horrid state of GPU acceleration on Linux is not because of a lack of funds, it's because GPU hardware is widely unstandardized. FOSS developers - and all developers in general - work their best when coding to some kind of standard (even something like the Windows API is a published standard).

      GPU hardware interfaces are not standards by any stretch of the imagination. Every new revision of hardware brings along a large amount of changes to the interface in ways that require more reverse engineering work. This is primarily because GPU designers have been able to get away with releasing a proprietary driver which converts their bloody horrible interface into an actual standard. The same thing has been going on with printers, where the control systems used to print documents are completely different from manufacturer to manufacturer and we're expected to have an operating Windows machine to run the proprietary printer binary they want us to use. Apple had to make a completely new networked printing system which is only supported by a handful of HP printers.

      This is really a problem with the concept of a driver. We shouldn't have to install drivers for most hardware. Drivers are tied to a particular operating system and API and are a piss-poor substitute for a paper specification which can be implemented by everybody. It's just that NVidia is way too lazy in actually producing a paper spec that can be published without revealing actual IP they want to keep secret. And why bother actually reviewing their internal documentation for public release when they can get away with just publishing a proprietary binary driver and letting the nouveau project spend all their time puzzling out the details?

      ATI, on the other hand, is just too lazy to even release a decent driver. Which is why I don't buy ATI hardware. Intel is probably the best, since they actually have published open source drivers. It's too bad there aren't any decent Intel GPUs yet, as I've only seen them in integrated setups for machines that don't need graphics performance.

    9. Re:Yes, as I've said many times.... by TheRaven64 · · Score: 5, Insightful

      That has nothing to do with the license. FreeBSD and Solaris both manage to maintain stable kernel ABIs, so upgrading the kernel typically doesn't require kernel modules to be recompiled. Linux breaks them for fun because Linux devs like making work for other people.

      Audio is equally amusing when you use Linux. On FreeBSD or Solaris, multiple apps can open /dev/dsp, can write audio, and can have independent volume controls, and it all just works. On Linux, you need to have a userspace daemon running to make this basic functionality work, and you need all of your code to agree on exactly which userspace daemon it should be...

      --
      I am TheRaven on Soylent News
    10. Re:Yes, as I've said many times.... by BasilBrush · · Score: 3, Insightful

      With the emphasis on "few".

    11. Re:Yes, as I've said many times.... by Anonymous Coward · · Score: 1, Insightful

      Isn't it time for Open Source guys to put aside their pride and just implement the Windows driver model in Linux, so that Windows graphics drivers simply work in Linux as is. The current system is not working and it's high time to accept that.

    12. Re:Yes, as I've said many times.... by Ash+Vince · · Score: 3, Insightful

      As far as I know, it needs the card manufacturers to commit. I don't believe they "open source" all of their low level specs.

      That would be true, if the drivers they release were the ones causing the problem. The last time I checked ATI had open sourced all their specs and it is their driver that sucks. The other major graphics card manufacturer is Nvidia and the get a mention for producing a working OpenGL driver.

      I know that their are lots of security issues with the Nvidia proprietary driver supposedly, but I have a sneaky feeling this is because more of the open source community look for a stick to beat nvidia with to try and encourage them to open source their driver. I also think that purely theoretical security issues that only give root to a normal user are not such an issue on single user desktops that are the most likely machines to need graphics acceleration (Personally I disable X on servers).

      I used to love ATI cards until I started using Linux. Then I found the Nvidia driver was far more stable than the ATI drivers by bitter experience. This was back in the days when both were closed source but until I start reading things about Nvidia having more issues on Linux than ATI I will stick with what works best. I have never had a single issue with the NVidia closed source driver in the past 7 years.

      Open source or closed does not matter to me if only one works correctly. I think many end users of computers are of a similar mindset.

      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    13. Re:Yes, as I've said many times.... by jmorris42 · · Score: 5, Insightful

      That would be stupid and fatal long term. We would never again see Linux lead the way anywhere if we hitched ourselves to Microsoft's trailer hitch. All this new push to ARM would have never been possible had not Linux lead the way there and created a potential market large enough to get Microsoft to follow. Your idea would have forever tied us to x86.

      NVidia has a top tier 3D driver now because high dollar workstation users these days use Linux instead of legacy UNIX. That means there is money in keeping their drivers good enough to keep those super high margin cards moving out of their factory and not AMD/ATI's. But AMD wants in, not only there but on desktops and lacking the development resources are instead opening the specs. So be patient and soon we will have two hight quality options. Intel is already supplying fair driver support but they just don't compete well on the hardware.

      Had we somehow adopted the Microsoft driver model (heavy emphasis on the somehow) none of this progress would have happened.

      --
      Democrat delenda est
    14. Re:Yes, as I've said many times.... by SanityInAnarchy · · Score: 2, Insightful

      On Windows you can always install a newer NVIDIA driver if the current is bugged to fix it.

      Bullshit.

      I've had a laptop where, on Windows, I could only get XP drivers at all by going to the manufacturer's UK site -- they technically weren't available to US residents. A newer one, I not only had to get them from Dell, I had to get them by opening up a chat session with tech support and having them feed me random links from other models for pretty much every single piece of hardware on the system, because the model I had was only supported with Vista and above.

      Yes, it Just Works with 7. Guess what? The latest nVidia drivers Just Work with Ubuntu. What's more, I can get them from my distro repositories, which means they come as standard system updates -- on Windows, best-case scenario, Steam informs me that my drivers are out of date, and I then have to download them from the nVidia site. But again, that's only sometimes. Some laptops, nVidia will refuse to provide a driver for, because of some retarded contract they have with the manufacturer whereby I can only get updates via the manufacturer, which may or may not provide up-to-date drivers.

      In any case, none of it comes anywhere near the ease of 'sudo apt-get update && sudo apt-get dist-upgrade', or clicking on the little "updates found" icon that pops up every now and then. And guess what? This always works. I may have to choose between "old" and "new" drivers depending on my card, but in general, I can just install the nVidia drivers from the repository, and it won't whine about how I'm only supposed to get them from Dell or Toshiba, it Just Works.

      So if you're comparing old OSes to old OSes, XP is a nightmare. If you're comparing new OSes to new OSes, why not just update everything and be good to go?

      If your 95% figure is correct then any extra bugginess in Linux NVIDIA drivers is due to the 5% of glue code that's needed to interface with the Linux kernel API.

      Likely not so much the kernel API as the system in general. Can I set my resolution from KDE's control panel? If so, there's somewhere that needs to connect to the nVidia driver to make that work, and as far as I can tell, it's got little or nothing to do with the kernel API.

      Of course, even if this were true, why on earth would you expect a Windows API layer to be less buggy than nVidia's native Linux glue? All you've changed is that you now have two glue layers -- one between the Linux internals and the Windows API, and one between the Windows API and the cross-platfrom nVidia stuff. That can't be good for either stability or performance.

      How many years have Linux kernel developers had to come up with a graphics driver API that's obviously so good that it doesn't need to be messed with on a daily basis?

      Citation needed -- a daily basis? Or was that a wee bit of hyperbole? And how do you know the Windows API isn't messed with because it's "so good", rather than because as much as they might want to, MS doesn't want to break everyone's drivers? (Hint: Look at the changes they forced video drivers in particular to make for Vista.)

      And why would you ever assume, when you don't have to, that an API is the best it's ever going to be? That there's no possible way you could improve it further?

      I say it's finally time to switch to a driver model that has been proven to produce as good as possible drivers in the real world.

      You mean bluescreens? Oh, I can't wait.

      Notice that pretty much everywhere except video and (occasionally) wifi, the open source Linux drivers are as good as or better than any proprietary counterpart. Remember Broadcom? At first, the only way to get it working was with ndiswrapper, which was buggy, difficult, and confusing. Now, all you need is the firmware, and the open source driver is much better.

      nVidia used to ship proprietary Linux drivers for their

      --
      Don't thank God, thank a doctor!
  2. Re:OpenGL no rosy story by Anonymous Coward · · Score: 2, Insightful

    "- Windows OpenGL drivers are practically non existent". That's just non-sense. ATI and NVidia drivers both include OpenGL up to version 4.0. The Windows OpenGL drivers are so advanced they let you use directx 10 features, such as image arrays, on Windows XP.

  3. GLSL vs KWin by MaikB · · Score: 5, Insightful

    This conclusion matches the observation of the kwin developers who are brave enough to use GLSL for desktop effects
    http://blog.martin-graesslin.com/blog/2010/09/driver-dilemma-in-kde-workspaces-4-5/

    Without citations to back it up, the response of some open source devs was, IIRC: The KWin guys don't understand open source. They are meant to get in touch with the driver developers and help getting the bugs resolved, preferable send patches. The clutter developers i.e. sent patches to solve driver problems.

    IIRC, the mentioned contribution from clutter devs to the graphics drivers were made by Red Hat employees, which heavily backs the gnome development. Red Hat has lots of money and eve more important expertise in house to tackle such problems. The KWin guys don't have these resources.

    Open source gives the means to find, analyze and fix bugs, but its not mandatory. Saying so would mean that one has to know the code bases of every open source library used by his or her application. Thats ridiculous.

    The firefox devs sure don't plan to get into linux graphics driver development and thats fine.

    The real problem is that the driver teams don't have enough resources (money and developers) to get the job done. I'd be happy to vote with my feet and only buy graphics hardware with good open source drivers to encourage to hardware vendors to hire linux kernel developers. But right now I have to stick with nvidia since their drivers, though not open source and certainly have their own bugs, are the only sufficient choice for OpenGL (and OpenCL) on linux.

  4. Wait a minute by Anonymous Coward · · Score: 5, Insightful

    If you need to hardware accelerate web browsers these days, I think that more indicates a problem with modern website design.

    1. Re:Wait a minute by elashish14 · · Score: 4, Insightful

      THANK YOU.

      Of late, of all programs that I run on my machine, it's the web browser that takes up the most CPU. More than Gimp, OpenOffice (I'm more of a Latex person meself, but still), PDF readers, or any other utility that you run in for core productivity, it's the fucking bloated webpages that are the most taxing on my CPU. It's the Flash plugins, and the javascript - I have to block /. in noscript or the scrolling becomes all laggy (and as you'd expect /. have more competent developers than other sites, it's better than most).

      I have to upgrade my computers so i can browse the internets. Lame.

      --
      I have left slashdot and am now on Soylent News. FUCK YOU DICE.
  5. No, not correct by Sycraft-fu · · Score: 4, Insightful

    Rather nVidia's drivers are a result of two things:

    1) Getting tired of the Linux situation. Much of the problems with the bullshit in X and the underlying layers nVidia just avoids by bypassing it all with their drivers. They do things their own way and it works. They weren't interesting in fucking around with all the politics and BS and waiting around for a reasonable standard to get developed, and just made something that works. They shouldn't have to, and didn't on Windows which provides a solid graphics infrastructure (which also allows for extension so you can implement other APIs like OpenGL) but htey did on Linux.

    2) Their drivers use code they've licensed that they can't distribute. Various things are patented or licensed in some way and they can't just hand it out. So to do an OSS version would mean to rewrite the drives without it, and generally using programmers that had never worked with it to avoid issues of contamination. That is difficult and expensive. Before you claims that can't be the case note that AMD hasn't just opened up their binary drivers. The reason is the same.

    Basically nVidia did what was best for their business, and best for their customers that want to get work done. They made Linux graphics drivers that work well. They aren't OSS friendly, but they can accelerate OpenGL well and they have been doing so for years. They weren't interested in ideological purity or the like, they were interested in having good support, and their strategy delivered and is STILL the only one that does, after all this time.

    Maybe in a few years you'll be right, there'll be an open solution that works as good or better. Maybe at that point nVidia will use it. However right now I have trouble faulting them. Their shit works where the other's don't. That is really all that matters.