Bickering Continues About NVIDIA Using DMA-BUF
Written by Michael Larabel in Nouveau on 18 October 2012 at 12:02 PM EDT. 328 Comments
The fight continues about not changing the Linux kernel symbols for DMA-BUF so that NVIDIA can support NVIDIA Optimus Technology within their proprietary graphics driver.

NVIDIA is wanting to support DMA-BUF with their driver so that buffers can be shared between its driver and the other open-source (and potentially other closed-source) graphics drivers in multi-GPU systems, such as the notorious notebooks sporting both NVIDIA discrete graphics and Intel integrated graphics. NVIDIA has been after using DMA-BUF for a number of months but currently the symbols for it are exported as being GPL-only so their non-GPL driver can't access them.

NVIDIA has kindly requested multiple times so that it can share the buffers with this kernel infrastructure, but the change hasn't happened. NVIDIA isn't looking to steal a bunch of kernel code and pump it into their binary blob, they are just looking to use this unified infrastructure for passing buffers between drivers in a standardized way. ARM SoC vendors with proprietary drivers would also like to leverage DMA-BUF between their binary drivers too.

The main critic of changing the DMA-BUF symbols to not be exported as GPL-only is Alan Cox. Alan has been very vocal about rejecting the NVIDIA-requested change as he doesn't want NVIDIA's binary -- but widely-used -- graphics driver to support the DMA-BUF infrastructure. NVIDIA is now trying to properly support Optimus, but they're being blocked by Alan Cox and others.

Cox sees his rights being violated if DMA-BUF is not GPL-only even though this is kernel infrastructure code and is in the name of improving driver interoperability. Even David Airlie and other open-source graphics drivers are in support of this change. "I'd rather let the users have some hope of a sane architecture, instead of nvidia having to replace even more userspace code and kernel code with their own insane shit."

Without this, NVIDIA will be forced to reinvent the wheel and come up with their own infrastructure that might not work with the other open-source DRM drivers or just abandon their Optimus support plans. NVIDIA isn't going to simply open-source their driver and they need a way to share buffers/data with the other drivers.

Telling Linux desktop users to use Nouveau instead of the NVIDIA blob also isn't a legitimate option. The Nouveau driver is much slower than the binary driver, doesn't even have proper re-clocking support right now, the power management situation is a mess, the highest GL compliance reached right now is OpenGL 3.0, and many other features are lacking.

The latest mailing list discussion posts -- which largely come down to fighting between Alan Cox and David Airlie -- can be seen on linaro-mm-sig.

About The Author
Author picture

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 10,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 automated benchmarking software. He can be followed via Twitter or contacted via

Related Nouveau News
Popular News
Trending Reviews & Featured Articles