A number of weeks back a set of benchmarks were published showing even the latest open-source ATI 3D driver is still no match to an old Catalyst driver and that even Gallium3D lags behind the Catalyst driver for those interested in OpenGL gaming. However, in other areas the open-source ATI driver stack is beginning to win by measurable amounts.
The power management support in the open-source ATI driver is beginning to catch-up to that of the Catalyst driver, the open-source 2D performance is a rather interesting story especially with the formal introduction of the ATI 2D Acceleration Architecture (benchmarks are coming next week), and then there is the matter of video playback performance. The open-source ATI driver is also inherently easier to maintain with new kernel and X.Org Server compatibility, among other benefits.
The best video acceleration offering on the open-source ATI driver side is currently X-Video (Xv) like most of the other open-source graphics drivers. There have been efforts to support XvMC and VDPAU within Gallium3D via shaders so that more drivers/hardware can take advantage of the GPU video acceleration, but sadly nothing is yet in a usable state.
The Catalyst Linux driver has support for X-Video, but the proprietary driver also has X-Video Bitstream Acceleration. Going back to 2008 we exclusively shared details about XvBA, but it was not until November of 2008 that AMD finally began doing something with this in-house video acceleration API by providing a VA-API front-end in cooperation with their development partners at Splitted Desktop Systems.
XvBA is not an open API like NVIDIA had done with VDPAU (the Video Decode and Presentation API for Unix) but they just shared the details with Splitted Desktop Systems to create this closed-source library that exposes VA-API on the front. This is nice in the respect that any multimedia application that supports the vendor-neutral VA-API can have acceleration with ATI graphics cards that have the UVD2 engine, but unfortunate in the respect that this VA-API wrapper is the only way to publicly tap into UVD2/XvBA.
Since the rollout of this xvba-video package last November there has been mixed results by users trying it out for accelerating MoComp/iDCT/VLD tasks for MPEG-2/H.264/VC-1 video files on the GPU. Unfortunately, the level of support has not been the greatest (there has been some Catalyst updates that simply break) and is still no comparison to NVIDIA's VDPAU. There have also been several updates to the xvba-video package, the XvBA support within the monthly Catalyst updates, and then to Splitted Desktop's VA-API library package, but still XvBA lacks the wellness of VDPAU.
While the situation on the ATI Linux side is far from ideal, XvBA is still better than X-Video, right? One would also assume that the Catalyst driver implements X-Video more efficiently than the open-source driver, right? Well, not necessarily.
For testing this we used an HTPC-like system made up of an AMD Sempron LE-1150 CPU clocked at 2.00GHz in a Jetway NC84-LF motherboard that boasts an AMD 785G Chipset + SB750 Southbridge and ATI Radeon HD 4200 (RS880) graphics. This system had 1GB of system memory and a 16GB Super Talent STT_FTM16GL25H SSD. After performing a clean installation of Ubuntu 10.04 LTS (x86_64) we tested out the X-Video performance with the Linux 2.6.32 kernel, X.Org Server 1.7.6, and xf86-video-radeon 6.13.0. On the ATI Catalyst side we had Catalyst 10.6 which provides the fglrx 8.74.4 driver.
We were running the latest Git code for the Phoronix Test Suite with what will make version 2.8 later this year. We had the latest xvba-video and libva packages installed and the Phoronix Test Suite is using a version of MPlayer from early June with support for Splitted's VA-API patches. The video-cpu-usage test profile within the Phoronix Test Suite is now playing back the 1080p H.264 sample of the Big Buck Bunny movie for a period of five minutes while monitoring the CPU usage.
These initial results showing the 1080p H.264 video playback were rather surprising. The open-source Radeon driver stack using X-Video did noticeably better than the Catalyst 10.6 driver with X-Video. The average CPU usage for the AMD Sempron was 79% under the open-source driver stack provided by default in Ubuntu Lucid. With X-Video on Catalyst 10.6, the average CPU usage was 97.6%. When using the XvBA + VA-API combination for the proprietary Catalyst driver, the CPU usage had only fallen to 95%. Looking at the MPlayer output had shown that libva/VA-API was being used, but whether it's a bug in Catalyst 10.6 or an issue with the Radeon HD 4200 (RS880), the X-Video Bitstream Acceleration benefits were non-existent.
We are still digging around with XvBA, but what mainly there is to show today is that the CPU usage is dramatically lower when using X-Video with the open-source Radeon driver than with the Catalyst driver. We welcome you to share your Linux video playback thoughts with everyone in our forums.