Unable to start steam

I have an Arc (previous gen) - here’s some thoughts:

  • Putting vdpau-anything in your config makes no sense, that’s for nvidia (EDIT: I was slightly misinformed but AFAICT it’s still unnecessary)
  • vaapiIntel is redundant because you already would use intel-media-driver for VA-API handling
  • I do not use nixos-hardware at all

First run this to get the device ID for your card (56a0 in this case; you can ignore the 8086 which just means Intel):

$ nix run github:eclairevoyant/pcids                                    
PCI:45:0:0
	Intel Corporation [8086]
	DG2 [Arc A770] [56a0]

Then here’s what my config looks like for the card. Replace the deviceId as you identified from the previous step.

{
  config,
  lib,
  pkgs,
  ...
}:

let
  deviceId = "56a0";
in
{
  boot = {
    # recent kernel needed for proper functionality
    kernelPackages = pkgs.linuxKernel.packageAliases.linux_latest;

    kernelParams =
      # xe driver available from kernel 6.8
      assert lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.8";
      [
        "i915.force_probe=!${deviceId}"
        "xe.force_probe=${deviceId}"
      ];
  };

  # https://wiki.archlinux.org/title/Hardware_video_acceleration
  environment = {
    systemPackages = lib.attrValues {
      inherit (pkgs) libva-utils; # vainfo
    };
    variables = {
      LIBVA_DRIVER_NAME = "iHD";
    };
  };

  hardware.graphics = {
    enable = true;
    enable32Bit = true;
    extraPackages = lib.attrValues {
      inherit (pkgs)
        intel-compute-runtime
        intel-media-driver # vaapi via iHD
        vpl-gpu-rt # libvpl impl for qsv
        ;
    };
  };

  security.wrappers.igt = {
    owner = "root";
    group = "root";
    capabilities = "cap_perfmon=+ep";
    source = lib.getExe' pkgs.intel-gpu-tools "intel_gpu_top";
  };
}

If you see issues with the xe driver, you can switch back to i915 via boot.kernelParams = ["i915"]; instead of the kernel params above. (I saw flickering in my case and did in fact switch back.)

Since I was personally dissatisfied with the steam packaging in nixpkgs, I use the flatpak for steam:

    services.flatpak.enable = true;

And installed/run steam that way:

$ flatpak install com.valvesoftware.Steam
$ flatpak run com.valvesoftware.Steam 

However, hopefully the config mentioned gets you a bit closer to running steam in either case.

(And yeah, it’s a super new card and may just Not Work.)

3 Likes