Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dota 2 does not load in SteamLinuxRuntime with Steam installed via Snap / Flatpak (Ubuntu 23 /endeavouros) #586

Open
KleinerKobold opened this issue Apr 30, 2023 · 12 comments

Comments

@KleinerKobold
Copy link

Your system information

  • System information from steam (Steam -> Help -> System Information) in a gist info
  • Have you checked for system updates?: [Yes]
  • Are you using the latest stable video driver available for your system? [Yes]
  • Have you verified the game files?: [Yes]

Please describe your issue in as much detail as possible:

I start Dota, the logo is coming up, the cursor changes nothing else happens.
The Game does not load any further
gist Vulkan Info

Sometimes it loads, but only every 2 to 3 days. All started with 7.33 update

Steps for reproducing this issue:

  1. see description
@kisak-valve
Copy link
Member

kisak-valve commented Apr 30, 2023

Hello @KleinerKobold, this is a key detail: https://gist.github.com/KleinerKobold/6e163360cf23af535fbe7ad52c31d6aa#file-steam-info-L48

LLVMpipe is mesa's faster CPU renderer and the fact that Steam is using it means that there is a general system configuration issue that is causing trouble with using your GPU. Please let Steam finish collecting the extended diagnostics information and update your system information gist.

The Linux client of Dota 2 is currently intended to be run in the scout-on-soldier Steam Linux Runtime configuration. This is configured automatically for Linux users. If you've set a per-game Steam Play compatibility tool override, please uncheck that setting.

@KleinerKobold
Copy link
Author

Hello @KleinerKobold, this is a key detail: https://gist.github.com/KleinerKobold/6e163360cf23af535fbe7ad52c31d6aa#file-steam-info-L48

LLVMpipe is mesa's faster CPU renderer and the fact that Steam is using it means that there is a general system configuration issue that is causing trouble with using your GPU. Please let Steam finish collecting the extended diagnostics information and update your system information gist.

The Linux client of Dota 2 is currently intended to be run in the scout-on-soldier Steam Linux Runtime configuration. This is configured automatically for Linux users. If you've set a per-game Steam Play compatibility tool override, please uncheck that setting.

Sorry I Updated the gist

@kisak-valve kisak-valve transferred this issue from ValveSoftware/Dota-2 Apr 30, 2023
@kisak-valve
Copy link
Member

Your issue is between Ubuntu's Snap packaging and the Steam runtime container environment (https://gist.github.com/KleinerKobold/6e163360cf23af535fbe7ad52c31d6aa#file-steam-info-L3342-L3356) and Dota 2 isn't being allowed access to the video card.

I've transferred this to the steam-runtime issue tracker for a runtime dev to ponder, but really this is a Steam-in-Snap packaging issue and should be reported to those package maintainers.

Please give https://github.com/ValveSoftware/steam-runtime/blob/master/doc/reporting-steamlinuxruntime-bugs.md#essential-information a read and share the requested information.

@smcv
Copy link
Contributor

smcv commented May 1, 2023

I think there are several problems here, potentially all connected to running Steam as a Snap app instead of an OS-level app (e.g. .deb).

In the legacy LD_LIBRARY_PATH runtime, used for most games (but not Dota 2), Vulkan is not working in 32-bit processes:

      "graphics-details" : {
        "x11/vulkan" : {
          "messages" : [
            "vkEnumeratePhysicalDevices (instance, physical_device_count, NULL) failed: ERROR_INITIALIZATION_FAILED (-3)"
          ],

If that's the case when not using the container runtime, the container runtime is not going to be able to solve that for you. 32-bit VDPAU and VA-API are also not working, and 32-bit OpenGL is using llvmpipe as @kisak-valve mentioned.

64-bit OpenGL, VDPAU and maybe Vulkan are working outside the container - there's a known bug in the diagnostic tool for Vulkan that is causing it to crash on Nvidia systems, but at least it gets far enough to crash, which is better than 32-bit. 64-bit VA-API is not working, but unfortunately that's expected on Nvidia systems.

Then we get into the container. These warnings indicate potential incompatibilities between Steam-in-Snap and the container runtime which can maybe be addressed from our side. A detailed log with STEAM_LINUX_RUNTIME_VERBOSE=1 would be useful to be able to look into these in more detail:

pressure-vessel-wrap[17272]: W: "snap/steam/136/graphics/usr/share/libdrm" is unlikely to appear in "/run/host"
pressure-vessel-wrap[17272]: W: "snap/steam/136/graphics/usr/share/libdrm" is unlikely to appear in "/run/host"
pressure-vessel-wrap[17272]: W: "var/lib/snapd/hostfs/usr/share/drirc.d" is unlikely to appear in "/run/host"
pressure-vessel-wrap[17272]: W: "snap/steam/136/graphics/usr/share/drirc.d" is unlikely to appear in "/run/host"
pressure-vessel-wrap[17272]: W: "var/lib/snapd/hostfs/usr/share/nvidia" is unlikely to appear in "/run/host"
pressure-vessel-wrap[17272]: W: "var/lib/snapd/hostfs/usr/share/nvidia" is unlikely to appear in "/run/host"
pressure-vessel-adverb[17319]: W: Cannot create temporary directory for platform specific libraries: Failed to create file '/run/user/1000/snap.steam/pressure-vessel-libs-NHH031': No such file or directory
pressure-vessel-adverb[17319]: W: Cannot create temporary directory for locales: Failed to create file '/run/user/1000/snap.steam/pressure-vessel-locales-2ND031': No such file or directory

These warnings indicate incompatibilities between this diagnostic tool and Steam-in-Snap, which can only be addressed from the Steam-in-Snap side:

        "error" : "Failed to execute child process “/usr/libexec/steam-runtime-tools-0/i386-linux-gnu-detect-lib” (Permission denied)"
        "error" : "Failed to execute child process “/usr/libexec/steam-runtime-tools-0/i386-linux-gnu-detect-platform” (Permission denied)"
(etc.)

We cannot tell what does or doesn't work beyond that, because Steam-in-Snap is breaking our diagnostic tool. The diagnostic tool needs permission to run anything in the container environment, without gaining or losing privileges (rmix in AppArmor jargon).

@smcv
Copy link
Contributor

smcv commented May 2, 2023

These warnings indicate potential incompatibilities between Steam-in-Snap and the container runtime which can maybe be addressed from our side

I tried doing this, but Steam-in-Snap's AppArmor profile doesn't allow bind-mounting /snap or /var/lib/snapd/hostfs into the container environment. We are not going to be able to make this work better if Steam-in-Snap won't allow the necessary actions.

@KleinerKobold
Copy link
Author

I fixed it.
The real error was to keep the steam library from apt steam to snap steam.
Since there was no old files everything works fine. This is real obscure.
Thanks for the help.

@KleinerKobold
Copy link
Author

Since Dota Update today, problem is back, I will look to collect more data

@smcv
Copy link
Contributor

smcv commented May 5, 2023

@kisak-valve, please could you retitle this to something like "Dota 2 does not load in SteamLinuxRuntime with Steam installed via Snap" to set the scope of this issue?

@kisak-valve kisak-valve changed the title [Linux/Ubuntu EndeveorOS] Dota 2 does not load in SteamLinuxRuntime Dota 2 does not load in SteamLinuxRuntime with Steam installed via Snap May 5, 2023
@KleinerKobold KleinerKobold changed the title Dota 2 does not load in SteamLinuxRuntime with Steam installed via Snap Dota 2 does not load in SteamLinuxRuntime with Steam installed via Snap / Flatpak (Ubuntu 23 /endeavouros) May 6, 2023
@KleinerKobold
Copy link
Author

The problem still exists, but I went away from ubuntu back to endeavouros and installed steam as native app (pac. No complications anymore.

sudo pacman -S steam

If you like to fix the error keep it open, my incident is now closed.

@smcv
Copy link
Contributor

smcv commented May 9, 2023

installed steam as native app

To confirm: installing Steam as a native app (pacman, apt/dpkg, RPM, or your OS's equivalent) is the only thing that Valve can realistically support.

Sandboxed app frameworks like Flatpak and Snap are not a particularly great fit for Steam, because Steam isn't really an "app" in the sense that those sandboxed app frameworks are designed to work with: it's more like an app-store with its own app framework and user-installable apps (games), so there's a nearly unlimited amount of code that needs to be runnable as part of "Steam".

Third-party Flatpak and Snap versions of Steam exist, but issues that exist with those versions cannot necessarily be solved by Valve or the maintainers of the Steam Runtime: some issues can only be solved by their third-party packagers or the authors of the app frameworks themselves, and some are impossible to solve at all.

The Flatpak version works reasonably well by now, but has a performance penalty and some unavoidable glitches. The Snap version seems to be rather fragile, and will break very easily when things in Steam change.

@smcv
Copy link
Contributor

smcv commented Jan 25, 2024

In the legacy LD_LIBRARY_PATH runtime, used for most games (but not Dota 2), Vulkan is not working in 32-bit processes [...] 32-bit VDPAU and VA-API are also not working, and 32-bit OpenGL is using llvmpipe

Reported to Canonical as canonical/steam-snap#358.

@smcv
Copy link
Contributor

smcv commented Jan 25, 2024

These warnings indicate potential incompatibilities between Steam-in-Snap and the container runtime which can maybe be addressed from our side

I tried doing this, but Steam-in-Snap's AppArmor profile doesn't allow bind-mounting /snap or /var/lib/snapd/hostfs into the container environment. We are not going to be able to make this work better if Steam-in-Snap won't allow the necessary actions.

Reported to Canonical as canonical/steam-snap#359.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants