Gamescope stopped working?

I’ve used gamescope with some of my Steam games in the past just fine, but recently, whenever I tried it, it straight up does not work - Steam does the Stop-Start charade and never really launches the game. I really need gamescope, as one of my games (SIGNALIS) does not have key re-mapping, and gamescope was the only way I could get it to work on my keyboard layout.

I tried adding programs.gamescope.enable to configuration.nix, on top of the option for programs.steam, but it didn’t fix it. Has anyone else run into this problem? I’m on nixpkgs-unstable, using AMD graphics. Any and all help is appreciated! :smiley:

Here is my relevant configuration:

# configuration.nix
{ config, inputs, lib, pkgs, pkgs-stable, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

  # Use the systemd-boot EFI boot loader.
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  # Use the latest linux kernel
  boot.kernelPackages = pkgs.linuxPackages_latest;

  # Spin up the amdgpu driver at launch.
  boot.initrd.kernelModules = [ "amdgpu" ];

  # Enable support for NTFS drives
  boot.supportedFilesystems = [ "ntfs" ];

  # Mount options for BTRFS subvolumes (no touchy!)
  fileSystems = {
    "/".options = [ "compress=zstd" ];
    "/etc".options = [ "compress=zstd" ];
    "/home".options = [ "compress=zstd" ];
    "/nix".options = [ "compress=zstd" ];
    "/opt".options = [ "compress=zstd" ];
    "/.snapshots".options = [ "compress=zstd" ];
    "/srv".options = [ "compress=zstd" ];
    "/swap".options = [ "noatime" ];
    "/usr/local".options = [ "compress=zstd" ];
    "/usr/share".options = [ "compress=zstd" ];
    "/var".options = [ "compress=zstd"];
    "/var/cache".options = [ "compress=zstd" ];
    "/var/log".options = [ "compress=zstd" ];
    "/var/tmp".options = [ "compress=zstd" ];
  };

  # Declare the swapfile
  swapDevices = [ {device = "/swap/swapfile"; } ];

  # Enable AMD GPU Hardware Acceleration
  hardware.graphics = {
    enable = true;
    enable32Bit = true;
    # package = pkgs-stable.mesa;

    # extraPackages = [
    #   pkgs.amdvlk
    # ];
    # extraPackages32 = [
    #   pkgs.driversi686Linux.amdvlk
    # ];
  };

  # Enable automatic /nix/store optimization during rebuilds = "This may slow down builds; also,
  # this option only applies to new files, so it is recommended to optimize /nix/store when first
  # setting this option" - wiki.nixos.org
  nix.settings.auto-optimise-store = true; # Note the spelling of the word "optimise"

  # Enable automatic garbage collection - please use!
  nix.gc = {
    automatic = true;
    dates = "daily";
    options = "--delete-older-than 7d";
  };

  networking.hostName = "soxin"; # Define your hostname.
  # Pick only one of the below networking options.
  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
  networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.

  # Set your time zone.
  time.timeZone = "US/Eastern";

  # Configure network proxy if necessary
  # networking.proxy.default = "http://user:password@proxy:port/";
  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";

  # Select internationalisation properties.
  # i18n.defaultLocale = "en_US.UTF-8";
  # console = {
  #   font = "Lat2-Terminus16";
  #   keyMap = "us";
  #   useXkbConfig = true; # use xkb.options in tty.
  # };

  # Enable the X11 windowing system.
  services.xserver.enable = true;  

  # Enable the GNOME Desktop Environment.
  services.xserver.displayManager.gdm.enable = true;
  services.xserver.desktopManager.gnome.enable = true;

  # Configure keymap in X11
  services.xserver.xkb = {
    layout = "us";
    variant = "colemak_dh";
    options = "backspace:capslock";
  };
  # services.xserver.xkb.options = "eurosign:e,caps:escape";

  # Enable CUPS to print documents.
  services.printing.enable = true;

  # (Possibly) fix Logitech mouse issues post-wake
  services.udev.extraRules = ''
    # disable USB auto suspend for Logitech, Inc. G PRO Gaming Mouse
    ACTION=="bind", SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c08c", TEST=="power/control", ATTR{power/control}="on"
  '';

  # Enable sound.
  # services.pulseaudio.enable = true;
  # OR
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
  };

  # Enable touchpad support (enabled default in most desktopManager).
  # services.libinput.enable = true;

  # Define a user account. Don't forget to set a password with ‘passwd’.
  users.users.craigory = {
    isNormalUser = true;
    extraGroups = [ "wheel" "gamemode" ]; # Enable ‘sudo’ for the user.
  #   packages = with pkgs; [
  #     tree
  #   ];
  };

  # Enable the Flakes feature and the accompanying new nix command-line tool.
  nix.settings.experimental-features = [ "nix-command" "flakes" ];

  # Allow unfree packages
  nixpkgs.config.allowUnfree = true;

  # Enable dconf
  programs.dconf.enable = true;

  # Install firefox
  programs.firefox.enable = true;

  # Install java
  programs.java.enable = true;

  # Install, configure steam
  programs.steam = {
    enable = true;
    package = pkgs.steam.override {
      extraLibraries = pkgs: [ pkgs.xorg.libxcb ];
    };
    extraCompatPackages = with pkgs; [
      proton-ge-bin
    ];
    gamescopeSession.enable = true;
    remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
    dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
  };

  # Enable gamemode
  programs.gamemode.enable = true;

  /* # Enable gamescope
  programs.gamescope = {
    enable = true;
    capSysNice = false;
  }; */

  # Set the defaul editor to be helix
  environment.variables.EDITOR = "helix";

  # Set XDG_RUNTIME_DIR
  environment.variables.XDG_RUNTIME_DIR = "/run/user/$(id -u)";

  # Fix double cursor (hopefully) by forcing software rendering of the cursor only
  environment.sessionVariables.WLR_NO_HARDWARE_CURSORS = "1";

  /*
  # Make sure Electron applications default to Wayland instead of X11 on Hyprland.
  environment.sessionVariables.NIXOS_OZONE_WL = "1";
  */

  # For protonup command
  # environment.sessionVariables = {
  #   STEAM_EXTRA_COMPAT_TOOLS_PATHS =
  #     "/home/user/.steam/root/compatabilitytools.d"};
  # };

  # List packages installed in system profile.
  # You can use https://search.nixos.org/ to find more packages (and options).
  environment.systemPackages =
  ( with pkgs; [
    # Applications & Packages
    aisleriot
    appflowy
    blackbox-terminal
    blender-hip
    discord
    # floorp
    fractal
    gapless
    ghostty
    gnome-2048
    gnome-chess
    gnome-sudoku
    gnome-tweaks
    gradience
    handbrake
    helix
    heroic
    # kdePackages.kdenlive
    krita
    librewolf
    mangohud
    neovim
    obs-studio
    parabolic
    prismlauncher
    recordbox
    shotcut
    tagger
    tenacity
    tor-browser
    vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
    vlc
    wget
    zoom-us

    # Codecs and friends
    ffmpeg-full
    mlt

    # Cursors
    # posy-cursors

    # Fonts
    /* geist-font
    inconsolata
    redhat-official-fonts
    ubuntu-sans
    ubuntu-sans-mono */

    # Git
    git

    # GNOME Extensions
    gnomeExtensions.accent-directories
    gnomeExtensions.alphabetical-app-grid
    gnomeExtensions.blur-my-shell
    gnomeExtensions.dash-to-dock
    gnomeExtensions.dash-to-panel
    gnomeExtensions.fuzzy-app-search
    gnomeExtensions.grand-theft-focus
    gnomeExtensions.just-perfection
    gnomeExtensions.launch-new-instance
    gnomeExtensions.osd-volume-number
    gnomeExtensions.status-area-horizontal-spacing
    gnomeExtensions.weather-oclock

    # Icons
    morewaita-icon-theme

    # Libreoffice and Hunspell Dictionaries
    libreoffice
    hunspell
    hunspellDicts.en_US-large
    hunspellDicts.es_ANY

    # Miscellaneous Theming
    adw-gtk3

    # Proton
    protonup
    protontricks

    # Terminal Utilities
    fastfetch
    freshfetch
    neo-cowsay
    neofetch
    solitaire-tui
    sssnake
    traceroute
    tree
    zenith

    # Keyboard Layout
    colemak-dh
  ])

  ++

  ( with pkgs-stable; [
    # Applications & Packages
    floorp
    # prismlauncher
  ]);

  fonts.packages =
  (with pkgs; [
    _3270font
    adwaita-fonts
    atkinson-hyperlegible-next
    atkinson-hyperlegible-mono
    bront_fonts
    dinish
    dotcolon-fonts
    fira-sans
    fragment-mono
    # geist-font
    inconsolata
    jost
    league-of-moveable-type
    liberation_ttf
    libertine
    meslo-lg
    mona-sans
    nerd-fonts.geist-mono
    pretendard
    profont
    redhat-official-fonts
    sn-pro
    ubuntu-sans
    ubuntu-sans-mono
    uiua386
  ])

  ++

  ( with pkgs-stable; [
    geist-font
  ]);
  system.stateVersion = "25.05"; # Did you read the comment?
}

# flake.nix
{
  description = "NixOS configuration";

  inputs = {
    # This is pointing to an unstable release.
    # If you prefer a stable release instead, you can this to the latest number shown here: https://nixos.org/download
    # i.e. nixos-24.11
    # Use `nix flake update` to update the flake to the latest revision of the chosen release channel.
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

    nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";

    nixpkgs-behind.url = "github:NixOS/nixpkgs/nixos-24.11";

    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };

  };

  outputs = inputs @ { self, nixpkgs, nixpkgs-stable, nixpkgs-behind, home-manager, ... }:
    let
      system = "x86_64-linux";
      lib = nixpkgs.lib;
      pkgs = nixpkgs.legacyPackages.${system};
      pkgs-stable = nixpkgs-stable.legacyPackages.${system};
      pkgs-behind = nixpkgs-behind.legacyPackages.${system};
    in
    {
      nixosConfigurations.soxin = nixpkgs.lib.nixosSystem {
        specialArgs = {

          inherit inputs;

          pkgs-stable = import nixpkgs-stable {
            inherit system;
            config.allowUnfree = true;
          };

          pkgs-behind = import nixpkgs-behind {
            inherit system;
            config.allowUnfree = true;
          };

        };
        # system = "x86_64-linux";
        modules = [
          ./configuration.nix
          home-manager.nixosModules.home-manager
          {
            home-manager = {
              useGlobalPkgs = true;
              useUserPackages = true;

              users.craigory = import ./home.nix;
              extraSpecialArgs = { inherit inputs; inherit pkgs-stable; inherit pkgs-behind; };

              backupFileExtension = "homemgrbackup-";
            };
          }
        ];
      };
    };
}

Your programs.gamescope block is commented out, so it’s not actually enabled. Also, Steam’s gamescopeSession needs gamescope installed in environment.systemPackages for AMD (iirc).

Well, I’ve re-added programs.gamescope.enable to the configuration, and I added it to my environment.systemPackages, restarted Steam, and it still isn’t working. Back when it was working, I did not need these options.

I even switched the package for gamescope in programs.gamescope to 25.05 (stable), and moved gamescope to the with pkgs-stable section of my environment.systemPackages. Still no dice.

Here’s what my configuration.nix looks like now:

{ config, inputs, lib, pkgs, pkgs-stable, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

  # Use the systemd-boot EFI boot loader.
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  # Use the latest linux kernel
  boot.kernelPackages = pkgs.linuxPackages_latest;

  # Spin up the amdgpu driver at launch.
  boot.initrd.kernelModules = [ "amdgpu" ];

  # Enable support for NTFS drives
  boot.supportedFilesystems = [ "ntfs" ];

  # Mount options for BTRFS subvolumes (no touchy!)
  fileSystems = {
    "/".options = [ "compress=zstd" ];
    "/etc".options = [ "compress=zstd" ];
    "/home".options = [ "compress=zstd" ];
    "/nix".options = [ "compress=zstd" ];
    "/opt".options = [ "compress=zstd" ];
    "/.snapshots".options = [ "compress=zstd" ];
    "/srv".options = [ "compress=zstd" ];
    "/swap".options = [ "noatime" ];
    "/usr/local".options = [ "compress=zstd" ];
    "/usr/share".options = [ "compress=zstd" ];
    "/var".options = [ "compress=zstd"];
    "/var/cache".options = [ "compress=zstd" ];
    "/var/log".options = [ "compress=zstd" ];
    "/var/tmp".options = [ "compress=zstd" ];
  };

  # Declare the swapfile
  swapDevices = [ {device = "/swap/swapfile"; } ];

  # Enable AMD GPU Hardware Acceleration
  hardware.graphics = {
    enable = true;
    enable32Bit = true;
    # package = pkgs-stable.mesa;

    # extraPackages = [
    #   pkgs.amdvlk
    # ];
    # extraPackages32 = [
    #   pkgs.driversi686Linux.amdvlk
    # ];
  };

  # Enable automatic /nix/store optimization during rebuilds = "This may slow down builds; also,
  # this option only applies to new files, so it is recommended to optimize /nix/store when first
  # setting this option" - wiki.nixos.org
  nix.settings.auto-optimise-store = true; # Note the spelling of the word "optimise"

  # Enable automatic garbage collection - please use!
  nix.gc = {
    automatic = true;
    dates = "daily";
    options = "--delete-older-than 7d";
  };

  networking.hostName = "soxin"; # Define your hostname.
  # Pick only one of the below networking options.
  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
  networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.

  # Set your time zone.
  time.timeZone = "US/Eastern";

  # Configure network proxy if necessary
  # networking.proxy.default = "http://user:password@proxy:port/";
  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";

  # Select internationalisation properties.
  # i18n.defaultLocale = "en_US.UTF-8";
  # console = {
  #   font = "Lat2-Terminus16";
  #   keyMap = "us";
  #   useXkbConfig = true; # use xkb.options in tty.
  # };

  # Enable the X11 windowing system.
  services.xserver.enable = true;  

  # Enable the GNOME Desktop Environment.
  services.xserver.displayManager.gdm.enable = true;
  services.xserver.desktopManager.gnome.enable = true;

  # Configure keymap in X11
  services.xserver.xkb = {
    layout = "us";
    variant = "colemak_dh";
    options = "backspace:capslock";
  };
  # services.xserver.xkb.options = "eurosign:e,caps:escape";

  # Enable CUPS to print documents.
  services.printing.enable = true;

  # (Possibly) fix Logitech mouse issues post-wake
  services.udev.extraRules = ''
    # disable USB auto suspend for Logitech, Inc. G PRO Gaming Mouse
    ACTION=="bind", SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c08c", TEST=="power/control", ATTR{power/control}="on"
  '';

  # Enable sound.
  # services.pulseaudio.enable = true;
  # OR
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
  };

  # Enable touchpad support (enabled default in most desktopManager).
  # services.libinput.enable = true;

  # Define a user account. Don't forget to set a password with ‘passwd’.
  users.users.craigory = {
    isNormalUser = true;
    extraGroups = [ "wheel" "gamemode" ]; # Enable ‘sudo’ for the user.
  #   packages = with pkgs; [
  #     tree
  #   ];
  };

  # Enable the Flakes feature and the accompanying new nix command-line tool.
  nix.settings.experimental-features = [ "nix-command" "flakes" ];

  # Allow unfree packages
  nixpkgs.config.allowUnfree = true;

  # Enable dconf
  programs.dconf.enable = true;

  # Install firefox
  programs.firefox.enable = true;

  # Install java
  programs.java.enable = true;

  # Install, configure steam
  programs.steam = {
    enable = true;
    package = pkgs.steam.override {
      extraLibraries = pkgs: [ pkgs.xorg.libxcb ];
    };
    extraCompatPackages = with pkgs; [
      proton-ge-bin
    ];
    gamescopeSession.enable = true;
    remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
    dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
  };

  # Enable gamemode
  programs.gamemode.enable = true;

  # Enable gamescope
  programs.gamescope = {
    enable = true;
    capSysNice = false;
    package = pkgs-stable.gamescope;
  };

  # Set the defaul editor to be helix
  environment.variables.EDITOR = "helix";

  # Set XDG_RUNTIME_DIR
  environment.variables.XDG_RUNTIME_DIR = "/run/user/$(id -u)";

  # Fix double cursor (hopefully) by forcing software rendering of the cursor only
  environment.sessionVariables.WLR_NO_HARDWARE_CURSORS = "1";

  /*
  # Make sure Electron applications default to Wayland instead of X11 on Hyprland.
  environment.sessionVariables.NIXOS_OZONE_WL = "1";
  */

  # For protonup command
  # environment.sessionVariables = {
  #   STEAM_EXTRA_COMPAT_TOOLS_PATHS =
  #     "/home/user/.steam/root/compatabilitytools.d"};
  # };

  # List packages installed in system profile.
  # You can use https://search.nixos.org/ to find more packages (and options).
  environment.systemPackages =
  ( with pkgs; [
    # Applications & Packages
    aisleriot
    appflowy
    blackbox-terminal
    blender-hip
    discord
    floorp
    fractal
    gapless
    ghostty
    gnome-2048
    gnome-chess
    gnome-sudoku
    gnome-tweaks
    gradience
    handbrake
    helix
    heroic
    # kdePackages.kdenlive
    krita
    librewolf
    mangohud
    neovim
    obs-studio
    parabolic
    prismlauncher
    recordbox
    shotcut
    tagger
    tenacity
    tor-browser
    vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
    vlc
    wget
    zoom-us

    # Codecs and friends
    ffmpeg-full
    mlt

    # Cursors
    # posy-cursors

    # Fonts
    /* geist-font
    inconsolata
    redhat-official-fonts
    ubuntu-sans
    ubuntu-sans-mono */

    # Git
    git

    # GNOME Extensions
    gnomeExtensions.accent-directories
    gnomeExtensions.alphabetical-app-grid
    gnomeExtensions.blur-my-shell
    gnomeExtensions.dash-to-dock
    gnomeExtensions.dash-to-panel
    gnomeExtensions.fuzzy-app-search
    gnomeExtensions.grand-theft-focus
    gnomeExtensions.just-perfection
    gnomeExtensions.launch-new-instance
    gnomeExtensions.osd-volume-number
    gnomeExtensions.status-area-horizontal-spacing
    gnomeExtensions.weather-oclock

    # Icons
    morewaita-icon-theme

    # Libreoffice and Hunspell Dictionaries
    libreoffice
    hunspell
    hunspellDicts.en_US-large
    hunspellDicts.es_ANY

    # Miscellaneous Theming
    adw-gtk3

    # Proton
    protonup
    protontricks

    # Terminal Utilities
    fastfetch
    freshfetch
    neo-cowsay
    neofetch
    solitaire-tui
    sssnake
    traceroute
    tree
    zenith

    # Keyboard Layout
    colemak-dh
  ])

  ++

  ( with pkgs-stable; [
    # Applications & Packages
    gamescope
    # floorp
    # prismlauncher
  ]);

  fonts.packages =
  (with pkgs; [
    _3270font
    adwaita-fonts
    atkinson-hyperlegible-next
    atkinson-hyperlegible-mono
    bront_fonts
    dinish
    dotcolon-fonts
    fira-sans
    fragment-mono
    # geist-font
    inconsolata
    jost
    league-of-moveable-type
    liberation_ttf
    libertine
    meslo-lg
    mona-sans
    nerd-fonts.geist-mono
    pretendard
    profont
    redhat-official-fonts
    sn-pro
    ubuntu-sans
    ubuntu-sans-mono
    uiua386
  ])

  ++

  ( with pkgs-stable; [
    geist-font
  ]);
  system.stateVersion = "25.05"; # Did you read the comment?
}

Do you know what else it could be?

Start steam from a terminal and share the logs. Your configuration is correct for getting gamescope to show something (though I have experienced empty windows with certain flags lately).

FWIW, the gamescopeSession is completely unrelated, that’s for if you want to make a homebrew SteamOS.

You should also remove the gamescope from your environment.systemPackages, at best it’s redundant, at worst it overrides your settings; in fairness, since you don’t set any global settings and (correctly, it’d fail to work in steam if you tried) don’t nice it, you could totally use the environment.systemPackages version - still prefer programs.gamescope.enable so you don’t get confused if you want to change something later, or if upstream makes a change that requires knowing whether you’ve configured gamescope.

I don’t know what @aln730 means with it needing to be in environment.systemPackages, that’s simply false, as you can see in the code here:

This’d only fail if you explicitly set programs.gamescope.enable = false;.

You’re also most likely not hosting a dedicated source server (i.e., team fortress & co., not as a game but a server in the server listings), so close that port, that’s just silly.

Alright, I’ve removed gamescope from environment.systemPackages, and set gamescopeSession.enable = false just to be certain there are no conflicts. I launched Steam from the terminal, went to my library, and tried to open a game (SIGNALIS) that has been configured with launch options using gamescope. Here’s what the terminal reported:

[craigory@soxin:~]$ steam
steam.sh[87011]: Running Steam on nixos 25.11 64-bit
steam.sh[87011]: STEAM_RUNTIME is enabled automatically
setup.sh[87068]: Steam runtime environment up-to-date!
steam.sh[87011]: Log already open
steam.sh[87011]: Steam client's requirements are satisfied
CProcessEnvironmentManager is ready, 6 preallocated environment variables.
[2025-08-22 15:06:24] Startup - updater built Jun 28 2025 01:05:05
[2025-08-22 15:06:24] Startup - Steam Client launched with: '/home/craigory/.local/share/Steam/ubuntu12_32/steam' '-srt-logger-opened'
CProcessEnvironmentManager is ready, 6 preallocated environment variables.
[2025-08-22 15:06:24] Process started with command-line: '/home/craigory/.local/share/Steam/ubuntu12_32/steam' '-child-update-ui' '-child-update-ui-socket' '8' '-srt-logger-opened'
08/22 15:06:24 minidumps folder is set to /tmp/dumps
[2025-08-22 15:06:24] Using update UI: xwin
08/22 15:06:24 Init: Installing breakpad exception handler for appid(steam)/version(0)/tid(87117)
[2025-08-22 15:06:24] Create window
[2025-08-22 15:06:24] Loading cached metrics from disk (/home/craigory/.local/share/Steam/package/steam_client_metrics.bin)
[2025-08-22 15:06:24] Using the following download hosts for Public, Realm steamglobal
[2025-08-22 15:06:24] 1. https://client-update.fastly.steamstatic.com, /, Realm 'steamglobal', weight was 900, source = 'update_hosts_cached.vdf'
[2025-08-22 15:06:24] 2. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 400, source = 'update_hosts_cached.vdf'
[2025-08-22 15:06:24] 3. https://client-update.steamstatic.com, /, Realm 'steamglobal', weight was 1, source = 'baked in'
08/22 15:06:24 minidumps folder is set to /tmp/dumps
[2025-08-22 15:06:24] Verifying installation...
[2025-08-22 15:06:24] Verifying file sizes only
[2025-08-22 15:06:24] Set percent complete: 0
[2025-08-22 15:06:24] Set percent complete: -1
[2025-08-22 15:06:24] Set status message: Verifying installation...
[2025-08-22 15:06:24] Verification complete
UpdateUI: skip show logo
[2025-08-22 15:06:24] Destroy window
[2025-08-22 15:06:24] Shutdown

Steam logging initialized: directory: /home/craigory/.local/share/Steam/logs

XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xf6398370
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xf6396cc0
08/22 15:06:24 minidumps folder is set to /tmp/dumps
08/22 15:06:24 Init: Installing breakpad exception handler for appid(steamsysinfo)/version(1751405894)/tid(87143)
Running query: 1 - GpuTopology
Response: gpu_topology {
  gpus {
    id: 1
    name: "AMD Radeon RX 7900 XT (RADV NAVI31)"
    vram_size_bytes: 21458059264
    driver_id: k_EGpuDriverId_MesaRadv
    driver_version_major: 25
    driver_version_minor: 2
    driver_version_patch: 0
  }
  gpus {
    id: 2
    name: "AMD Radeon RX 7900 XT (RADV NAVI31)"
    vram_size_bytes: 21458059264
    driver_id: k_EGpuDriverId_MesaRadv
    driver_version_major: 25
    driver_version_minor: 2
    driver_version_patch: 0
  }
  gpus {
    id: 3
    name: "llvmpipe (LLVM 19.1.7, 256 bits)"
    vram_size_bytes: 3221225472
    driver_id: k_EGpuDriverId_MesaLLVMPipe
    driver_version_major: 25
    driver_version_minor: 2
    driver_version_patch: 0
  }
  gpus {
    id: 4
    name: "llvmpipe (LLVM 19.1.7, 256 bits)"
    vram_size_bytes: 3221225472
    driver_id: k_EGpuDriverId_MesaLLVMPipe
    driver_version_major: 25
    driver_version_minor: 2
    driver_version_patch: 0
  }
  default_gpu_id: 1
}

Exit code: 0
Saving response to: /tmp/steamJHAhJL - 219 bytes
Fontconfig warning: line 5: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 4: unknown element "description"
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 72: non-double matrix element
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 72: non-double matrix element
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 80: saw unknown, expected number
Fontconfig warning: "/etc/fonts/conf.d/10-sub-pixel-none.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/10-yes-antialias.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/11-lcdfilter-default.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/20-unhint-small-vera.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/30-metric-aliases.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/40-nonlatin.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/45-generic.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/45-latin.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/48-spacing.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/49-sansserif.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/51-local.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/60-generic.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/60-latin.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/65-nonlatin.conf", line 4: unknown element "description"
steamwebhelper.sh[87160]: Starting steamwebhelper under bootstrap steamrt steam runtime via: /home/craigory/.local/share/Steam/steamrt64/steam-runtime-steamrt/_v2-entry-point
steamwebhelper.sh[87160]: Starting steamwebhelper with steamrt steam runtime at /home/craigory/.local/share/Steam/steamrt64/steam-runtime-steamrt/_v2-entry-point
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 87392
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
pressure-vessel-wrap[87160]: W: Found more than one possible libdrm data directory from provider
pressure-vessel-wrap[87160]: W: "run/opengl-driver-32/share/drirc.d" is unlikely to appear in "/run/host"
pressure-vessel-wrap[87160]: W: "run/opengl-driver/share/drirc.d" is unlikely to appear in "/run/host"
pressure-vessel-wrap[87160]: W: Found more than one possible drirc.d data directory from provider
pressure-vessel-wrap[87160]: W: "run/opengl-driver-32/share/drirc.d" is unlikely to appear in "/run/host"
exec ./steamwebhelper -nocrashdialog -lang=en_US -cachedir=/home/craigory/.local/share/Steam/config/htmlcache -steampid=87116 -buildid=1751405894 -steamid=0 -logdir=/home/craigory/.local/share/Steam/logs -uimode=7 -startcount=0 -steamuniverse=Public -realm=Global -clientui=/home/craigory/.local/share/Steam/clientui -steampath=/home/craigory/.local/share/Steam/ubuntu12_32/steam -launcher=0 --valve-initial-threadpool-size=4 --valve-enable-site-isolation --enable-smooth-scrolling --password-store=basic --log-file=/home/craigory/.local/share/Steam/logs/cef_log.txt --disable-quick-menu --disable-component-update --enable-features=PlatformHEVCDecoderSupport --disable-features=SpareRendererForSitePerProcess,DcheckIsFatal,BlockPromptsIfIgnoredOften,ValveFFmpegAllowLowDelayHEVC
Desktop state changed: desktop: { pos:    0,   0 size: 4480,1440 } primary: { pos:    0,   0 size: 2560,1440 }
Caching cursor image for default, size 32x32, serial 391, cache size = 0
pressure-vessel-wrap[87589]: W: Found more than one possible libdrm data directory from provider
pressure-vessel-wrap[87589]: W: "run/opengl-driver-32/share/drirc.d" is unlikely to appear in "/run/host"
pressure-vessel-wrap[87589]: W: "run/opengl-driver/share/drirc.d" is unlikely to appear in "/run/host"
pressure-vessel-wrap[87589]: W: Found more than one possible drirc.d data directory from provider
pressure-vessel-wrap[87589]: W: "run/opengl-driver-32/share/drirc.d" is unlikely to appear in "/run/host"
ProtonFixes[87799] WARN: [CONFIG]: Parent directory "/home/craigory/.config/protonfixes" does not exist. Abort.
ProtonFixes[87799] WARN: Skipping fix execution. We are probably running an unit test.
fsync: up and running.
Fossilize INFO: Overriding serialization path: "/home/craigory/.local/share/Steam/shader_cache_temp_dir_d3d11_64/fozpipelinesv6/steamapprun_pipeline_cache".
pressure-vessel-wrap[87953]: W: Found more than one possible libdrm data directory from provider
pressure-vessel-wrap[87953]: W: "run/opengl-driver-32/share/drirc.d" is unlikely to appear in "/run/host"
pressure-vessel-wrap[87953]: W: "run/opengl-driver/share/drirc.d" is unlikely to appear in "/run/host"
pressure-vessel-wrap[87953]: W: Found more than one possible drirc.d data directory from provider
pressure-vessel-wrap[87953]: W: "run/opengl-driver-32/share/drirc.d" is unlikely to appear in "/run/host"
ProtonFixes[88275] WARN: [CONFIG]: Parent directory "/home/craigory/.config/protonfixes" does not exist. Abort.
ProtonFixes[88275] WARN: Skipping fix execution. We are probably running an unit test.
fsync: up and running.
Fossilize INFO: Overriding serialization path: "/home/craigory/.local/share/Steam/shader_cache_temp_dir_d3d12_64/fozpipelinesv6/steamapprun_pipeline_cache".
reaping pid: 87117 -- steam
pressure-vessel-wrap[88449]: W: Found more than one possible libdrm data directory from provider
pressure-vessel-wrap[88449]: W: "run/opengl-driver-32/share/drirc.d" is unlikely to appear in "/run/host"
pressure-vessel-wrap[88449]: W: "run/opengl-driver/share/drirc.d" is unlikely to appear in "/run/host"
pressure-vessel-wrap[88449]: W: Found more than one possible drirc.d data directory from provider
pressure-vessel-wrap[88449]: W: "run/opengl-driver-32/share/drirc.d" is unlikely to appear in "/run/host"
fsync: up and running.
chdir "/home/craigory/.local/share/Steam/steamapps/common/SIGNALIS"
Adding process 88757 for gameID 1262350
Clearing capture only gameID
Setting capture only gameID to 1262350

------------------------------------------------------------------------------------------------------
Starting new game recording session for 1262350
Creating new audio encoder for codec 5
Encoder audio init succeeded, now have 1 encoder(s)
Refreshing process list for game 1262350
1 game pids rooted at pid 88757:
- 88757
Caching cursor image for , size 32x32, serial 461, cache size = 1
GameScope focus changed to appID 0
Recording system audio
PulseAudio: Sink alsa_output.usb-Generic_USB_Audio-00.HiFi__Speaker__sink is default
PulseAudio: Adding sink[62] alsa_output.pci-0000_03_00.1.hdmi-stereo with priority 1, monitor is alsa_output.pci-0000_03_00.1.hdmi-stereo.monitor
PulseAudio: Adding sink[63] alsa_output.usb-Generic_USB_Audio-00.HiFi__SPDIF__sink with priority 1, monitor is alsa_output.usb-Generic_USB_Audio-00.HiFi__SPDIF__sink.monitor
PulseAudio: Adding sink[64] alsa_output.usb-Generic_USB_Audio-00.HiFi__Headphones__sink with priority 1, monitor is alsa_output.usb-Generic_USB_Audio-00.HiFi__Headphones__sink.monitor
PulseAudio: Adding sink[65] alsa_output.usb-Generic_USB_Audio-00.HiFi__Speaker__sink with priority 3, monitor is alsa_output.usb-Generic_USB_Audio-00.HiFi__Speaker__sink.monitor
PulseAudio: Recording on device alsa_output.usb-Generic_USB_Audio-00.HiFi__Speaker__sink.monitor
ERROR: ld.so: object '/home/craigory/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/craigory/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/craigory/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/craigory/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
[gamescope] [Info]  console: gamescope version 3.16.9 (gcc 14.3.0)
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
[gamescope] [Info]  scriptmgr: Loading scripts from: '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts'
[gamescope] [Info]  scriptmgr: Loading scripts from: '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope'
[gamescope] [Info]  scriptmgr: Loading scripts from: '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/common'
[gamescope] [Info]  scriptmgr: Running script file '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0)
[gamescope] [Info]  scriptmgr: Running script file '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1)
[gamescope] [Info]  scriptmgr: Running script file '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2)
[gamescope] [Info]  scriptmgr: Loading scripts from: '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/displays'
[gamescope] [Info]  scriptmgr: Running script file '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3)
[gamescope] [Info]  scriptmgr: Running script file '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4)
[gamescope] [Info]  scriptmgr: Running script file '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5)
[gamescope] [Info]  scriptmgr: Running script file '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6)
[gamescope] [Info]  scriptmgr: Running script file '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7)
[gamescope] [Info]  scriptmgr: Running script file '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 8)
[gamescope] [Info]  scriptmgr: Running script file '/nix/store/f1j7rnivwvdx999p1hah0ly9h2wn7fcd-gamescope-3.16.9/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 9)
[gamescope] [Info]  scriptmgr: Loading scripts from: '/etc/gamescope/scripts'
[gamescope] [Warn]  scriptmgr: Directory '/etc/gamescope/scripts' does not exist
[gamescope] [Info]  scriptmgr: Loading scripts from: '/home/craigory/.config/gamescope/scripts'
[gamescope] [Warn]  scriptmgr: Directory '/home/craigory/.config/gamescope/scripts' does not exist
wp_color_manager_v1#20: error 0: Windows scRGB is not supported
libdecor-gtk-WARNING: Could not get required globals
Failed to load plugin 'libdecor-gtk.so': failed to init
libdecor-cairo-WARNING: Could not get required globals
Failed to load plugin 'libdecor-cairo.so': failed to init
No plugins found, falling back on no decorations
Started voice recorder
PulseAudio: Connected to device alsa_output.usb-Generic_USB_Audio-00.HiFi__Speaker__sink.monitor (65, not suspended).
PulseAudio: Using sample spec 's16le 2ch 48000Hz', channel map 'front-left,front-right'.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
[gamescope] [Info]  vulkan: selecting physical device 'AMD Radeon RX 7900 XT (RADV NAVI31)': queue family 1 (general queue family 0)
[gamescope] [Info]  vulkan: physical device supports DRM format modifiers
Fossilize INFO: Overriding serialization path: "/home/craigory/.local/share/Steam/steamapps/shadercache/1262350/fozpipelinesv6/steamapprun_pipeline_cache".
[gamescope] [Error] vulkan: vkAllocateDescriptorSets failed
terminate called without an active exception
Encoding complete
Stopping voice recorder
PulseAudio: Context connection terminated
Stopped game recording session
------------------------------------------------------------------------------------------------------
Game Recording - game stopped [gameid=1262350]
Removing process 88757 for gameID 1262350
[2025-08-22 15:06:52] Shutdown

Well, this is your issue: Mere existence of alternative AMD Vulkan drivers is causing Gamescope to fail. · Issue #1465 · ValveSoftware/gamescope · GitHub

I’m not well-versed in the amd drivers and their quirks. If you still have any references to amdvlk you should probably remove them (sounds like that results in worse performance most of the time anyway); I don’t see anything suggesting it’s enabled by default so I guess your config isn’t actually what you’re running.

Consider rebooting, too.

If you did want to explicitly enable amdvlk, use hardware.amdgpu.amdvlk.enable instead of adding it to lists manually, by the way. Adding things to lists is always the worst way.

Uh, I’m not using amdvlk. I’ve only got the regular Mesa drivers. amdvlk isn’t in my package list, and the hardware.graphics section of my configuration.nix is just the following:

# Enable AMD GPU Hardware Acceleration
hardware.graphics = {
  enable = true;
  enable32Bit = true;
};

Fair enough, but that’s your precise error message, the hardware matches, and the threads (including all the closed issues repeating your error) are littered with NixOS users who don’t seem to be explicitly using it.

My best guess is that it’s bundled with the driver in some fashion, even though this contradicts the manual and the code I found at a glance. I lack the hardware to delve into this, unfortunately; I’m sure folks would appreciate an upstream fix if you manage to get to the bottom of this.

Edit: Maybe try a more recent mesa? New mesa-git and lib32-mesa-git breaks gamescope · Issue #1900 · ValveSoftware/gamescope · GitHub

On wiki.nixos.org and NixOS Manual - how do I use the most recent version of Mesa, one more recent than is default in nixpkgs-unstable? I can’t seem to find on option or specific package to do so like with the linux kernel (boot.kernelPackages = pkgs.linuxPackages_latest)

Well, gamescope is now up-to-date in nixpkgs-unstable, but it still doesn’t work. I think I’m going to go insane

NixOS is on mesa 25.0, folks on the upstream issue are using mesa 25.2. This means that that particular issue probably isn’t actually what you’re running into.

Updating mesa is nontrivial. I think maybe this does it, but… I don’t use mesa drivers, because unfortunately I have nvidia hardware:

{ pkgs, lib, ... }: let
  version = "25.2.1";
  override = old: {
    inherit version;
    src = old.src.override {
      rev = "mesa-${version}";
      hash = lib.fakeHash;
    };
  };
in {
  hardware.graphics.package = pkgs.mesa.overrideAttrs override;
  hardware.graphics.package32 = pkgs.pkgsi686Linux.mesa.overrideAttrs override;
}

I can’t tell you if this will fix your problem, or if it will cause other, more severe problems, but you can certainly try!

Edit: Nah, that’s not it either, you’re apparently on unstable. The mesa commit that broke this isn’t even on stable’s mesa yet.

I’d suggest confirming programmatically that you’re not somehow using amdvlk; from what I read in the various issues and threads regarding it the amd drivers enable it by default on some versions.

if you really want “the most recent mesa”, then try these “nightly” mesa_git and gamescope_git from this flake (!):

but maaaaybe its a bit overkill and there is a better, faster, easier solution…?

also, perhaps i am blind, but i couldnt find the “launch options” of the game in your config, so could you please list them? thanks!

simply

gamescope -- %command%

It worked before

hmmmm. does it grab the monitor specs automatically if no other flag is set? such as resolution, refresh rate, etc.?

try this?

gamescope -W 1920 -H 1080 -r 60 -- %command%

(example)
(sry my bad i forgot to remove the little ` at the end)

oh, you know what. there are quite a lot of games that dont work well in gamescope, sometimes even generally in all of wayland sessions, because most of them are made for x11 EXCLUSIVELY. for example, BeamNG.drive.x64, despite being a native linux binary, doesnt work in gamescope at all (shows a 1x1 pixel resolution and crashes). it does, however, work on bare wayland via xwayland, but the experience is horrible. what i do is i launch such games under x11 sessions, because on wayland i get INSANE memory leaks and other nasty stuff…

is SIGNALIS a wayland game, do you know? as in, was it compiled for wayland? no xwayland layers, no nothing?

this is completely irrelevant if you are launching it via steam compatibility layers such as proton… speaking of which, what kind of compatibility layer are you running?

EDIT: after a quick look at it, the game appears to be very very windows-y, so thats a certified proton moment. are you using proton 9.0 stable or?