Intel Sandy Bridge VA-API Video Acceleration Performance
There have been a number of Intel Sandy Bridge articles on Phoronix since the January launch of this next-generation Intel CPU micro-architecture. It's ranged from the Linux support being challenging to dealing with motherboard problems and then the graphics performance being fast relative to previous generations of Intel graphics and for being based upon the classic Mesa driver architecture, but much slower than Windows. Last week then the Sandy Bridge Linux performance became much more interesting after a simple patch led to a huge performance win to the point that the open-source Linux driver performance is much closer to their full-featured Microsoft Windows driver. What is the next chapter in the Intel Sandy Bridge Linux story? A look at the VA-API video acceleration playback performance.
Intel didn't support H.264 VA-API video acceleration with their previous generation Clarkdale/Arrandale hardware until months after launch and they are still working on the even older G45 video acceleration support, but with Sandy Bridge the code has been available since day-one. However, like the 2D/3D acceleration situation, for now this means building the various components from source or using third-party package repositories until the 2011 Linux distributions begin making their way out (e.g. Ubuntu 11.04, Fedora 15). For VA-API video acceleration playback, you need to be using the updated components just like for 2D/3D acceleration, but then to have the most recent version of libva, the VA-API user-space library.
For end-users building the Intel Linux stack from source, building libva from the newest 1.0.10 release (carrying the Intel SNB support) or Git is a relatively easy and straightforward process. With the updated Linux kernel (for the newest Intel DRM) and libva, VA-API should be good to go for supported VA-API multimedia applications. Soon it has also been said that Intel will provide VA-API video encoding support for Sandy Bridge hardware too, which will require updating the DRM and VA-API library once more.
Today's testing is quite simple and it is looking at the CPU usage during 1080p H.264 video playback. The Phoronix Test Suite with OpenBenchmarking.org has the video-cpu-usage test profile for playing back the "Big Buck Bunny" 1080p H.264 video with a version of MPlayer that supports VA-API/VDPAU/X-Video/XvMC. With the Phoronix Test Suite system_monitor module, the CPU temperature, dynamic CPU frequency, and other system sensors can also be monitored at the same time.
This Sandy Bridge testing was once again done with an Intel Core i5 2500K CPU, the Intel Bearup Lake motherboard, 2GB of DDR3 system memory, and an OCZ 60GB Vertex 2 SSD. The software stack was Ubuntu 10.10 with the Linux 2.6.38 kernel, GNOME 2.32.0, X.Org Server 1.9.0, xf86-video-intel 2.14.901 driver, GCC 4.4.5, an EXT4 file-system, Mesa 7.11-devel from the beginning of March, and the libva Git library from early March.
Besides comparing the VA-API video playback performance with Intel Sandy to its performance of using X-Video with the same hardware, the performance was also compared to X-Video playback from an ATI Radeon HD 4550 using both the open-source driver stack and the proprietary Catalyst 11.2 driver, and a NVIDIA GeForce 9500GT with the 270.30 beta driver under the X-Video API and then with their flagship VDPAU implementation. XvBA with the VA-API front-end could not be tested as it was broken with the driver and hardware/software configuration.
Without further ado, here is how the video performance breaks down, most interestingly between Intel Sandy Bridge VA-API and NVIDIA VDPAU.