R600 Gallium3D Now Does Buffer Copies With CP DMA

Written by Michael Larabel in AMD on 9 January 2013 at 03:00 AM EST. 13 Comments
AMD
Marek Olšák has implemented support for buffer copying using the CP DMA engine on Radeon HD 4000 "R700" GPUs and newer.

Implemented for the Linux 3.8 kernel was a-sync DMA engine support within the Radeon DRM driver. This big AMD code drop is capable of delivering performance improvements. It's described as, "The async DMA can do copy/moves independent of the shader engine. So while the shader part of the GPU is busy with the rendering we can still upload new data with the DMA at the same time. Additional to that it is quite a bit more efficient than the shader engine when you just want to copy some data from A to B."

With the command submission checker in place and other improvements to the Radeon a-sync DMA code, Mesa is now taking advantage of the support. In the Tuesday code commit by Marek, the CP DMA engine is now used on R700, Evergreen, and Cayman GPUs. This is the Radeon HD 4000/5000/6000 series GPUs. The support isn't implemented for the Radeon HD 2000/3000 (R600) GPUs since there appears to be flushing issues with the destination buffer containing garbage.

This commit touches just over 100 lines of code.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week