Bickering Continues About NVIDIA Using DMA-BUF
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.