Is there a need for something like `switcherooctl` when using Linux on the 16?

Does the 16 support running most graphics on the integrated GPU and offloading certain applications to the dedicated GPU? I previously had a Nvidia/Intel setup which required something like this, and since I swapped my SSD over I still have it installed. Unfortunately running e.g. Steam with switcherooctl on the 16 fails. In the event that the GPU is always rendering everything, is there a way I can disable it temporarily or per-boot (I’m using NixOS, so I could set some /etc and systemd settings in a specialization to select at boot)?

I believe what you’re looking for is called Nvidia Optimus. Generally the driver support is hit or miss on linux and the BIOS/UEFI needs to support it. Check nixpkgs for optimus or the video drivers options.

This thread seems relevant.

By default, everything should be running on the iGPU with the dGPU powering off completely after 5 seconds of inactivity.

For OpenGL-based applications, you can force the use of the dGPU via setting DRI_PRIME=1 (example, DRI_PRIME=1 glxgears) or via switcherooctl launch -g 1 <command> (which sets DRI_PRIME for you).

For Vulkan-based applications, they will likely auto-select the dGPU by default as Vulkan prioritizes discreet GPUs. Some applications let you override this in their own settings but you can set MESA_VK_DEVICE_SELECT="1002:15bf!"[1] to force the use of the iGPU otherwise.

[1] See here on the Arch wiki for a little more info on this.

1 Like

It seems to work. I have determined that Steam not working is in fact a Steam issue and is fixed by running it on the iGPU once to disable webview hardware acceleration, and then it works fine on the dGPU.