DragonFly On-Line Manual Pages
VGA_SWITCHEROO(4) DragonFly Kernel Interfaces Manual VGA_SWITCHEROO(4)
vga_switcheroo, apple_gmux -- support for Apple laptops with dual GPUs
To enable support of dual GPUs in kernel, include the following line in
the kernel configuration file:
When the system has booted, load the apple_gmux driver before the native
graphics drivers, for example i915(4).
Alternatively, you can put these two lines in rc.conf(5):
As a result, vga_switcheroo switches the gmux controller so that all out-
put comes from the IGD.
Apple MacBook Pro laptops have hybrid graphics, i.e. two GPUs, one being
the integrated graphics device (IGD) and the other being the discrete
graphics device (DIS), sometimes called the dedicated graphics device.
Gmux is a microcontroller that controls the output of these GPUs.
vga_switcheroo is the higher level module that facilitates switching
between the two GPUs using the lower level apple_gmux driver. When the
system boots and vga_switcheroo is enabled, apple_gmux registers with it.
It then acts as a handler. The two graphics adapters will also detect
the presence of vga_switcheroo and register as clients.
In the current DragonFly specific implementation, upon detecting the
presence of apple_gmux, the Intel driver will call vga_switcheroo to
switch the gmux so that all output comes from the IGD. Switching to DIS
is not yet supported.
Apple MacBook Pro laptops with dual GPUs.
The vga_switcheroo driver was added in DragonFly 4.9.
The vga_switcheroo driver was ported to DragonFly from linux 4.8 by
Peeter Must. He also wrote this manual page.
DragonFly 5.3 May 30, 2017 DragonFly 5.3