Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 18+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium.
Dynamic GPU Power-Off Support For DRM Drivers
X.Org and the major open-source graphics drivers (Intel / Radeon / Nouveau) can now support PRIME DRI2 buffer sharing between drivers for laptops/computers with two GPUs (e.g. NVIDIA Optimus laptops) but with this support at present, even when sending the work to the other GPU, both GPUs remain powered up. So there really isn't any point to the current Optimus support when both GPUs end up being powered regardless of whether they're being utilized.
Fortunately, David Airlie posted patches for the DRM drivers to allow dynamic power off support. This dynamic power off support is targeting NVIDIA Optimus and AMD PowerXpress systems that can handle the secondary GPU being explicitly powered off. Airlie says, "Now that I've added X server support for secondary GPUs, it makes sense to start powering them down more often if we can. I've tested this code on two laptops, one intel/nouveau one intel/radeon It works, powertop says I use 5-6W less power."
This start of Linux GPU dynamic power off support is being implemented at present for the Radeon and Nouveau DRM drivers. Changes for providing this support are also needed within the Linux kernel's VGA switcheroo component.
The patches have received some criticism so far for basically re-inventing the existing Linux dynamic power management layer within the kernel. Airlie's reasoning for doing this is that there's three specific ACPI calls to power off the graphics processor slot for NVIDIA, Radeon, and Apple hardware rather than something completely generic. Plus he wanted to have some simple code for demo purposes.
The patches can currently be found on dri-devel and will hopefully be merged into the Linux 3.7 kernel.