Thanks to the work of
Hans de Goede and many others, dual-GPU (aka
NVidia Optimus or
AMD Hybrid Graphics) support works better than ever in Fedora 25.
On my side, I picked up some work I originally did for Fedora 24, but ended up being blocked by hardware support. This brings better integration into GNOME.
The
Details Settings panel now shows which video cards you have in your (most likely) laptop.
dual-GPU Graphics
The second feature is what Blender and 3D video games users have been waiting for: a contextual menu item to launch the application on the more powerful GPU in your machine.
Mooo Powaa!
This demonstration uses a
slightly modified GtkGLArea example, which shows which of the GPUs is used to render the application in the title bar.
on the integrated GPU
on the discrete GPU
Behind the curtain
Behind those 2 features, we have a
simple D-Bus service, which runs automatically on boot, and stays running to offer a single property (
HasDualGpu) that system components can use to detect what UI to present. This requires the "
switcheroo" driver to work on the machine in question.
Because of the way applications are launched on the discrete GPU, we cannot currently support D-Bus activated applications, but GPU-heavy D-Bus-integrated applications are few and far between right now.
Future plans
There's plenty more to do in this area, to polish the integration. We might want applications to tell us whether they'd prefer being run on the integrated or discrete GPU, as live switching between renderers is still something that's out of the question on Linux.
Wayland dual-GPU support, as well as support for the proprietary NVidia drivers are also things that will be worked on, probably by my colleagues though, as the graphics stack really isn't my field.
And if the hardware becomes more widely available, we'll most certainly want to support hardware with hotpluggable graphics support (whether gaming laptop "power-ups" or workstation docks).
Availability
All the patches necessary to make this work are now available in GNOME git (targeted at GNOME 3.24), and backports are integrated in Fedora 25, due to be released shortly.