No Hardware Acceleration Firefox for Linux Due to Buggy X Drivers

Yesterday, the ninth Firefox 4.0 beta was released. One of the major new features in Firefox 4.0 is hardware acceleration for anything from canvas drawing to video rendering. Sadly, this feature won’t make its way to the Linux version of Firefox 4.0. The reason? X’ drivers are “disastrously buggy”. Update: Benoit Jacob informed my via email that there’s some important nuance: 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).

Boris Zbarsky, long-time Mozilla developer, commented on the issue over at Hacks.Mozilla.org. 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…”

It’s not all bad, though. “If your drivers are decent (some of the closed-source ones can be, nouveau can be sometimes), you do get something akin to Direct2D on Linux through XRender, though,” Zbarsky adds, “So while you don’t get compositing acceleration, you do get faster canvas drawing and the like. drawImage, for example, can be much faster on Linux than on Mac. But only if you manage to find a driver and X version that happens to not suck…”

Yeah, good luck with that – I’ve been trying to find that magical combination for a long time. But I digress.

He further requests help from Xorg developers and distributors on this issue, since they are still working on it for the future. In other words, if you happen to know people from those parts, be sure to let them know about the difficulties the Firefox team is apparently having with X; maybe they can help out, give advice, and so on.

By the way, Direct3D appears to be the saving grace for Windows here, as Zbarsky notes in another comment. “Sadly enough, GL drivers on Windows aren’t that great either,” he notes, “This is why WebGL is done via Direct3D on Windows now… But that mostly a matter of performance issues.”

140 Comments

  1. 2011-01-15 11:06 am
    • 2011-01-15 11:23 am
    • 2011-01-15 1:00 pm
      • 2011-01-15 1:38 pm
        • 2011-01-15 2:27 pm
          • 2011-01-15 4:22 pm
          • 2011-01-15 6:54 pm
          • 2011-01-15 11:13 pm
          • 2011-01-16 5:30 am
          • 2011-01-16 12:27 pm
        • 2011-01-16 12:21 pm
          • 2011-01-16 1:05 pm
      • 2011-01-15 1:40 pm
        • 2011-01-16 2:28 pm
      • 2011-01-15 3:49 pm
        • 2011-01-16 2:07 am
    • 2011-01-15 9:14 pm
  2. 2011-01-15 11:43 am
  3. 2011-01-15 2:39 pm
    • 2011-01-15 3:43 pm
      • 2011-01-15 6:43 pm
        • 2011-01-15 6:46 pm
          • 2011-01-15 8:55 pm
          • 2011-01-15 11:17 pm
          • 2011-01-16 12:34 pm
          • 2011-01-16 4:16 pm
          • 2011-01-17 8:02 am
          • 2011-01-17 12:43 pm
          • 2011-01-16 12:33 am
  4. 2011-01-15 3:30 pm
    • 2011-01-15 4:17 pm
  5. 2011-01-15 3:47 pm
    • 2011-01-15 4:07 pm
      • 2011-01-15 5:03 pm
        • 2011-01-15 5:45 pm
          • 2011-01-15 6:32 pm
          • 2011-01-15 7:00 pm
          • 2011-01-15 7:08 pm
          • 2011-01-15 7:37 pm
          • 2011-01-15 8:03 pm
          • 2011-01-16 4:29 am
          • 2011-01-16 9:01 am
          • 2011-01-16 2:04 pm
          • 2011-01-16 4:15 pm
          • 2011-01-15 8:26 pm
          • 2011-01-16 12:22 am
          • 2011-01-16 4:16 am
          • 2011-01-16 4:27 am
          • 2011-01-16 5:41 am
          • 2011-01-16 6:34 am
          • 2011-01-16 2:17 pm
          • 2011-01-16 6:29 am
          • 2011-01-15 6:44 pm
        • 2011-01-16 3:01 pm
          • 2011-01-18 6:58 pm
    • 2011-01-15 4:18 pm
      • 2011-01-15 6:47 pm
      • 2011-01-16 2:48 am
    • 2011-01-15 5:27 pm
        • 2011-01-16 5:35 am
          • 2011-01-16 8:41 am
          • 2011-01-18 9:51 pm
          • 2011-01-20 12:30 am
          • 2011-01-20 9:55 am
          • 2011-01-20 12:30 pm
          • 2011-01-20 1:12 pm
          • 2011-01-20 1:57 pm
          • 2011-01-20 6:46 pm
          • 2011-01-20 8:33 pm
          • 2011-01-20 9:04 pm
      • 2011-01-15 6:49 pm
        • 2011-01-16 5:56 am
          • 2011-01-16 9:00 am
          • 2011-01-16 9:11 am
          • 2011-01-16 9:18 pm
          • 2011-01-18 12:35 am
          • 2011-01-16 10:54 am
          • 2011-01-16 8:44 pm
          • 2011-01-16 9:27 pm
          • 2011-01-16 9:36 pm
          • 2011-01-17 7:26 pm
          • 2011-01-17 7:48 pm
          • 2011-01-18 2:23 am
          • 2011-01-18 7:02 am
          • 2011-01-17 8:53 am
      • 2011-01-15 8:34 pm
        • 2011-01-16 6:13 am
          • 2011-01-16 6:34 am
          • 2011-01-16 8:13 pm
          • 2011-01-17 3:42 am
          • 2011-01-17 8:10 pm
          • 2011-01-18 1:48 am
          • 2011-01-18 6:58 am
          • 2011-01-17 8:39 am
          • 2011-01-16 8:13 am
          • 2011-01-17 3:49 am
  6. 2011-01-15 4:06 pm
    • 2011-01-17 8:06 pm
  7. 2011-01-15 6:25 pm
    • 2011-01-15 7:02 pm
  8. 2011-01-15 7:05 pm
    • 2011-01-15 8:37 pm
      • 2011-01-15 9:36 pm
        • 2011-01-15 10:11 pm
    • 2011-01-15 8:50 pm
      • 2011-01-15 9:49 pm
        • 2011-01-16 8:20 am
          • 2011-01-16 9:08 am
          • 2011-01-16 9:57 am
          • 2011-01-16 10:31 am
  9. 2011-01-15 7:10 pm
    • 2011-01-16 4:21 am
      • 2011-01-16 3:58 pm
        • 2011-01-16 4:06 pm
          • 2011-01-17 8:21 am
      • 2011-01-17 3:28 pm
  10. 2011-01-15 9:13 pm
  11. 2011-01-15 11:15 pm
    • 2011-01-15 11:24 pm
      • 2011-01-15 11:32 pm
        • 2011-01-16 12:24 am
  12. 2011-01-16 2:20 am
    • 2011-01-16 2:50 am
      • 2011-01-16 2:56 am
        • 2011-01-16 12:14 pm
          • 2011-01-17 8:08 am
        • 2011-01-18 7:01 pm
  13. 2011-01-16 3:56 pm
  14. 2011-01-16 11:15 pm
    • 2011-01-17 9:12 pm
    • 2011-01-19 2:48 am
  15. 2011-01-17 6:05 pm
    • 2011-01-17 11:39 pm
  16. 2011-01-17 9:09 pm
  17. 2011-01-17 11:37 pm
  18. 2011-01-18 5:02 pm