NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
18.3k stars 14.27k forks source link

Gamescope cannot be used to launch Steam games #351516

Open aldrenean opened 4 weeks ago

aldrenean commented 4 weeks ago

Describe the bug

Attempting to use gamescope with Steam games, by adding 'gamescope -- %command%' to the game's launch options, doesn't work.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Install steam (programs.steam.enable = true)
  2. Enable gamescope with 'programs.gamescope.enable = true'
  3. Also set 'programs.gamescope.capSysNice = true'
  4. Add 'gamescope -- %command%' to the launch options in the game's properties
  5. Try launching the game

Expected behavior

The game should open, running inside of a gamescope instance.

Additional context

Logging the output with 'gamescope -- %command% >> out.txt' gives only one line of output: "failed to inherit capabilities: Operation not permitted". It sounds like a permissions issue, though setting capSysNice to true for gamescope should hypothetically let it renice itself.

This comment suggests that using the flatpak version of Steam resolves this issue. I have not tested this, as it's non-trivial to transition from a native to flatpak steam installation, but regardless, the behavior with the native package should be fixed.

Notify maintainers

@K900 @zhaofengli @Scrumplex @PedroHLC @nrdxp

Metadata

K900 commented 4 weeks ago

It's not really possible with the way fhsenvs work currently.

nrdxp commented 4 weeks ago

also the ticket name isn't exactly correct. I use gamescope as a window manager just fine to launch steam. So what you are more saying here is that you cannot launch gamescope in a nested session

PedroHLC commented 4 weeks ago

also the ticket name isn't exactly correct. I use gamescope as a window manager just fine to launch steam. So what you are more saying here is that you cannot launch gamescope in a nested session

It's even more narrow than that, you can't open it, nested, with capSysNice = true, due to the FHS bubblewrap.

aidanmaney commented 4 weeks ago

I have this issue on recent builds but not builds on/before Oct 14 (without capSysNice set on any of them). I am using the gamescope package from unstable but the program version is the same across all of them: 3.15.11.

Metadata

K900 commented 4 weeks ago

That exact issue should be impossible without capSysNice. Can you post the exact logs you're getting?

aldrenean commented 4 weeks ago

When running without capSysNice, I get the following relevant output in the console:

wlserver: Running compositor on wayland display 'gamescope-0' wlserver: [backend/headless/backend.c:17] Starting headless backend wlserver: Successfully initialized libei for input emulation! wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X1: Address already in use wlserver: [xwayland/server.c:107] Starting Xwayland on :2 ERROR: ld.so: object '/home/aldrenean/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. Xwayland: symbol lookup error: /nix/store/h8x5zjpgicr5y1qd7qv917vq1pi37401-libkrb5-1.21.3/lib/libcom_err.so.3: undefined symbol: k5_os_mutex_destroy, version krb5support_0_MIT wlserver: [xwayland/server.c:269] Xwayland startup failed, not setting up xwm

Steam says the game is running but the only process I can see is the full gamescope command expanded to include the calls to steam-launch-wrapper, reaper, etc., which needs to be manually killed -- clicking Stop in Steam has worked a couple times but generally it hangs in "stopping" indefinitely.

aidanmaney commented 4 weeks ago

That exact issue should be impossible without capSysNice. Can you post the exact logs you're getting?

I confirmed it launches fine without gamescope. Using these launch options — LD_PRELOAD="" gamescope --backend wayland -W 3840 -H 2160 -w 3840 -h 2160 -b -e -s 1.67 --force-grab-cursor -r 144 --expose-wayland --adaptive-sync -- %command% — I get the following output:

Fossilize INFO: Setting autogroup scheduling.
pressure-vessel-wrap[8172]: W: "/run/current-system/sw/bin/getent" is unlikely to appear in "/run/host"
pressure-vessel-wrap[8172]: W: Found more than one possible libdrm data directory from provider
fsync: up and running.
Fossilize INFO: Setting autogroup scheduling.
Fossilize INFO: Setting autogroup scheduling.
chdir "/home/aidan/.local/share/Steam/steamapps/common/Deadlock"
ERROR: ld.so: object '/home/aidan/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Game Recording - would start recording game 1422450, but recording for this game is disabled
Adding process 8432 for gameID 1422450
*** stack smashing detected ***: terminated
Uploaded AppInterfaceStats to Steam
Game Recording - game stopped [gameid=1422450]
Removing process 8432 for gameID 1422450
K900 commented 3 weeks ago

OK, one of those issues is known and I'm looking into a proper fix in the next few days. For now, try removing mangohud and/or gamemode from your extraPkgs.

K900 commented 3 weeks ago

Please test https://github.com/NixOS/nixpkgs/pull/351928.

aidanmaney commented 3 weeks ago

I get further than before with #351928. Instead of games not starting I get the initial launch screen (in this case the Valve logo) with the game cursor but then the gamescope window stops responding and goes black until I kill it. Here are my logs:

pressure-vessel-wrap[10067]: W: "/run/current-system/sw/bin/getent" is unlikely to appear in "/run/host"
pressure-vessel-wrap[10067]: W: Found more than one possible libdrm data directory from provider
fsync: up and running.
chdir "/home/aidan/.local/share/Steam/steamapps/common/Deadlock"
ERROR: ld.so: object '/home/aidan/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Game Recording - would start recording game 1422450, but recording for this game is disabled
Adding process 10284 for gameID 1422450
[gamescope] [Info]  console: gamescope version 3.15.9 (gcc 13.3.0)
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
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 6650 XT (RADV NAVI23)': queue family 1 (general queue family 0)
[gamescope] [Info]  vulkan: physical device supports DRM format modifiers
Fossilize INFO: Overriding serialization path: "/home/aidan/.local/share/Steam/steamapps/shadercache/1422450/fozpipelinesv6/steamapprun_pipeline_cache".
[gamescope] [Info]  wlserver: [backend/headless/backend.c:67] Creating headless backend
[gamescope] [Info]  xdg_backend: Seat name: seat0
[gamescope] [Info]  vulkan: supported DRM formats for sampling usage:
[gamescope] [Info]  vulkan:   AR24 (0x34325241)
[gamescope] [Info]  vulkan:   XR24 (0x34325258)
[gamescope] [Info]  vulkan:   AB24 (0x34324241)
[gamescope] [Info]  vulkan:   XB24 (0x34324258)
[gamescope] [Info]  vulkan:   RG16 (0x36314752)
[gamescope] [Info]  vulkan:   NV12 (0x3231564E)
[gamescope] [Info]  vulkan:   AB4H (0x48344241)
[gamescope] [Info]  vulkan:   XB4H (0x48344258)
[gamescope] [Info]  vulkan:   AB30 (0x30334241)
[gamescope] [Info]  vulkan:   XB30 (0x30334258)
[gamescope] [Info]  vulkan:   AR30 (0x30335241)
[gamescope] [Info]  vulkan:   XR30 (0x30335258)
[gamescope] [Info]  wlserver: Using explicit sync when available
[gamescope] [Info]  wlserver: Running compositor on wayland display 'gamescope-0'
[gamescope] [Info]  wlserver: [backend/headless/backend.c:17] Starting headless backend
[gamescope] [Info]  wlserver: Successfully initialized libei for input emulation!
[gamescope] [Error] wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use
[gamescope] [Error] wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X1: Address already in use
[gamescope] [Info]  wlserver: [xwayland/server.c:107] Starting Xwayland on :2
[gamescope] [Info]  pipewire: stream state changed: connecting
[gamescope] [Info]  pipewire: stream state changed: paused
[gamescope] [Info]  pipewire: stream available on node ID: 74
[gamescope] [Info]  xwm: Embedded, no cursor set. Using left_ptr by default.
[gamescope] [Info]  vblank: Using timerfd.
[gamescope] [Error] xdg_backend: Failed to map keymap fd.
[gamescope] [Info]  edid: Patching res 800x1280 -> 3840x2160
pressure-vessel-wrap[10314]: W: "/run/current-system/sw/bin/getent" is unlikely to appear in "/run/host"
pressure-vessel-wrap[10314]: W: Found more than one possible libdrm data directory from provider
pressure-vessel-wrap[10314]: W: Extra environment variable WAYLAND_DISPLAY set during container setup but not in known_vars; check logic
fsync: up and running.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
Setting breakpad minidump AppID = 1422450
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198357593009 [API loaded no]
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
Fossilize INFO: Overriding serialization path: "/home/aidan/.local/share/Steam/steamapps/shadercache/1422450/fozpipelinesv6/steamapprun_pipeline_cache".
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
Fossilize INFO: Overriding serialization path: "/home/aidan/.local/share/Steam/steamapps/shadercache/1422450/fozpipelinesv6/steamapprun_pipeline_cache".
[gamescope] [Warn]  xwm: got the same buffer committed twice, ignoring.
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Could not resolve keysym XF86KbdInputAssistPrevgrou
> Warning:          Could not resolve keysym XF86KbdInputAssistNextgrou
Errors from xkbcomp are not fatal to the X server
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_khr_present_wait overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
[gamescope] [Warn]  xwm: got the same buffer committed twice, ignoring.
[gamescope] [Warn]  xwm: got the same buffer committed twice, ignoring.
[gamescope] [Info]  wlserver: [wayland] error in client communication (pid 10284)
[gamescope] [Info]  wlserver: [xwayland/server.c:217] Restarting Xwayland
XWAYLAND: wp_linux_drm_syncobj_manager_v1#9: error 0: wp_linux_drm_syncobj_surface_v1 already created for this surface
(EE) failed to dispatch Wayland events: Protocol error
[gamescope] [Info]  wlserver: [xwayland/server.c:107] Starting Xwayland on :2
X connection to :2 broken (explicit kill or server shutdown).
X connection to :2 broken (explicit kill or server shutdown).
X connection to :2 broken (explicit kill or server shutdown).
X connection to :2 broken (explicit kill or server shutdown).
X connection to :2 broken (explicit kill or server shutdown).
[gamescope] [Error] xwm: X11 I/O error
[gamescopereaper] [Info]  reaper: Parent of gamescopereaper was killed. Killing children.
(EE) could not connect to wayland server
K900 commented 3 weeks ago

This sounds like an xwayland crash? Are you using Steam from the same nixpkgs version as the rest of your system?

aidanmaney commented 3 weeks ago

This sounds like an xwayland crash? Are you using Steam from the same nixpkgs version as the rest of your system?

Yes, I rebuilt with all packages pointed at "github:K900/nixpkgs?ref=awful-steamage"

K900 commented 3 weeks ago

Does this happen to all games, or only specific ones? If specific ones, which?

aidanmaney commented 3 weeks ago

Does this happen to all games, or only specific ones? If specific ones, which?

Yes, it seems to happen with all games (tested with Deadlock, Terraria, Blender, and Don't Starve Together).

K900 commented 3 weeks ago

That's very strange. Do you have any core dumps in coredumpctl when this happens?

aidanmaney commented 3 weeks ago

That's very strange. Do you have any core dumps in coredumpctl when this happens?

No, nothing of that sort. I forgot to change a url in my flake.nix and rebuilt against your branch again, now the game just says its running but doesn't spawn any processes, the logs are looking a bit different:

steam.sh[6974]: Running Steam on nixos 24.11 64-bit
steam.sh[6974]: STEAM_RUNTIME is enabled automatically
setup.sh[7025]: Steam runtime environment up-to-date!
steam.sh[6974]: Steam client's requirements are satisfied
CProcessEnvironmentManager is ready, 6 preallocated environment variables.
[2024-10-30 22:41:40] Startup - updater built Oct 30 2024 01:26:31
[2024-10-30 22:41:40] Startup - Steam Client launched with: '/home/aidan/.local/share/Steam/ubuntu12_32/steam' '-srt-logger-opened'
[2024-10-30 22:41:40] Opted in to client beta 'publicbeta' via beta file
You are in the 'publicbeta' client beta.
10/30 22:41:40 minidumps folder is set to /tmp/dumps
10/30 22:41:40 Init: Installing breakpad exception handler for appid(steam)/version(1730253536)/tid(7075)
[2024-10-30 22:41:40] Loading cached metrics from disk (/home/aidan/.local/share/Steam/package/steam_client_metrics.bin)
[2024-10-30 22:41:40] Using the following download hosts for Public, Realm steamglobal
[2024-10-30 22:41:40] 1. https://client-update.fastly.steamstatic.com, /, Realm 'steamglobal', weight was 900, source = 'update_hosts_cached.vdf'
[2024-10-30 22:41:40] 2. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 100, source = 'update_hosts_cached.vdf'
[2024-10-30 22:41:40] 3. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2024-10-30 22:41:40] 4. https://client-update.steamstatic.com, /, Realm 'steamglobal', weight was 1, source = 'baked in'
[2024-10-30 22:41:40] Verifying installation...
[2024-10-30 22:41:40] Verification complete
UpdateUI: skip show logo
Steam logging initialized: directory: /home/aidan/.local/share/Steam/logs

XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xe88de840
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xe88dd000
steamwebhelper.sh[7109]: Using supervisor /home/aidan/.steam/root/ubuntu12_32/steam-runtime/amd64/usr/bin/steam-runtime-supervisor
steamwebhelper.sh[7109]: Starting steamwebhelper under bootstrap sniper steam runtime via /home/aidan/.local/share/Steam/ubuntu12_64/steam-runtime-sniper.sh
steamwebhelper.sh[7109]: Using CEF sandbox \(try with -no-cef-sandbox if this fails\)
steamwebhelper.sh[7109]: Starting steamwebhelper with Sniper steam runtime at /home/aidan/.local/share/Steam/ubuntu12_64/steam-runtime-sniper/_v2-entry-point
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 7215
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam                                                                                                                                 pressure-vessel-wrap[7136]: W: Found more than one possible libdrm data directory from provider
exec ./steamwebhelper -lang=en_US -cachedir=/home/aidan/.local/share/Steam/config/htmlcache -steampid=7075 -buildid=1730253536 -steamid=0 -logdir=/home/aidan/.local/share/Steam/logs -uimode=7 -startcount=0 -steamuniverse=Public -realm=Global -clientui=/home/aidan/.local/share/Steam/clientui -steampath=/home/aidan/.local/share/Steam/ubuntu12_32/steam -launcher=0 -no-restart-on-ui-mode-change --valve-enable-site-isolation --enable-smooth-scrolling --disable-gpu-compositing --disable-gpu --password-store=basic --log-file=/home/aidan/.local/share/Steam/logs/cef_log.txt --disable-quick-menu --disable-features=SpareRendererForSitePerProcess,DcheckIsFatal
Desktop state changed: desktop: { pos:    0,   0 size: 3840,2160 } primary: { pos:    0,   0 size: 3840,2160 }
Caching cursor image for , size 48x48, serial 122, cache size = 0
BuildCompleteAppOverviewChange: 229 apps
pressure-vessel-wrap[7709]: W: Found more than one possible libdrm data directory from provider
fsync: up and running.
chdir "/home/aidan/.local/share/Steam/steamapps/common/Deadlock"
ERROR: ld.so: object '/home/aidan/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Game Recording - would start recording game 1422450, but recording for this game is disabled
Adding process 7907 for gameID 1422450
[gamescope] [Info]  console: gamescope version 3.15.11 (gcc 13.3.0)
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
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 6650 XT (RADV NAVI23)': queue family 1 (general queue family 0)
[gamescope] [Info]  vulkan: physical device supports DRM format modifiers
Fossilize INFO: Overriding serialization path: "/home/aidan/.local/share/Steam/steamapps/shadercache/1422450/fozpipelinesv6/steamapprun_pipeline_cache".
[gamescope] [Info]  wlserver: [backend/headless/backend.c:67] Creating headless backend
[gamescope] [Info]  xdg_backend: Seat name: seat0
[gamescope] [Info]  vulkan: supported DRM formats for sampling usage:
[gamescope] [Info]  vulkan:   AR24 (0x34325241)
[gamescope] [Info]  vulkan:   XR24 (0x34325258)
[gamescope] [Info]  vulkan:   AB24 (0x34324241)
[gamescope] [Info]  vulkan:   XB24 (0x34324258)
[gamescope] [Info]  vulkan:   RG16 (0x36314752)
[gamescope] [Info]  vulkan:   NV12 (0x3231564E)
[gamescope] [Info]  vulkan:   AB4H (0x48344241)
[gamescope] [Info]  vulkan:   XB4H (0x48344258)
[gamescope] [Info]  vulkan:   AB30 (0x30334241)
[gamescope] [Info]  vulkan:   XB30 (0x30334258)
[gamescope] [Info]  vulkan:   AR30 (0x30335241)
[gamescope] [Info]  vulkan:   XR30 (0x30335258)
[gamescope] [Info]  wlserver: Using explicit sync when available
[gamescope] [Info]  wlserver: Running compositor on wayland display 'gamescope-0'
[gamescope] [Info]  wlserver: [backend/headless/backend.c:17] Starting headless backend
[gamescope] [Info]  wlserver: Successfully initialized libei for input emulation!
[gamescope] [Error] wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use
[gamescope] [Error] wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X1: Address already in use
[gamescope] [Error] wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X2: Address already in use   
K900 commented 3 weeks ago

Can you try rebooting? It seems like you might have some leftover xwayland sockets.

aidanmaney commented 3 weeks ago

Can you try rebooting? It seems like you might have some leftover xwayland sockets.

Tried restarting with and without steam set to run on startup, no change.

K900 commented 3 weeks ago

Do you have any custom overrides on Steam at all?

aidanmaney commented 3 weeks ago

Do you have any custom overrides on Steam at all?

No, although I do have dynamic triple buffering for Gnome enabled as my only overlay (as per https://wiki.nixos.org/wiki/GNOME#Dynamic_triple_buffering).

K900 commented 3 weeks ago

That's probably fine. Is this GNOME on Wayland or X11? What does ls /tmp/.X* output?

aidanmaney commented 3 weeks ago

That's probably fine. Is this GNOME on Wayland or X11? What does ls /tmp/.X* output?

Gnome on Wayland. Here's the output of that command (it's the same before and after I try to launch a game):

/tmp/.X0-lock  /tmp/.X1024-lock  /tmp/.X1025-lock  /tmp/.X1-lock

/tmp/.X11-unix:
X0  X1  X1024  X1025

/tmp/.XIM-unix:
K900 commented 3 weeks ago

That's... weird. And this is all of the logs from Steam+gamescope? Does the game process start at all?

aidanmaney commented 3 weeks ago

That's... weird. And this is all of the logs from Steam+gamescope? Does the game process start at all?

It says something like Adding process 11748 for gameID 1422450 which I can see in activity monitor as .gamescope-wrap with the same process id — is that what you mean?

Edit: Yes those are all the logs I get from running steam from my terminal (the ones above).

K900 commented 3 weeks ago

Can you just post the entire output from you starting Steam to the game not launching?

aidanmaney commented 3 weeks ago

Can you just post the entire output from you starting Steam to the game not launching?

steam.sh[10167]: Running Steam on nixos 24.11 64-bit
steam.sh[10167]: STEAM_RUNTIME is enabled automatically
setup.sh[10215]: Steam runtime environment up-to-date!
steam.sh[10167]: Steam client's requirements are satisfied
CProcessEnvironmentManager is ready, 6 preallocated environment variables.
[2024-10-31 00:43:19] Startup - updater built Oct 30 2024 01:26:31
[2024-10-31 00:43:19] Startup - Steam Client launched with: '/home/aidan/.local/share/Steam/ubuntu12_32/steam' '-srt-logger-opened'
[2024-10-31 00:43:19] Opted in to client beta 'publicbeta' via beta file
You are in the 'publicbeta' client beta.
10/31 00:43:19 minidumps folder is set to /tmp/dumps
10/31 00:43:19 Init: Installing breakpad exception handler for appid(steam)/version(1730253536)/tid(10269)
[2024-10-31 00:43:19] Loading cached metrics from disk (/home/aidan/.local/share/Steam/package/steam_client_metrics.bin)
[2024-10-31 00:43:19] Using the following download hosts for Public, Realm steamglobal
[2024-10-31 00:43:19] 1. https://client-update.fastly.steamstatic.com, /, Realm 'steamglobal', weight was 900, source = 'update_hosts_cached.vdf'
[2024-10-31 00:43:19] 2. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 100, source = 'update_hosts_cached.vdf'
[2024-10-31 00:43:19] 3. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2024-10-31 00:43:19] 4. https://client-update.steamstatic.com, /, Realm 'steamglobal', weight was 1, source = 'baked in'
[2024-10-31 00:43:19] Verifying installation...
[2024-10-31 00:43:19] Verification complete
UpdateUI: skip show logo
Steam logging initialized: directory: /home/aidan/.local/share/Steam/logs

XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xe8913840
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xe8912000
steamwebhelper.sh[10303]: Using supervisor /home/aidan/.steam/root/ubuntu12_32/steam-runtime/amd64/usr/bin/steam-runtime-supervisor
steamwebhelper.sh[10303]: Starting steamwebhelper under bootstrap sniper steam runtime via /home/aidan/.local/share/Steam/ubuntu12_64/steam-runtime-sniper.sh
steamwebhelper.sh[10303]: Using CEF sandbox \(try with -no-cef-sandbox if this fails\)
steamwebhelper.sh[10303]: Starting steamwebhelper with Sniper steam runtime at /home/aidan/.local/share/Steam/ubuntu12_64/steam-runtime-sniper/_v2-entry-point
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 10416
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
pressure-vessel-wrap[10330]: W: Found more than one possible libdrm data directory from provider
exec ./steamwebhelper -lang=en_US -cachedir=/home/aidan/.local/share/Steam/config/htmlcache -steampid=10269 -buildid=1730253536 -steamid=0 -logdir=/home/aidan/.local/share/Steam/logs -uimode=7 -startcount=0 -steamuniverse=Public -realm=Global -clientui=/home/aidan/.local/share/Steam/clientui -steampath=/home/aidan/.local/share/Steam/ubuntu12_32/steam -launcher=0 -no-restart-on-ui-mode-change --valve-enable-site-isolation --enable-smooth-scrolling --disable-gpu-compositing --disable-gpu --password-store=basic --log-file=/home/aidan/.local/share/Steam/logs/cef_log.txt --disable-quick-menu --disable-features=SpareRendererForSitePerProcess,DcheckIsFatal
steamwebhelper.sh[10740]: Using supervisor /home/aidan/.steam/root/ubuntu12_32/steam-runtime/amd64/usr/bin/steam-runtime-supervisor
steamwebhelper.sh[10740]: Starting steamwebhelper under bootstrap sniper steam runtime via /home/aidan/.local/share/Steam/ubuntu12_64/steam-runtime-sniper.sh
steamwebhelper.sh[10740]: Using CEF sandbox \(try with -no-cef-sandbox if this fails\)
steamwebhelper.sh[10740]: Starting steamwebhelper with Sniper steam runtime at /home/aidan/.local/share/Steam/ubuntu12_64/steam-runtime-sniper/_v2-entry-point
pressure-vessel-wrap[10772]: W: Found more than one possible libdrm data directory from provider
exec ./steamwebhelper -lang=en_US -cachedir=/home/aidan/.local/share/Steam/config/htmlcache -steampid=10269 -buildid=1730253536 -steamid=0 -logdir=/home/aidan/.local/share/Steam/logs -uimode=7 -startcount=1 -steamuniverse=Public -realm=Global -clientui=/home/aidan/.local/share/Steam/clientui -steampath=/home/aidan/.local/share/Steam/ubuntu12_32/steam -launcher=0 -no-restart-on-ui-mode-change --valve-enable-site-isolation --enable-smooth-scrolling --disable-gpu-compositing --disable-gpu --password-store=basic --log-file=/home/aidan/.local/share/Steam/logs/cef_log.txt --disable-quick-menu --disable-features=SpareRendererForSitePerProcess,DcheckIsFatal
Desktop state changed: desktop: { pos:    0,   0 size: 3840,2160 } primary: { pos:    0,   0 size: 3840,2160 }
Caching cursor image for , size 48x48, serial 252, cache size = 0
BuildCompleteAppOverviewChange: 229 apps
pressure-vessel-wrap[11480]: W: Found more than one possible libdrm data directory from provider
fsync: up and running.
chdir "/home/aidan/.local/share/Steam/steamapps/common/Deadlock"
ERROR: ld.so: object '/home/aidan/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
[gamescope] [Info]  console: gamescope version 3.15.11 (gcc 13.3.0)
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
Game Recording - would start recording game 1422450, but recording for this game is disabled
Adding process 11748 for gameID 1422450
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 6650 XT (RADV NAVI23)': queue family 1 (general queue family 0)
[gamescope] [Info]  vulkan: physical device supports DRM format modifiers
Fossilize INFO: Overriding serialization path: "/home/aidan/.local/share/Steam/steamapps/shadercache/1422450/fozpipelinesv6/steamapprun_pipeline_cache".
[gamescope] [Info]  wlserver: [backend/headless/backend.c:67] Creating headless backend
[gamescope] [Info]  xdg_backend: Seat name: seat0
[gamescope] [Info]  vulkan: supported DRM formats for sampling usage:
[gamescope] [Info]  vulkan:   AR24 (0x34325241)
[gamescope] [Info]  vulkan:   XR24 (0x34325258)
[gamescope] [Info]  vulkan:   AB24 (0x34324241)
[gamescope] [Info]  vulkan:   XB24 (0x34324258)
[gamescope] [Info]  vulkan:   RG16 (0x36314752)
[gamescope] [Info]  vulkan:   NV12 (0x3231564E)
[gamescope] [Info]  vulkan:   AB4H (0x48344241)
[gamescope] [Info]  vulkan:   XB4H (0x48344258)
[gamescope] [Info]  vulkan:   AB30 (0x30334241)
[gamescope] [Info]  vulkan:   XB30 (0x30334258)
[gamescope] [Info]  vulkan:   AR30 (0x30335241)
[gamescope] [Info]  vulkan:   XR30 (0x30335258)
[gamescope] [Info]  wlserver: Using explicit sync when available
[gamescope] [Info]  wlserver: Running compositor on wayland display 'gamescope-0'
[gamescope] [Info]  wlserver: [backend/headless/backend.c:17] Starting headless backend
[gamescope] [Info]  wlserver: Successfully initialized libei for input emulation!
[gamescope] [Error] wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use
[gamescope] [Error] wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X1: Address already in use
[gamescope] [Error] wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X2: Address already in use
[gamescope] [Error] wlserver: [xwayland/sockets.c:64] Failed to bind socket @/tmp/.X11-unix/X3: Address already in use
[gamescope] [Info]  wlserver: [xwayland/server.c:107] Starting Xwayland on :4
[2024-10-31 00:45:20] Background update loop checking for update. . .
[2024-10-31 00:45:20] Checking for available updates...
[2024-10-31 00:45:20] Downloading manifest: https://client-update.fastly.steamstatic.com/steam_client_publicbeta_ubuntu12
[2024-10-31 00:45:20] Manifest download: send request
[2024-10-31 00:45:20] Manifest download: waiting for download to finish
[2024-10-31 00:45:21] Manifest download: finished
[2024-10-31 00:45:21] Download skipped: /steam_client_publicbeta_ubuntu12 version 1730253536, installed version 1730253536, existing pending version 0
[2024-10-31 00:45:21] Nothing to do
K900 commented 3 weeks ago

Are you using some sort of hardened kernel?

aidanmaney commented 3 weeks ago

Are you using some sort of hardened kernel?

No, I'm using Linux 6.6.58, and haven't modified anything at the kernel-level since installing from the regular x86 ISO as far as I know. Would it help if I provided my configuration.nix?

K900 commented 3 weeks ago

Please do.

aidanmaney commented 3 weeks ago
# Edit this configuration file to define what should be installed on
# your system.  Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).

{ config, pkgs, inputs, ...
}: 
let
  unstable = import <nixpkgs-unstable> {
    config.allowUnfree = true;
  };
in
{
    imports = [
      # Include the results of the hardware scan.
      ./hardware-configuration.nix
      ./cachix.nix
    ];

    # Bootloader.
    boot.loader.systemd-boot.enable = true;
    boot.loader.efi.canTouchEfiVariables = true;

    networking.hostName = "nixos"; # Define your hostname.
    # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.

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

    # Enable networking
    networking.networkmanager.enable = true;

    # Set your time zone.
    time.timeZone = "America/Los_Angeles";

    # Select internationalisation properties.
    i18n.defaultLocale = "en_US.UTF-8";

    i18n.extraLocaleSettings = {
      LC_ADDRESS = "en_US.UTF-8";
      LC_IDENTIFICATION = "en_US.UTF-8";
      LC_MEASUREMENT = "en_US.UTF-8";
      LC_MONETARY = "en_US.UTF-8";
      LC_NAME = "en_US.UTF-8";
      LC_NUMERIC = "en_US.UTF-8";
      LC_PAPER = "en_US.UTF-8";
      LC_TELEPHONE = "en_US.UTF-8";
      LC_TIME = "en_US.UTF-8";
    };

    # 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 = "";
    };

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

    hardware.bluetooth.enable = true;
    hardware.bluetooth.settings = { General = { ControllerMode = "bredr";};};
    systemd.services.bluetooth.serviceConfig.ExecStart = [
    ""
    "${pkgs.bluez}/libexec/bluetooth/bluetoothd --noplugin=sap,avrcp"
    ];

    # Enable sound with pipewire.
    hardware.pulseaudio.enable = false;
    security.rtkit.enable = true;
    services.pipewire = {
      enable = true;
      alsa.enable = true;
      alsa.support32Bit = true;
      pulse.enable = true;
      wireplumber.enable = true; 
      # If you want to use JACK applications, uncomment this
      #jack.enable = true;

      # use the example session manager (no others are packaged yet so this is enabled by default,
      # no need to redefine it in your config for now)
      #media-session.enable = true;
    };
    systemd.user.services.pipewire-pulse.path = [ pkgs.pulseaudio ];

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

    # Define a user account. Don't forget to set a password with ‘passwd’.
    users.users.aidan = {
      isNormalUser = true;
      description = "Aidan Maney";
      extraGroups = [
        "networkmanager"
        "wheel"
      ];
      packages = with pkgs; [
        #  thunderbird
      ];
      shell = pkgs.fish;
    };

    # List packages installed in system profile. To search, run:
    # $ nix search wget
    environment.systemPackages = [
    unstable.vim
    unstable.sudo
    unstable.espeak
    unstable.speechd
    unstable.wget
    unstable.fish
    unstable.atuin
    unstable.direnv
    unstable.gh
    unstable.wireplumber
    unstable.hyfetch
    unstable.pipewire
    unstable.liquidctl
    unstable.nodejs_22
    unstable.csharpier
    unstable.iosevka
    unstable.kitty
    unstable.netcoredbg
    unstable.omnisharp-roslyn
    unstable.fsautocomplete
    unstable.yubikey-agent
    unstable.yubico-pam
    unstable.yubikey-manager
    unstable.pam_u2f
    unstable.bluez
    unstable.gnupg
    unstable.yubioath-flutter
    unstable.nil
    unstable.fishPlugins.tide
    unstable.prismlauncher
    unstable.zulip
    unstable.steam
    unstable.nixd
    unstable.nix-direnv
    unstable.appimage-run
    unstable.gamescope
    unstable.arrpc
    unstable.marksman
    unstable.fzf
    unstable.cachix
    unstable.glow
    unstable.slack
    unstable.libsForQt5.qtstyleplugins
    unstable.kdePackages.qt6gtk2
    unstable.kdePackages.kate
    unstable.lapce
    unstable.colloid-gtk-theme
    unstable.fabric-installer
    unstable.vscode-fhs
    unstable.obsidian
    unstable.pcscliteWithPolkit
    unstable.dotnetCorePackages.sdk_9_0
    unstable.beeper
    unstable.slack
    unstable.evil-helix
    unstable.zed-editor
    unstable.gdm-settings
    inputs.wezterm.packages.${pkgs.system}.default
    inputs.roc.packages.${pkgs.system}.full
    ];

    # Some programs need SUID wrappers, can be configured further or are
    # started in user sessions.
    # programs.mtr.enable = true;
    # programs.gnupg.agent = {
    #   enable = true;
    #   enableSSHSupport = true;
    # };

    # List services that you want to enable:

    # Enable the OpenSSH daemon.
    services.openssh.enable = true;

    # Open ports in the firewall.
    # networking.firewall.allowedTCPPorts = [ ... ];
    # networking.firewall.allowedUDPPorts = [ ... ];
    # Or disable the firewall altogether.
    # networking.firewall.enable = false;

    services.flatpak.enable = true;
    programs.fish.enable = true;

    # This value determines the NixOS release from which the default
    # settings for stateful data, like file locations and database versions
    # on your system were taken. It‘s perfectly fine and recommended to leave
    # this value at the release version of the first install of this system.
    # Before changing thisj value read the documentation for this option
    # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
    system.stateVersion = "24.05"; # Did you read the comment?

    nix.settings.substituters = ["https://wezterm.cachix.org"];
    nix.settings.trusted-public-keys = ["wezterm.cachix.org-1:kAbhjYUC9qvblTE+s7S+kl5XM1zVa4skO+E/1IDWdH0="];
    nix.settings.trusted-users = [ "root" "aidan" ];
    nix.settings.experimental-features = [
      "nix-command"
      "flakes"
    ];

    services.pcscd.enable = true;

    security.pam.yubico = {
     enable = true;
     debug = false;
     mode = "challenge-response";
     id = [ "12345678" ];
    };

    security.pam.services.gdm.enableGnomeKeyring = true;
    services.gnome.gnome-keyring.enable = true;

    nix.settings.extra-substituters = [
      "https://nix-community.cachix.org"
    ];

    nix.settings.extra-trusted-public-keys = [
      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
    ];

    nixpkgs.overlays = [
      # GNOME 46: triple-buffering-v4-46
      (final: prev: {
        gnome = prev.gnome.overrideScope (gnomeFinal: gnomePrev: {
          mutter = gnomePrev.mutter.overrideAttrs (old: {
            src = pkgs.fetchFromGitLab  {
              domain = "gitlab.gnome.org";
              owner = "vanvugt";
              repo = "mutter";
              rev = "triple-buffering-v4-46";
              hash = "sha256-C2VfW3ThPEZ37YkX7ejlyumLnWa9oij333d5c4yfZxc=";
            };
          });
        });
      })
  ];
  hardware.graphics.enable32Bit = true;
  hardware.pulseaudio.support32Bit = true;
}
K900 commented 3 weeks ago

Yeah, the issue is likely that you're mixing channels. You can't do that right now with graphical applications. Please build your entire system from one channel.

aidanmaney commented 3 weeks ago

Yeah, the issue is likely that you're mixing channels. You can't do that right now with graphical applications. Please build your entire system from one channel.

Do you mean these lines:

inputs.wezterm.packages.${pkgs.system}.default
inputs.roc.packages.${pkgs.system}.full
K900 commented 3 weeks ago

No, I mean all the unstable.whatever things you're doing.