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 Benchmarking Platform
Phoromatic Test Orchestration

The State Of Gallium3D Video Decoding

Mesa

Published on 14 September 2008 03:33 PM EDT
Written by Michael Larabel in Mesa
Add A Comment

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 News
  1. Phoronix Test Suite 5.8 Milestone 5 Brings Near Final "Belev" Experience
  2. For AMD Users, Linux 4.2 Will Bring The New AMDGPU Driver & VCE1 For Radeon
  3. Atomic Mode-Setting Still Baking For Samsung's Exynos DRM Driver
  4. Ubuntu Phone Update This Month Brings Many Improvements
  5. Fedora's "Fedup" To Be Replaced In Fedora 23
  6. Android M Should Bring Greater Performance & Efficiency
  7. AMD Teases Upcoming Radeon "Fiji" GPU Launch
  8. Dell Makes An Ubuntu Installation Guide, Suggests Users Try It Out
  9. Running Linux On The Intel Compute Stick
  10. AMD Launches The A10-7870K "Godavari" APU
Latest Articles & Reviews
  1. Opening The Gates To Our Daily Open-Source Linux Benchmark Results
  2. The Latest Features For Linux Performance Management + Benchmark Monitoring
  3. Noctua NH-U12DX i4 + NF-F12
  4. Btrfs RAID 0/1 Benchmarks On The Linux 4.1 Kernel
Most Viewed News This Week
  1. NVIDIA's Proprietary Driver Is Moving Closer With Kernel Mode-Setting
  2. Zapcc Claims To Be A "Much Faster C++ Compiler"
  3. OpenWRT 15.05 Preparing Improved Security & Better Networking
  4. Features Added To Mesa 10.6 For Open-Source GPU Drivers
  5. Ubuntu's LXD vs. KVM For The Linux Cloud
  6. The Latest Linux Kernel Git Code Fixes The EXT4 RAID0 Corruption Problem
  7. Fedora 22 Is Being Released Next Tuesday
  8. Friction Building Around An Ubuntu Community Council Decision