The Video Acceleration State On Linux GPU Drivers

Posted by Michael Larabel on February 05, 2013

For those of you curious about the state of hardware-assisted video playback acceleration on the Linux graphics drivers, here's a brief overview.

Recently in the forums a Phoronix reader assembled a concise overview of various features offered by the Intel VA-API driver, the AMD Catalyst driver with XvBA, and NVIDIA's proprietary driver with VDPAU.
VDPAU on nvidia:
H264
VC1
MPEG2
MPEG4
BOB deinterlacing
WEAVE
Temp/Spatial deinterlacing
Color Processing
constantly improving
implemented in: mythv, mplayer, xbmc, vlc, many more

XVBA on AMD:
H264
VC1
BOB deinterlacing
SDK pending since at least 2K11 (phoronix has had some articles)
implemented in: xbmc(PR pending), xvba-vaapi-wrapper (development stopped 1 year ago)


VAAPI on Intel Hardware:
H264
VC1
MPEG2
MPEG4
10bit Color transformation (? not really sure here - used to help decoding hi10p)
BOB deinterlacing
constantly improving
implemented in: vlc, mplayer-vaapi, totem, gstreamer, xbmc, many more

To finish:
Audio part:
Intel: DTS-HD,TrueHD, LPCM (might require kernel patch, SandyBridge++), 192000 via hdmi
Nvidia: DTS-HD,TrueHD, LPCM (>= ION-2), 192000 via hdmi
AMD: No Bitstream at all, LPCM only 2 Channels, more channels only possible via pseudo formats like AC3, DTS that are coded on two real channels max 48000h via hdmi (spdif is a bit better)
As I have written in Phoronix articles many times before, my particular recommendation for those HTPC users or anyone just watching many movies/videos on their Linux desktop is to use NVIDIA GeForce GPUs with the proprietary driver. NVIDIA VDPAU is widely-supported and tends to "just work" on any modern Linux distribution, the binary driver, and all popular Linux multimedia software like XBMC, VLC, and MPlayer. NVIDIA's Video Decode and Presentation API for Unix does a very good job at offloading the video decode work to the graphics hardware rather than the CPU. Even a very low-end GeForce GPU can get the job done.

AMD's XvBA (X-Video Bitstream Acceleration) has had an interesting history and came much later after NVIDIA introduced VDPAU to bid farewell to the now rather useless XvMC. XvBA still isn't too widely supported by Linux multimedia software directly but rather relies on out-of-tree patches or using the VA-API wrapper library that is no longer actively maintained. At least though the Catalyst driver support for XvBA has stabilized over the years. Catalyst/XvBA at least does a better job than the open-source drivers for video acceleration, but from my experience and also hearing the opinions of others, Linux users tend to be much happier in a NVIDIA/VDPAU combination.

If you're after an open-source HTPC Linux stack, Intel's open-source driver with Sandy Bridge or Ivy Bridge hardware is definitely the way to go. VA-API has matured quite well over the years and the Intel VA-API hardware driver continues to be advanced and very well supported. The VA-API acceleration interface has also become fairly well adopted by the important open-source video programs.

For Nouveau and Radeon driver users, there is the video acceleration state tracker with Gallium3D, but unfortunately using shaders rather than the dedicated video engines found on modern graphics processors. Some users get this working with success, but it's not as good as using NVIDIA/VDPAU or Intel/VA-API.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Linux Desktop Security Could Be A Whole Lot Better
  2. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  3. New NVIDIA Linux Driver Supports The GeForce GTX 780
  4. Chrome 28 To Offer More Speed Improvements
  5. Digia Announces "Boot To Qt" Project
  6. X.Org Libraries Hit By Round Of Security Issues
  7. Wayland's Weston Gets Output Scaling Support
  8. Raspberry Pi Gets New Wayland Weston Renderer
  9. Debian GNU/Hurd 2013 Release Brings New Packages
  10. Intel Ultrabook Performance Is Faster With Mesa 9.2
  11. Hot Relocation HDD To SSD Support For Btrfs
Latest Forum Talk
  1. Linux Desktop Security Could Be A Whole Lot Better
  2. New NVIDIA Linux Driver Supports The GeForce GTX...
  3. Openbenchmarking.org main page is damaged
  4. Xserver 1.14 support will arrive with Catalyst...
  5. Microsoft Releases Skype For Linux 4.2, Has...
  6. X.Org Libraries Hit By Round Of Security Issues
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite