eGPU (GTX 1060 6GB) working great on NixOS on the 12th gen framework

Hey, sharing a nice eGPU success story. I stuck the GTX 1060 from my old desktop into an eGPU enclosure (a cheap TH3G4P3) and then just followed the Nvidia NixOS wiki page to get it working. I used Nvidia Prime’s “sync” mode to ensure the eGPU gets priority over the iGPU, so the config ended up looking like this:

{
  # Enable OpenGL
  hardware.opengl = {
    enable = true;
    driSupport = true;
    driSupport32Bit = true;
  };

  # Load nvidia driver for Xorg and Wayland
  services.xserver.videoDrivers = ["nvidia"];

  hardware.nvidia = {
    # Modesetting is required.
    modesetting.enable = true;

    # Nvidia power management. Experimental, and can cause sleep/suspend to fail.
    powerManagement.enable = false;
    # Fine-grained power management. Turns off GPU when not in use.
    # Experimental and only works on modern Nvidia GPUs (Turing or newer).
    powerManagement.finegrained = false;

    # Use the NVidia open source kernel module (not to be confused with the
    # independent third-party "nouveau" open source driver).
    # Support is limited to the Turing and later architectures. Full list of
    # supported GPUs is at:
    # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
    # Only available from driver 515.43.04+
    # Currently alpha-quality/buggy, so false is currently the recommended setting.
    open = false;

    # Enable the Nvidia settings menu,
    # accessible via `nvidia-settings`.
    nvidiaSettings = true;

    # Optionally, you may need to select the appropriate driver version for your specific GPU.
    package = config.boot.kernelPackages.nvidiaPackages.stable;

    # Use Nvidia Prime to choose which GPU (iGPU or eGPU) to use.
    prime = {
        sync.enable = true;
        allowExternalGpu = true;

        # Make sure to use the correct Bus ID values for your system!
        nvidiaBusId = "PCI:127:0:0";
        intelBusId = "PCI:0:2:0";
    };
  };
}

The only issue so far is that connecting an external monitor to the GPU results in some really horrible input latency. Connecting an external monitor to the laptop instead is smooth as butter though :+1:

Got Baldur’s Gate 3 running well at 1440p on low settings on this humble 1240p + GTX 1060 6GB setup now!

3 Likes