At long last, NVIDIA confirms they are working on supporting their multi-GPU Optimus
Technology under Linux with their proprietary graphics driver.
Thanks to the work done by the open-source community -- in large part by David Airlie of Red Hat -- with RandR 1.4
and GPU provider object support along with PRIME buffer sharing
, Optimus is becoming a reality on Linux. The DRM PRIME work in turn is built upon DMA-BUF
Aaron Plattner, one of the lead NVIDIA Linux engineers, publicly wrote "So I've been experimenting with support for Dave Airlie's new RandR 1.4 provider object interface, so that Optimus-based laptops can use our driver to drive the discrete GPU and display on the integrated GPU. The good news is that I've got a proof of concept working."
This work comes down to basically being able to share the buffer contents from one GPU and send it over to the other GPU that's driving the actual display output(s). Thanks to this shared multi-GPU implementation work being built upon the generic DMA-BUF infrastructure and X.Org Resize and Rotate (RandR) extension, multiple drivers can play together so that NVIDIA and Intel drivers can co-exist on the same system. Up to this point it's just been the open-source Nouveau, Radeon, and Intel drivers really playing with this support but it's wonderful to see the proprietary NVIDIA graphics drivers getting into this game. AMD has yet to acknowledge any plans for their Catalyst driver's support.
Concerns expressed by NVIDIA with the current implementation include the output source being responsible for allocating the shared memory, no fallback mechanism if sharing can't be negotiated, and it not being clear how memory should be allocated.
Aaron Plattner shared this NVIDIA Optimus Linux work via the dri-devel list
This is really great news since up to this point NVIDIA Optimus laptops have been a pain to use properly under Linux. While there is DMA-BUF/PRIME support for the Nouveau driver, using the reverse-engineered open-source NVIDIA driver isn't ideal there since the driver lacks reliable and useful power management support (a.k.a. a very short battery life and potentially a warm lap). Let's hope this support gets stabilized soon.
Word of NVIDIA Optimus Linux support comes after Linus Torvalds openly criticized NVIDIA
for lack of this feature that's becoming very common to modern notebooks.