Enabling Bumblebee on an XMG P304

Note that this article is more accurate & useful. Read that instead.

Optimus uses the integrated graphics controller to render to a surface when the discrete graphics card is not in operation. When discrete graphics is in operation, it renders to the surface hosted by integrated graphics.

There’s a good and detailed explanation of this here.

To find the integrated graphics on the PCI bus:

To find the discrete graphics on the PCI bus:

This is needed for the next step.

Install Bumblebee

Note that when the bumblebee installer runs, it only finds the discrete graphics card, not the VGA integrated graphics:

Update & upgrade afterwards.

Install a recent Proprietary Nvidia Driver

Tell Bumblebee where the integrated graphics is

As mentioned above, Bumblebee needs to know where the integrated VGA card is as well as the discrete 3D card.

Distressingly, it needs to know this information in the correct order. VGA must be specified first, then 3D:

After a reboot, you should be able to use optirun to run using discrete graphics. You’ll know it’s running discrete graphics because it’ll run at crazy fps, and the fan will sound like a vacuum cleaner!

To try out your new blitzbox, you can try this:

This should produce something like:

You could then turn on the graphics card to run this test again on faster hardware by doing:

On my box, glmark2 is actually showing a lower performance for the Nvidia card:

I probably need a more up to date driver, but at least the correct hardware is in use!

The above was wrong because the GPU bridge wasn’t in operation

Install the VirtualGL bridge.

Enable vsync

Some tearing while using the intel graphics can be fixed using information from this page: https://wiki.archlinux.org/index.php/Intel_graphics#Tear-free_video.

Leave a Reply

Your email address will not be published. Required fields are marked *