VGA_SWITCHEROO(4)

NAME
vga_switcheroo, apple_gmux - support for Apple laptops with dual GPUs

SYNOPSIS
To enable support of dual GPUs in kernel, include the following line in the kernel configuration file:

options VGA_SWITCHEROO

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):

    apple_gmux_load="YES"
    i915_load="YES"

As a result, vga_switcheroo switches the gmux controller so that all output comes from the IGD.

DESCRIPTION
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.

IMPLEMENTATION NOTES
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.

HARDWARE
Apple MacBook Pro laptops with dual GPUs.

SEE ALSO
i915(4), rc.conf(5)

https://01.org/linuxgraphics/gfx-docs/drm/gpu/vga-switcheroo.html

HISTORY
The vga_switcheroo driver was added in DragonFly 4.9.

AUTHORS
The vga_switcheroo driver was ported to DragonFly from linux 4.8 by Peeter Must. He also wrote this manual page.