Hybrid graphics support in NVIDIA's Linux driver
NVIDIA is working on a new version of its proprietary Linux graphics driver that will add support for its Optimus switching technology, which is usually found used in laptops. The company's plans were revealed in an email from NVIDIA's Aaron Plattner, in which he asks open source developers for advice on some implementation details.
According to the email, a proof-of-concept driver with Optimus support already exists. To enable the NVIDIA graphics chip to output its image through the integrated graphics hardware, as is required by recent Optimus implementations, the driver makes use of the PRIME infrastructure. In particular, the PRIME infrastructure includes Linux 3.5's DMA buffer sharing mechanism dma_buf and other functions based on it, which permit rapid transfer of image data between graphics cores. PRIME also includes some X Server extensions that will be included in the forthcoming X Server 1.13 release. Some experimental open source graphics drivers are already using these functions to allow users to switch to graphics chips at runtime using X Server 1.13's RandR (Resize, Rotate and Reflect Extension) 1.5 feature.
It was a question about the lack of Optimus support in Linux that prompted Linus Torvalds' "NVIDIA, fuck you" outburst back in June. That NVIDIA is now able to implement Optimus support in its proprietary driver is primarily down to open source developers at other companies, with the PRIME infrastructure in the Linux kernel and X Server having been largely driven by Red Hat and Texas Instruments developers.