NVIDIA Has Major New Linux Driver: Optimus, RandR 1.4
NVIDIA announced the 319.12 Beta Linux graphics driver announcement this morning. While the number may seem mundane, this is a very exciting NVIDIA Linux graphics driver update. It presents work that will benefit the agonized NVIDIA Optimus Linux users, provides new RandR functionality, and other new features.
The 319.12 Beta is the first NVIDIA Linux graphics driver in the 319.xx series and it offers a significant number of user-facing changes. Among the great work to find with the NVIDIA 319.12 Linux graphics driver beta includes:
NVIDIA OPTIMUS! While not blatantly obvious from the published change-log, one of the items notes, "Added initial support for RandR 1.4 Provider objects with the Source Output capability, which can be used to render the desktop on an NVIDIA GPU and display it on an output connected to a provider with the Sink Output capability, such as an Intel integrated graphics device or a DisplayLink USB-to-VGA adapter. See the README for details." With RandR 1.4 it allows NVIDIA to now render a game or other application on a dedicated NVIDIA GPU and to then pass the scan-out buffer to another GPU for displaying to the screen, such as an integrated Intel graphics processor or a USB-based DisplayLink adapter.
NVIDIA Optimus has been a much sought after feature by NVIDIA Linux users with many laptops today now shipping with the hybrid Intel-NVIDIA GPU design. NVIDIA confirmed last year it was working on Optimus Linux support and they were working on some PRIME helper patches to workaround being blocked from using DMA-BUF. This came after last year, Linus Torvalds was harshly criticizing NVIDIA and called them the worst company ever among other harsh words and gestures.
the NVIDIA driver read-me are more details on the graphics display loffloading with RandR 1.4. Using this feature requires X.Org Server 1.13, a modern Linux kernel with the very latest GEM/PRIME bits, and XRandR 1.4. There's also a special xorg.conf setup required for NVIDIA to act as a RandR 1.4 output source provider.
With this implementation, there's no synchronization currently performed so "tearing" on the screen may happen and render offload is not supported nor can the NVIDIA adapter be used as an output sink. There's also no word on how power management is performed or if the NVIDIA binary driver will be able to power-down the GPU when not being utilized in this configuration. If there isn't sufficient power management, Optimus will still be useless to NVIDIA Linux laptop users.
Aside from this Optimus work, other highlights include:
- Support for restoring of EFIFB consoles on UEFI systems with VGA/DVI/HDMI/LVDS/DP outputs.
- Support for the NVIDIA GeForce GTX 650 Ti BOOST graphics card.
- Support for application profiles to the NVIDIA client-side GLX implementation.
- Support within the NVIDIA Installer to cryptographically sign the NVIDIA kernel module as would be needed for SecureBoot.
- RandR 1.3 panning support.
- A new nvidia-modprobe user-space utility.
- Improved debugging of the NVIDIA OpenGL libraries by including proper stack unwinding information.
- RanDR Border and BorderDimensions output properties.
- Better HyperMesh performance for some versions on Quadro GPUs.
- A new NVIDIA VDPAU page is present on the NVIDIA Settings control panel to display decoding capabilities of GPUs.
- Memory leak, bug, and performance fixes.
Plus there's many other smaller changes throughout. The NVIDIA 319.12 Beta driver is quite exciting for NVIDIA Linux desktop users!
Those interested in downloading this new NVIDIA Linux x86/x86_64 binary driver can find the download link within this forum thread.