Pop!_OS Dual GPU Graphics Switching Explained

Pop!_OS provides native, seamless dual GPU switching primarily designed for laptops equipped with both integrated graphics (Intel or AMD) and a discrete NVIDIA graphics card. Developed by System76, the operating system manages this hardware configuration out of the box through a custom background service called system76-power. This native implementation eliminates the need for complex manual configurations or unstable third-party scripts, allowing users to easily balance high graphical performance with battery longevity directly from the desktop interface or the command line.

The Underlying Engine: system76-power

At the core of Pop!_OS's GPU management is the system76-power daemon. Unlike traditional Linux setups that rely on legacy tools like Bumblebee or manual PRIME synchronization setups, system76-power directly controls power states, kernel modules, and driver interaction. It handles the low-level tasks of dynamically powering off the discrete GPU (dGPU) when not in use or configuring the display server to route render workloads through the discrete chip when demanded.

Available GPU Modes

Pop!_OS natively offers four distinct graphics profiles to accommodate different workloads:

Desktop Integration and Application Offloading

Pop!_OS integrates graphics management directly into the GNOME-based desktop environment. Users can view the current power profile and select a new GPU mode by clicking the system menu in the top-right corner of the top bar. Switching full profiles typically prompts a system reboot to safely unload or load the relevant kernel modules and reconfigure the Xorg or Wayland display server.

In Hybrid Mode, users can selectively launch specific applications on the dGPU without changing global settings. Right-clicking an application icon in the app launcher exposes the native option: "Launch using Dedicated Graphics Card." Alternatively, users can launch applications via the terminal with offloading flags using the command:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia application-name

Command-Line Management

For advanced users or automated scripts, system76-power offers a straightforward CLI interface. Users can inspect the current profile using:

system76-power graphics

Switching modes is executed by targeting the desired profile:

sudo system76-power graphics hybrid
sudo system76-power graphics integrated
sudo system76-power graphics nvidia
sudo system76-power graphics compute

Once the command executes, the system prompts the user to reboot to finalize the hardware switch. Through this tight coupling of driver packaging, desktop UI toggles, and backend power management, Pop!_OS delivers one of the most stable native dual-GPU experiences available on Linux.