NVIDIA Optimus on Dell XPS 15z: performance and battery consumption comparison

I recently bought a Dell XPS 15z notebook, with a Sandy Bridge i5, 1366×768 display1  and a NVIDIA GeForce GT 525M video card. This graphic card support Optimus technology, a mechanism to switch from integrated Intel graphic to discrete GPU to deploy full horse-power when needed, and save precious battery life when 3D is not required. Unfortunately, Optimus is not (yet?) supported by Linux. Anyway, a project called bumblebee promises to achieve similar results. Although switching is not (yet?) automatic, looks like bumblebee keep the word: I deeply tested my notebook with each available driver, and bumblebee + nvidia proprietary2 driver is the best solution so far, definitely.

Test methodology

Tests have been run on a fresh oneiric install, updated to august 23rd. I wasn’t able to use jockey to install drivers due to crashes of the software a few seconds after launch, so I managed drivers installation manually.

Test was aimed to evaluate battery consumption and performance. I used “grep rate /proc/acpi/battery/BAT0/state” to check battery consumption immediately after boot; I run glxgears in fullscreen3; further, I run nexuiz for a more realistic test, in full screen, maximum resolution and full effects. FPS value has been averaged after a 20 secs run of glxgears and a few minutes of playing first nexuiz level4

Test #1: Intel driver (with nouveau blacklisted)

lsmod reports only intel drivers loaded
Battery rate: 1800mW
glxgears: 282 FPS
Nexuiz: average 20 FPS, ranging from a minimum of 13 FPS to a peak of 27

Nothing to comment here.

Test #2: Intel driver (without nouveau blacklisting)

lsmod reports “nouveau” and intel drivers loaded
Battery rate: 2100 mW
glxgears: 283 FPS
Nexuiz: 19 FPS, ranging from a minimum of 12 FPS to a peak of 29

Performance was identical to Intel driver without nouveau loaded, altough battery rate was higher. I suppose nvidia video card is activated, but it doesn’t help at all with 3D rendering. Looks like this solution has only downsides compared to the previous one.

Enabling nouveau should have added /sys/kernel/debug/vgaswitcheroo/, witch allows to manually enable or disable the nvidia GPU. At least, this is what happens on Natty. Instead, this doesn’t work on Oneiric. If someone has a reason for this, please feel free to comment.

Test #3: NVIDIA proprietary driver

lsmod reports “nvidia” and intel drivers loaded
Battery rate: 2100 mW
glxgears: N/A
Nexuiz: N/A

I purged xserver-xorg-video-nouveau and installed nvidia-current due to the jockey crashes, and it was an epic fail. 3D was not available at all (glxgears reported “extension ‘GLX’ missing”) and Nexuiz didn’t started as well. I tried to reconfigure graphic with nvidia-xconfig, but it caused X not to start at all (I had to delete the autogenerated /etc/X11/xorg.conf file to fix it). I never had a NVIDIA card and my experience with NVIDIA-related stuff is zero, so maybe I made something wrong or should tweak something else. Suggestions are welcome.

Test #4: Bumblebee with NVIDIA proprietary drivers

lsmod reports intel drivers only loaded (unless optirun is executed)
Battery rate: 1600mW
glxgears: 284 FPS
optirun glxgears: 79 FPS
nexuiz: 21 FPS, ranging from a minimum of 9 FPS to a peak of 29 FPS
optirun nexuiz: 43 FPS, ranging from minimum of 33 FPS to a peak of 57 FPS.

I purged nvidia-current and installed bumblebee from PPA. Actually, bumblebee reinstalled nvidia-current but it worked quite well right now. During installations, bumblebee needs a configuration suitable for your machine. Several configurations are already available for many systems (bumblebee will download and suggests you good ones for your box). I choosed what was listed as “Profile 7: Dell System XPS 15z: Age (working)”, then choosed “XV (Default)” as Image transport. Further, I had to blacklist nouveau to avoid weird issues like lightdm freezes and optirun not properly working.

optirun is your friend here. You launch it passing as argument the program you want your nvidia card to be enabled for, and it loads nvidia driver, enables your card, then launches your software. Once done, it disables the card and rmmod’s nvidia, leaving every graphic duty to Intel integrated CPU. Results are quite different now: altough optirun glxgears reported a great performance loss 5, the NVIDIA GPU made quite the difference playing nexuiz. Interestingly, battery rate is a bit lower than with Intel drivers only . It could be an artifact, or maybe this poll was particularly lucky.

 

 

  1. FullHD display has been made available a few weeks after I bought my notebook, dammit!
  2. I know, proprietary stuff stinks and I don’t like it so much, but open source solutions don’t work, at least currently
  3. I exported vblank_mode=0 to get a vsync-independent value
  4. I noticed a lengthening of playing time during test. I suppose nexuiz is quite addictive 🙂
  5. I’m not sure why this happens, but I suppose this is a kind of artifact or such. Explanations are welcome