Primus: Better Performance And Less Power Consumption For Bumblebee [Optimus Hybrid Graphics Chipsets]

Nvidia Optimus is a technology used to increases battery life by switching between two graphics adapters (a low-performance integrated Intel graphics adapter and a high-performance one by Nvidia) within a computer system. Optimus GPU switching is officially only supported on Windows, but it’s also unofficially available on Linux thanks to the Bumblebee project.
Primus brings better performance and less power consumption when using Bumblebee, by replacing VirtualGL. According to the Bumblebee G+ page, this has the following advantages over the optirun (VirtualGL) solution used by default in Bumblebee:Less overhead (better framerates) and cleaner solution (no networking or compression involved at all)Fixes the “bug” that causes Bumblebee to shut down the GPU too early sometimes (no more need for the “optirun bash” workaround)Less buggy/glitchy, easier to debugOnly uses/starts secondary GPU for OpenGL parts of applications – everything else remains on your main GPU (power savings)
The Bumblebee developers explain what Primus does and the difference between Primus / optirun in simple terms in a comment on their G+ page:

Bumblebee uses VirtualGL to copy the image generated by the second (faster) GPU to your display. VirtualGL was intended for use over a network though, so it takes a great many steps to enable this (compression, sending the image over a network link, decompression, etc).

Primus doesn’t perform all these “extra” steps, instead taking a more direct route (copying the rendered image in memory to the other GPU, then displaying there). In theory this should get you better performance as well as better compatibility. Running applications will “see” the OpenGL implementation of your real hardware, nothing virtual is presented to them.
For comparison, here are the framerates I get on my laptop when using the integrated Intel graphics, when using the Nvidia graphics card using optirun and using primusrun (this is just for FPS and not an indicator for the whole performance!):
glxspheres intel gpuIntegrated (Intel) graphics
glxspheres optirun bumblebeeoptirun (default in Bumblebee) using the Nvidia GPU
glxspheres primusrun bumblebeePrimus using the Nvidia GPU
As you can see, the FPS using

Category: Ubuntu | Comments Off on Primus: Better Performance And Less Power Consumption For Bumblebee [Optimus Hybrid Graphics Chipsets]

How To Enable Intel SNA Acceleration In Ubuntu

SNA is a 2D acceleration architecture for the open source Intel Linux graphics driver that provides improved X.Org driver performance, and thus, better desktop user experience. The name stands for “Sandy Bridge New Acceleration” and contrary to its name, it not just for Sandy Bridge but for previous Intel graphics generations as well.

Here’s how to enable Intel SNA in Ubuntu 12.04 or 12.10.

According to the wiki (link; cached copy since the page seems down right now), SNA should work with i830-i865G and newer Intel chipsets.
You can see some old UXA (used by default) vs SNA benchmarks at Phoronix.

intel sna ubuntu

Enable Intel SNA in Ubuntu 12.10
Intel SNA is available in Ubuntu 12.10 without installing any extra packages, but it’s not enabled by default.
To enable SNA, you need to create a /etc/X11/xorg.conf file:
gksu gedit /etc/X11/xorg.conf
And paste the following:

Section “Device”
Identifier “intel”
Driver “intel”
Option “AccelMethod” “sna”
Then save the file, log out and log back in.

In my test (using an Intel HD 3000 GPU), there were some artefacts when using Intel SNA in Ubuntu 12.10, which don’t occur after adding the Xorg Edgers PPA so if that’s the case for you too, follow the steps under the alternative method below.
Or, if you just want to revert the changes, remove the xorg.conf file:
sudo rm /etc/X11/xorg.conf
Then log out and log back in.

Enable Intel SNA in Ubuntu 12.04 (alternative method for Ubuntu 12.10)
For Ubuntu 12.04 (or for Ubuntu 12.10, if the method above doesn’t work properly for you), you can use the Xorg Edgers PPA which has packages with SNA enabled by default for Intel.

Warning: this PPA uses Xorg packages from GIT and while I didn’t encounter any issues (I’ve used it for Ubuntu 12.04 and I’m using it now in Ubuntu 12.10), things may break. Use it at your own risk!
Add the Xorg Edgers PPA using the following command:
sudo add-apt-repository ppa:xorg-edgers/ppa
Then launch the Update Manager (now called Software Updater in Ubuntu 12.10) and update your system. Once the update finishes, log out and log back in (though a restart is probably better since this PPA upgrades many system packages).
If you want to revert the changes and go back to the drivers available in the official Ubuntu repositories, use the commands below:sudo apt-get install ppa-purge
sudo ppa-purge ppa:xorg-edgers/ppa

Originally published at WebUpd8: Daily Ubuntu / Linux news and application reviews.

Related Blogs

    Category: Ubuntu | Comments Off on How To Enable Intel SNA Acceleration In Ubuntu