Hello,
I’m running a laptop with a AMD iGPU and a Nvidia dGPU, when I run OpenGL programs like Minecraft the chosen GPU is listed as “lllvmpipe”, I have tried to use “hardware.nvidia.prime.offload” instead of Sync and that does fix the OpenGL problem but it breaks Vulcan games, they become laggy stutter and freeze when they loose focus.
I have seen multiple other non-NixOS users with simular problems but I have been unable to find a fix that works for me.
When OpenGL dosen’t work I get this command output:
$nix-shell -p virtualgl --command 'glxinfo | grep "OpenGL render"'
pci id for fd 5: 10de:25a2, driver (null)
pci id for fd 6: 10de:25a2, driver (null)
pci id for fd 7: 10de:25a2, driver (null)
glx: failed to create dri3 screen
failed to load driver: nvidia-drm
OpenGL renderer string: llvmpipe (LLVM 21.1.7, 256 bits)
Cleaned and annotated expert of my configuration.nix:
services.xserver.enable = true;
services.xserver.videoDrivers = ["nvidia"];
hardware.graphics.enable = true;
hardware.nvidia = {
dynamicBoost.enable = true;
modesetting.enable = true;
powerManagement.enable = false;
powerManagement.finegrained = false;
open = false; #I have tried both, dosn't seam to make a diffrence
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
prime = {
#OpenGl use llvmpipe instead but AMD iGPU fin with DRI_PRIME=1
sync.enable = true;
# OpenGL reads AMD iGPU fine but dGPU is still llvmpipe instead
# Vulcan seams to use dGPU regardless
# reverseSync.enable = true;
# OpenGL actualy uses dGPU when used with 'nvidia-offload'
# Vulcan games freakout within a minute of opening them
# offload = {
# enable = true;
# enableOffloadCmd = true;
# };
amdgpuBusId = "PCI:6:0:0";
nvidiaBusId = "PCI:1:0:0";
};
};
services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
