1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

The State Of Gallium3D Video Decoding

Mesa

Published on 14 September 2008 03:33 PM EDT
Written by Michael Larabel in Mesa
Comment On This Article

With the Gallium3D status update provided during XDS 2008 and other recent work for this advanced 3D graphics architecture (such as enhanced debugging capabilities), we were left to wonder where the generic GPU video decoding is at in its implementation. Today we have an answer.

When using a modern CPU, offloading the video decoding to the graphics processor of standard definition video can be somewhat irrelevant, but to facilitate this there is the X-Video Motion Compensation API. XvMC is an extension to the X-Video interface but with support for offloading motion compensation and IDCT for MPEG streams to the graphics processor. Work though is underway to have XvMC support more video standards and talking with Keith Packard earlier this month he still sees this happening since VA-API isn't ready for the limelight. One of the other problems though with XvMC is its limited adoption.

Intel has open-source XvMC support for their newer hardware and this X-Video Motion Compensation support continues to be refined. On the NVIDIA side though, their binary driver has supported XvMC but that was dropped with the GeForce 8 series, which means anyone with a newer GPU is left without any of this GPU video acceleration. The open-source Nouveau driver developers though are working on XvMC for their reverse-engineered driver.

Owners of ATI/AMD hardware using either the open or closed source drivers have been left without any form of XvMC support. However, AMD is working on UVD2 support for Linux with accelerating standard and high-definition video playback. Through their newly-introduced XvBAW library it also looks like they are working on XvMC support. The open-source ATI drivers right now are left in the dark.

Wouldn't it be nice though if XvMC would "just work" across all video hardware? As part of his 2008 Google Summer of Code project, Younes Manton has been trying to develop a universal implementation for GPU-accelerated video decoding. As we shared in an earlier update, Younes has been developing a generic video decoding mechanism that would work on any driver using the Gallium3D framework or even its soft-pipe driver for that matter. He is writing an XvMC front-end for Gallium3D that handles much of the video decoding using the shaders found on a graphics card.

The last project update was over a month ago and since then the Google Summer of Code has officially ended, but there was no accompanying update. However, we've heard back from Younes Manton on where he is at with his generic GPU-accelerated video decoding work and what's left to be accomplished. In an email to Phoronix, Younes shares that his project was successful and passed GSoC. He has fully implemented the XvMC API with the exception of interlaced videos and sub-pictures. While some optimizations have also been made to the decoding process at a low-level, rendering is still slow. Younes explains that the number of triangles, fill-rate, and tex-fetch numbers are all within the limits for the hardware being used, but the problem may be originated with driver or memory management problems.

Younes is also exploring hardware decoding where possible for IDCT. Stephane Marchesin has been working on this project too and they hope to push some NV40 code into the Gallium3D driver. Finally, this generic GPU video code is ready to be moved from Nouveau to Mesa. While the Google Summer of Code has ended, Younes Manton is still continuing to work on this code.

It's certainly nice to see this project progressing, but it's unfortunate that the rendering process still isn't at a sufficient speed. We hope this will change though as this all has come about in just the past couple of months.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. Intel Xeon E5-1680 v3 & E5-2687W v3 Compared To The Core i7 5960X On Linux
  2. Intel 120GB 530 Series SSD Linux Performance
  3. Btrfs/EXT4/XFS/F2FS RAID 0/1/5/6/10 Linux Benchmarks On Four SSDs
  4. AMD's Windows Catalyst Driver Remains Largely Faster Than Linux Drivers
Latest Linux Articles
  1. Apple OS X 10.10 vs. Ubuntu 14.10 Performance
  2. Mesa 10.5-devel Brings Some Intel Haswell HD Graphics Changes Over Mesa 10.3
  3. NVIDIA vs. Nouveau Drivers With Linux 3.18 + Mesa 10.4-devel
  4. Is The Open-Source NVIDIA Driver Fast Enough For Steam On Linux Gaming?
Latest Linux News
  1. Meizu's Ubuntu Phone Not Expected Until Early Next Year
  2. DragonFlyBSD 4.0 Drops i386 Support, Improves Graphics
  3. Expensive "Free/Libre Software Laptop" Uses A NVIDIA GPU
  4. QEMU 2.2-rc3 Released, Final Release Pushed Back By Couple Days
  5. 64-bit ARM FreeBSD Support Is Taking Shape
  6. GCW Zero Starts Seeing New Game Releases
  7. Intel's Cherry Trail Delayed To Next Year
  8. Bq Introduces More Android Devices, But Still No Ubuntu Phones
  9. Qt 5.4 Release Candidate Expected Later This Week
  10. ArrayFire Accelerated Compute Library Open-Sourced
Latest Forum Discussions
  1. Updated and Optimized Ubuntu Free Graphics Drivers
  2. Hurrican SDL Port
  3. Roadmap to Catalyst 14.10 ?
  4. how to configure module phoromatic ?
  5. PulseAudio 6.0 Is Coming & Other Linux Audio Plans For The Future
  6. Debian Developer Resigns From The Systemd Maintainership Team
  7. Cant get working Kaveri APU - A10-7850k
  8. Script for Fan Speed Control