[GH-ISSUE #322] 64-bit atomic feature missing for Intel A770 #223

Closed
opened 2026-10-15 12:58:25 +00:00 by bsakaguchi · 4 comments
Owner

Originally created by @TakodaS on GitHub (Dec 27, 2025).
Original GitHub issue: https://github.com/games-on-whales/wolf/issues/322

Hi, first of all thank you so much for games on whales! I have been trying to do proper headless streaming on wayland and this is the best project out there!

I am trying to run Frostpunk 2 via steam using an Intel A770 and I get the following error: Your graphics card Intel Arc A770 Graphics does not support all the necessary features to run Frostpunk 2. The following features are missing: 64-bit atomic.

Of course, I am able to run Frostpunk 2 locally and stream over sunshine, so there is no actual incompatibility and the issue lies somewhere with Wolf. I am able to run other games just fine through wolf as well. The service is running on a NixOS machine with the following config which I have created as close as possible to the instructions for podman quadlets:

      let
        service-name = "podman-wolf";
      in
      {
        networking.firewall = {
          enable = true;
          allowedTCPPorts = [
            47984
            47989
            48010
          ];
          allowedUDPPorts = [
            47999
            48000
            48010
            48100
            48200
          ];
        };

        virtualisation.oci-containers.containers.wolf = {
          image = "ghcr.io/games-on-whales/wolf:stable";
          networks = [ "host" ];
          # privileged = true; # uncommenting doesn't change anything
          extraOptions = [
            "--ipc=host"
            "--device-cgroup-rule=\"c 13:* rmw\""
          ];

          devices = [
            "/dev/dri"
            "/dev/uinput"
            "/dev/uhid"
          ];
          volumes = [
            "/dev/:/dev/:rw"
            "/run/udev:/run/udev:rw"
            "/var/lib/${service-name}/:/etc/wolf:z"
            "/run/podman/podman.sock:/var/run/docker.sock:ro"
          ];
          environment = {
            WOLF_STOP_CONTAINER_ON_EXIT = "TRUE";
            WOLF_RENDER_NODE = "/dev/dri/renderD129";
          };
        };

        systemd.services.${service-name} = {

          description = "Wolf / Games On Whales";
          requires = [
            "network-online.target"
            "podman.socket"
          ];
          after = [
            "network-online.target"
            "podman.socket"
          ];
          serviceConfig = {
            ExecStartPre = "-/usr/bin/podman rm --force WolfPulseAudio";
            StateDirectory = service-name;
          };

          wantedBy = [ "multi-user.target" ];
        };
      };

I am wondering if there is an old driver version used in the wolf container that is incompatible with the newer intel cards? Anyway, thanks again for this project!

Originally created by @TakodaS on GitHub (Dec 27, 2025). Original GitHub issue: https://github.com/games-on-whales/wolf/issues/322 Hi, first of all thank you so much for games on whales! I have been trying to do proper headless streaming on wayland and this is the best project out there! I am trying to run Frostpunk 2 via steam using an Intel A770 and I get the following error: `Your graphics card Intel Arc A770 Graphics does not support all the necessary features to run Frostpunk 2. The following features are missing: 64-bit atomic.` Of course, I am able to run Frostpunk 2 locally and stream over sunshine, so there is no actual incompatibility and the issue lies somewhere with Wolf. I am able to run other games just fine through wolf as well. The service is running on a NixOS machine with the following config which I have created as close as possible to the instructions for podman quadlets: ```nix let service-name = "podman-wolf"; in { networking.firewall = { enable = true; allowedTCPPorts = [ 47984 47989 48010 ]; allowedUDPPorts = [ 47999 48000 48010 48100 48200 ]; }; virtualisation.oci-containers.containers.wolf = { image = "ghcr.io/games-on-whales/wolf:stable"; networks = [ "host" ]; # privileged = true; # uncommenting doesn't change anything extraOptions = [ "--ipc=host" "--device-cgroup-rule=\"c 13:* rmw\"" ]; devices = [ "/dev/dri" "/dev/uinput" "/dev/uhid" ]; volumes = [ "/dev/:/dev/:rw" "/run/udev:/run/udev:rw" "/var/lib/${service-name}/:/etc/wolf:z" "/run/podman/podman.sock:/var/run/docker.sock:ro" ]; environment = { WOLF_STOP_CONTAINER_ON_EXIT = "TRUE"; WOLF_RENDER_NODE = "/dev/dri/renderD129"; }; }; systemd.services.${service-name} = { description = "Wolf / Games On Whales"; requires = [ "network-online.target" "podman.socket" ]; after = [ "network-online.target" "podman.socket" ]; serviceConfig = { ExecStartPre = "-/usr/bin/podman rm --force WolfPulseAudio"; StateDirectory = service-name; }; wantedBy = [ "multi-user.target" ]; }; }; ``` I am wondering if there is an old driver version used in the wolf container that is incompatible with the newer intel cards? Anyway, thanks again for this project!
Author
Owner

@ABeltramo commented on GitHub (Jan 7, 2026):

Can you try out the image that I've just pushed in https://github.com/games-on-whales/gow/pull/282 ? It's still WIP, there might be other things broken given that it's a complete distro change; any feedback is welcome 😉

<!-- gh-comment-id:3720831212 --> @ABeltramo commented on GitHub (Jan 7, 2026): Can you try out the image that I've just pushed in https://github.com/games-on-whales/gow/pull/282 ? It's still WIP, there might be other things broken given that it's a complete distro change; any feedback is welcome 😉
Author
Owner

@TakodaS commented on GitHub (Feb 7, 2026):

Sorry it took so long to figure out, I was playing around with creating a NixOS service for it and finally got that working. The new image works perfectly and Frostpunk 2 runs! Thank you very much! Closing.

<!-- gh-comment-id:3865073443 --> @TakodaS commented on GitHub (Feb 7, 2026): Sorry it took so long to figure out, I was playing around with creating a NixOS service for it and finally got that working. The new image works perfectly and Frostpunk 2 runs! Thank you very much! Closing.
Author
Owner

@TakodaS commented on GitHub (Feb 7, 2026):

In case it helps anyone else, I finally got my non-nvidia setup working on restarts using quadlet-nix with the following configuration:

wolf-quadlet =
      {
        pkgs,
        ...
      }:
      let
        service-name = "podman-wolf";
      in
      {
        imports = [ inputs.quadlet-nix.nixosModules.quadlet ];

        networking.firewall = {
          enable = true;
          allowedTCPPorts = [
            47984
            47989
            48010
          ];
          allowedUDPPorts = [
            47999
            48000
            48010
            48100
            48200
          ];
        };
        virtualisation.quadlet = {
          containers = {
            ${service-name} = {
              serviceConfig.ExecStartPre =
                let
                  removeWolfContainers = #this is super hacky but I couldn't find a better way of removing all containers each run.
                    pkgs.writers.writeBash "removeWolfContainers"
                      {
                        makeWrapperArgs = [
                          "--prefix"
                          "PATH"
                          ":"
                          "${pkgs.lib.makeBinPath (
                            with pkgs;
                            [
                              jq
                              podman
                            ]
                          )}"
                        ];
                      }
                      ''
                        podman ps -a --format json | jq -r '.[] | select(.Names[] | startswith("Wolf")) | .Id' | xargs -r podman rm -f
                      '';
                in
                removeWolfContainers;
              containerConfig = {
                autoUpdate = "registry";
                image = "ghcr.io/games-on-whales/wolf:stable";
                workdir = "/etc/wolf";
                networks = [
                  # "podman"
                  "host"
                  # networks.internal.ref
                ];
                # pod = pods.wolf-pod.ref;
                podmanArgs = [
                  "--ipc=host"
                  "--device-cgroup-rule=\"c 13:* rmw\""
                ];
                securityLabelDisable = true;
                devices = [
                  "/dev/dri"
                  "/dev/uinput"
                  "/dev/uhid"
                ];
                environments = {
                  WOLF_STOP_CONTAINER_ON_EXIT = "TRUE";
                  WOLF_RENDER_NODE = "/dev/dri/renderD129"; # non-embedded gpu
                  WOLF_LOG_LEVEL = "DEBUG";
                  RUST_LOG = "INFO";
                  # PULSE_SERVER = "unix:/run/user/pulse/native"; # couldn't get native pulse server working 
                };
                volumes = [
                  "/dev/:/dev/:rw"
                  "/run/udev:/run/udev:rw"
                  "/run/user"
                  "/var/lib/${service-name}/:/etc/wolf:z"
                  "/run/podman/podman.sock:/var/run/docker.sock:ro"
                  # "/run/user/${uid}:/run/user"
                ];
              };
            };
          };
        };
      };

I hope this helps someone!

<!-- gh-comment-id:3865088007 --> @TakodaS commented on GitHub (Feb 7, 2026): In case it helps anyone else, I finally got my non-nvidia setup working on restarts using [quadlet-nix](https://github.com/SEIAROTg/quadlet-nix) with the following configuration: ```nix wolf-quadlet = { pkgs, ... }: let service-name = "podman-wolf"; in { imports = [ inputs.quadlet-nix.nixosModules.quadlet ]; networking.firewall = { enable = true; allowedTCPPorts = [ 47984 47989 48010 ]; allowedUDPPorts = [ 47999 48000 48010 48100 48200 ]; }; virtualisation.quadlet = { containers = { ${service-name} = { serviceConfig.ExecStartPre = let removeWolfContainers = #this is super hacky but I couldn't find a better way of removing all containers each run. pkgs.writers.writeBash "removeWolfContainers" { makeWrapperArgs = [ "--prefix" "PATH" ":" "${pkgs.lib.makeBinPath ( with pkgs; [ jq podman ] )}" ]; } '' podman ps -a --format json | jq -r '.[] | select(.Names[] | startswith("Wolf")) | .Id' | xargs -r podman rm -f ''; in removeWolfContainers; containerConfig = { autoUpdate = "registry"; image = "ghcr.io/games-on-whales/wolf:stable"; workdir = "/etc/wolf"; networks = [ # "podman" "host" # networks.internal.ref ]; # pod = pods.wolf-pod.ref; podmanArgs = [ "--ipc=host" "--device-cgroup-rule=\"c 13:* rmw\"" ]; securityLabelDisable = true; devices = [ "/dev/dri" "/dev/uinput" "/dev/uhid" ]; environments = { WOLF_STOP_CONTAINER_ON_EXIT = "TRUE"; WOLF_RENDER_NODE = "/dev/dri/renderD129"; # non-embedded gpu WOLF_LOG_LEVEL = "DEBUG"; RUST_LOG = "INFO"; # PULSE_SERVER = "unix:/run/user/pulse/native"; # couldn't get native pulse server working }; volumes = [ "/dev/:/dev/:rw" "/run/udev:/run/udev:rw" "/run/user" "/var/lib/${service-name}/:/etc/wolf:z" "/run/podman/podman.sock:/var/run/docker.sock:ro" # "/run/user/${uid}:/run/user" ]; }; }; }; }; }; ``` I hope this helps someone!
Author
Owner

@ABeltramo commented on GitHub (Feb 7, 2026):

Thanks for sharing and glad you could make it work. Have fun!

<!-- gh-comment-id:3865201863 --> @ABeltramo commented on GitHub (Feb 7, 2026): Thanks for sharing and glad you could make it work. Have fun!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/wolf#223
No description provided.