Moonlight Now Does GPU Acceleration
In the off-hours of XDS Toulouse a few of us were wondering what David Reveman has been working on lately for Novell. David was the creator of the now-defunct XGL and has worked on Compiz, Glitz, and other Linux graphics projects, but lately his work really hasn't been publicized (nor has he been present at XDS, [email protected], etc) and even other SuSE/Novell employees have been unsure what his day-to-day activities are for Novell. It turns out at least one of his recent projects has been bringing GPU acceleration to Moonlight.
Moonlight is the Mono-based Microsoft Silverlight implementation for Linux and other operating systems with the work being led by Miguel de Icaza and other Mono developers at Novell. Moonlight hasn't been a big-hit for Linux desktop users and even now on Microsoft's official Silverlight it seems its days are limited as they begin focusing more on HTML5. Now those using Moonlight at least have GPU acceleration support, while those with Adobe's Flash Player on Linux still lack support GPU-based support.
Moonlight right now is implementing GPU hardware acceleration for 3D transforms to objects (including drawings, images, and videos), accelerating rendering of surfaces by pre-caching the contents as hardware textures, and pixel shaders. Moonlight actually has an advantage over Silverlight itself in that it's accelerating all pixel shaders and just not a subset of them.
This Moonlight GPU acceleration code is living independently in its own Git repository for now, but will likely be merged into the main codebase soon. Below are two videos demonstrating GPU acceleration with Moonlight on Linux.
The above video is an introduction with Dave and it also goes over the software vs. hardware acceleration performance on both Linux and Windows. The below video goes over the Silverlight/Moonlight 3D perspective APIs.