Mozilla chucks Roc at Microsoft's new hardness
IE9 acceleration talk rubbished
Microsoft has claimed that Internet Explorer 9 is the only browser offering "full" hardware acceleration.
And Mozilla has accused its old rival of talking nonsense.
With a Friday blog post, Microsoft web graphics program manager Ted Johnson laid out a trio hardware acceleration "phases," before telling the world that only IE9 does all three. "With IE9, developers have a fully-hardware accelerated display pipeline that runs from their markup to the screen," Johnson said.
"Based on their blog posts, the hardware-accelerated implementations of other browsers generally accelerate one phase or the other, but not yet both [sic]. Delivering full [his italics] hardware acceleration, on by default, is an architectural undertaking...
"Today, IE9 is the first and only browser to deliver full hardware acceleration of all HTML5 content."
But his claim was promptly refuted by Mozilla developer Robert O'Callahan as well as Mozilla director of community development Asa Dotzler. "The facts are that Firefox takes advantage of the same Windows 7 APIs that Microsoft does to accelerate both the compositing and the rendering of Web content and that Mozilla provided test builds of Firefox...with this hardware acceleration well before Microsoft did," Dotzler said.
"We are faster and we were first."
Asked to respond, Microsoft said it was "sticking by" by Johnson's blog post. The company declined to discuss the issue, but indicated it would do so later this week at a press event unveiling the IE9 beta.
In his blog post – which arrived just two days after Mozilla officially rolled graphics hardware acceleration into the Firefox 4 beta – Johnson boasted that IE9 applies hardware acceleration to graphics rendering, page composition, and desktop composition. IE9 uses Windows Direct2D and DirectWrite systems for content rendering. It uses Direct3D for page composition. And desktop composition involves using the Desktop Window Manager (DWM) – the system that drives the graphic user interface in Windows Vista and Windows 7 – to complete the screen image around the browser window.
"After a browser renders content and composes pages, Windows Vista and Windows 7 use the GPU to compose the final screen display via the Desktop Window Manager (DWM)," Johnson says. "Because IE9 uses DirectX and only DirectX, there is better interaction between IE9 and the DWM, using less GPU memory and resulting in better stability than browsers that mix different subsystems."
Mozilla's Robert O'Callahan – aka "Roc" – confirms with The Reg that Firefox offers all three flavors of hardware acceleration described by Johnson and that the techniques used by Firefox are "analogous" to those used by Microsoft. There may be slight differences in the way Microsoft is handling things – "I don't know exactly what they do. They can see our code, but we can't see into theirs," O'Callahan says – but as Dotzler points out, Mozilla is using exactly the same APIs: Direct2D for content drawing, Direct3D for compositing, and the Desktop Windows Manager as well.
It's unclear what – precisely – Microsoft is referring to when it says that if you only use DirectX for content drawing and compositing, there's better integration with the Desktop Windows Manager. But Mozilla meets this criteria.
"They seem to be saying that if you use Direct3D and Direct2D for all your application drawing and nothing else, there are performance advantages with DWM," O'Callahan says. "We do now draw the entire application window with Direct3D, so we should be getting that advantage. But I don't know how to test that, because I'm not exactly sure what they're talking about. But we do what they say you need to do to get that advantage."
Microsoft's Johnson also makes noises about competitors losing performance because they're working to provide cross-platform hardware acceleration. "When there is a desire to run across multiple platforms, developers introduce abstraction layers and inevitably make trade-offs which ultimately impact performance and reduce the ability of a browser to achieve ‘native’ performance," he says. "Getting the full value of the GPU is extremely challenging and writing to intermediate layers and libraries instead of an operating system’s native support makes it even harder."
As O'Callahan points out, this is apparently a reference to Google Chrome. Mountain View is handling all hardware acceleration through the OpenGL standard, mapping OpenGL to Direct3D using a new open source project is calls ANGLE (Almost Native Graphics Layer Engine), and it's not offering Direct2D acceleration.
But in using DirectX 10, Mozilla has not gone the Google route. O'Callahan does acknowledge that Mozilla uses an intermediate layer for use with the old DirectX 9, OpenGL, and non-accelerated situations – dubbed "Layers" – but he says this doesn't necessarily sacrifice speed. "[Layers] is a lot higher-level than GL/ANGLE," he writes in his blog post. "It's certainly true that only having to target Vista and Windows 7 would mean less development effort, but an extra abstraction layer need not hurt performance – if you do it right."
Mozilla is working to offer hardware-accelerated compositing on Mac, Linux, and mobile via OpenGL. And although there's not really an equivalent to Direct2D on Mac and Linux, it's hoping to work with others across the industry to developer an option for hardware accelerating content.
The open-source outfit hopes to offer OpenGL hardware acceleration on Mac, Linux, and mobile with Firefox 4, but support for some platforms may slip to a later release.
Mozilla is also providing hardware accelerated compositing on Windows XP. And, well, you won't get that from Microsoft. "So, for all their hand-waiving about the difficulties of multi-platform acceleration that, according to them the other browser vendors face, it seems Microsoft are the ones struggling to support even their most popular Windows version," says Dotzler.
"If Mozilla can accelerate browsing for the hundreds of millions of PC users on Microsoft's Windows XP, why can't Microsoft? And why are they spreading FUD about Firefox when we beat them not just on the latest and greatest Windows 7 but on Windows XP where a majority of their users are today?" ®