In order to get hardware acceleration, users need to have recent graphics drivers in addition to good hardware. Have they?
To find out, I used a script that parses Firefox 4 crash reports, which now report on attempted/successful/failed graphics features. Below are some findings, based on crash reports collected since the Firefox 4 release. The implicit approximation made here is that crashiness is overall independent from these graphics features, so that numbers of crashes are proportional to numbers of users. This should be a decent approximation, since crash stats show that these graphics features are not among the top causes of crashes.
Layers (compositing, etc.) acceleration
Layers acceleration is what handles compositing, image resizing/rotation, and video colorspace conversions.
Here are success rates per operating system and per graphics system used. Notice that Windows Vista and Windows 7 try both Direct3D 10 and Direct3D 9, so the total success rate there is not just the sum of the two.
|OS||Direct3D 9||Direct3D 10||OpenGL||Total|
|Windows XP||8 %||-||-||8 %|
|Windows 2003 (NT 5.2)||21 %||-||-||21%|
|Windows 7||9 %||38 %||-||44 %|
|Mac OS X 10.6.3+||-||-||99 %||99 %|
|Linux (disabled by default)||-||-||79 %||79 %|
Our decision to support Direct3D 9, instead of only supporting Direct3D 10, is paying off: it greatly increases the number of users who get hardware acceleration. Even on Direct3D 10-capable Windows versions, having Direct3D 9 as a fallback gives a nice boost to our stats. But the really important part is Windows XP. Those 8 % of XP users might seem few, until one realizes that XP users account of half of the world’s Internet users. 8 % of all XP users would be more than 50 million people. While most (92 %) of XP users have outdated graphics drivers and/or hardware, those 8 % include many people who are tech-conscious enough to have recent graphics drivers installed: it is safe to bet that many of them also care about getting hardware acceleration in their browser. Also, we’ll see below that 21% of Windows XP users actually get WebGL, which means that they have recent enough drivers, so it seems that the reason why only 8 % get accelerated layers is lack of support for features we require there, such as 4Kx4K textures. Then again, we must be very conservative with layers acceleration, as enabling it on too slow graphics systems can ruin the user experience.
The 99% figure on Mac is to be taken with a grain of salt: this is only among users of Mac OS 10.6.3 and newer. Most of hardware acceleration is disabled on older versions. The 79% figure on Linux, too, is a bit tricky: hardware-accelerated layers on Linux are disabled by default, and require manually enabling. Moreover, on Linux, they are correlated with Flash crashes, so this number might be completely biased.
Let’s now turn our attention to WebGL.
|OS||WebGL success rate|
|Windows XP||21 %|
|Windows 2003||38 %|
|Windows Vista||24 %|
|Windows 7||58 %|
The 21 % WebGL success rate here on Windows XP is surprisingly higher than the 8 % Direct3D 9 layers success rate. I suppose that the extra requirements we currently place on hardware to enable Direct3D 9 layers, such as the 4Kx4K textures requirement, are ruling out a lot of users.
The 80 % success rate on Mac is really among all Mac users. WebGL is only enabled on Mac OS 10.6, so what this tells is that 80% of Firefox 4 Mac users are on 10.6 and have good hardware.
The 40% success rate on Linux is going to get much higher soon, when we whitelist more recent drivers.
Finally, the Direct2D and DirectWrite success rates are basically the same as the above Direct3D 10 success rates.