Here's some interesting work that provides support support for multiple rings to the open-source Radeon driver for supporting multiple compute rings, a-sync DMA engines, and UVD. Yes, for video decoding, but this is just prep work and there is still no UVD specifications or code.
Christian König, one of the recent AMD employees hired to work on the open-source driver stack
who was hired in part due to AMD porting the open-source Linux driver to Windows
, has introduced a multi-ring support branch of the Radeon DRM driver.
Christian writes to the developers, "to support multiple compute rings, async DMA engines and UVD we need to teach the radeon kernel module how to sync buffers between different rings and make some changes to the command submission ioctls."
The German open-source developer acknowledges, "we can't release any documentation about async DMA or UVD (yet)." Yet is the keyword. John Bridgman and others have long acknowledged they would be looking in ways to possibly provide open-source video support. With the WEC7 open-source driver, accelerated video decoding support becomes a bit more pressing. However, the concern has been with publishing specifications or code on the Unified Video Decoding engine could potentially compromise AMD's Digital Rights Management abilities for playback of protected content on Windows. So far though there haven't been any signs that open-source UVD support may be coming soon, besides this prep work today and word that futute Radeon GPUs might be more open-source friendly by boasting a more modular UVD engine where the Digital Rights Management concerns would be lessened. For now there is basic video support in Radeon Gallium3D using XvMC/VA-API/VDPAU by using GPU shaders and not the ATI/AMD video engine itself.
Back onto the news for today, this multi-ring support for now is focusing on getting additional compute rings for AMD Cayman (Radeon HD 6900 series) hardware running. There's hardware bugs that need to be worked around in this implementation and won't be of much production benefit right now to open-source users, but will hopefully become important in the future.
Christian is looking to get the multi-ring support into the drm-next branch as soon as possible. This work is very invasive and as a result will become hard to rebase against new patches. This would make the Radeon multi-ring support part of the Linux 3.3 kernel, but not necessarily of any end-user benefit at that time.
Find his mailing list message here