Will Nouveau Driver Impact Ubuntu 12.04's Battery?
Posted by Michael Larabel on March 31, 2012
Ubuntu 12.04 LTS is shipping with the Nouveau driver by default as the open-source (reverse-engineered) NVIDIA graphics driver support, just as they have done in previous releases, but will this cause your mobile device to go through increased power use?
Last night I shared a preview of the best and worst case examples of power consumption on Ubuntu 12.04 LTS. In a good case, for newer PC hardware, an Intel notebook was going through nearly 40% less power while idling on Ubuntu 12.04 compared to Ubuntu 11.10 and earlier releases. However, for older PC hardware, Precise Pangolin's power consumption was up sharply -- 30% higher than when the Intel "Dothan" was in its prime.
The results in full of a wide-range of Ubuntu 12.04 power consumption tests will be published next week, but for old hardware you're really better off not upgrading to Ubuntu 12.04. Anyhow, as another quick test carried out was to see what the Nouveau vs. NVIDIA official driver power consumption difference is under this forthcoming Ubuntu Long-Term Support (LTS) release.
Ubuntu 12.04 is shipping with the Linux 3.2 kernel and Mesa 8.0 by default with the Nouveau Gallium3D driver enabled -- a change they first made in Ubuntu 11.10 to have open-source NVIDIA OpenGL acceleration "out of the box" for users. For desktop hardware from both ATI/AMD Radeon and NVIDIA GeForce GPUs, earlier results have shown the proprietary drivers to lead to greater power efficiency since those official drivers support a range of features not found within the open-source drivers and have been much better tuned by engineers at the respective companies.
The open-source drivers have slowly been gaining greater power management features, but they're yet another area where there isn't feature parity to the binary blobs. However, for the NVIDIA Quadro FX 880M graphics (derived from the GT216 core) on a Lenovo ThinkPad W510 with Intel Core i7 CPU, its power consumption with the Nouveau driver isn't bad compared to the official NVIDIA Linux driver.
When this notebook having a fresh install of Ubuntu 12.04 LTS from 30 March, the idle power consumption from the Nouveau driver was right in line with the proprietary NVIDIA driver at just over 19 Watts.
The GPU core temperature was also thus right in line as well between the open and closed-source NVIDIA Linux drivers. The NVIDIA binary Linux driver fully supports PowerMizer for switching between GPU (core and video memory and voltage) performance levels automatically based upon certain conditions while the Nouveau driver is only now gaining basic re-clocking support, but it's largely left to be a manual process for now. Rather than using a nice utility like nvidia-settings, the re-clocking must be done via writing to Nouveau sysfs entries. Even then, it's not supported by all NVIDIA GPUs at the moment and there's other bugs and limitations. As shown from the Nouveau driver system logs, the dmesg for the ThinkPad with NVIDIA Quadro FX 880M on Ubuntu 12.04 LTS was set to run by default in its middle performance state.
[drm] nouveau 0000:01:00.0: 3 available performance level(s)
[drm] nouveau 0000:01:00.0: 0: core 135MHz shader 270MHz memory 135MHz timing 2 voltage 800mV
[drm] nouveau 0000:01:00.0: 1: core 405MHz shader 810MHz memory 324MHz timing 1 voltage 850mV
[drm] nouveau 0000:01:00.0: 3: core 550MHz shader 1210MHz memory 790MHz timing 0 voltage 930mV
[drm] nouveau 0000:01:00.0: c: core 405MHz shader 810MHz memory 324MHz voltage 930mV
Being stuck to a lowered performance state by default and not dynamically changing states based upon graphics load, this did lead to more favorable power consumption results for the Nouveau driver when experiencing OpenGL load.
So when running Doom 3 on Nouveau, the power consumption was significantly lower (by about eight Watts). However, the GPU wasn't being fully utilized and it was stuck running slower.
The binary NVIDIA driver was about three times faster at running the Doom 3 game over the handicapped Nouveau.
The OpenGL performance, thermal, and power consumption story was basically the same for OpenArena too.
So while the open-source Nouveau driver can't exactly compete with the binary NVIDIA Linux driver "out of the box" in performance terms, at least it's not burning through excessive amounts of power with the GT216-based Quadro mobile graphics processor. These benchmarks are available on OpenBenchmarking.org via 1203307-SU-NVIDIAQUA48.
For those wanting to explore Nouveau re-clocking, see Nouveau Reclocking: Buggy, But Can Boost Performance. New Nouveau driver benchmarks under different conditions are forthcoming now that the Nouveau DRM/KMS driver has left the staging area of the kernel for Linux 3.4. The Nouveau developers also continue to work on some other power optimizations too.