ValveSoftware / steam-runtime

A runtime environment for Steam applications
Other
1.19k stars 86 forks source link

Dota 2 fails to launch with Steam Play disabled in beta client >= 1729208001 #698

Open u83rmensch opened 2 weeks ago

u83rmensch commented 2 weeks ago

Your system information

Please describe your issue in as much detail as possible:

Describe what you expected should happen and what did happen. Please link any large pastes as a Github Gist.

Steps for reproducing this issue:

  1. be on the steam client beta as of Oct 18th 2024
  2. launch dota 2
  3. be met with the following errors:

image

Unable To start Game A game file appears to be missing or corrupted. In the Steam client go to the game's properties. In the 'Local Files' tab select 'Verify Integrity of Game Cache' to have Steam double-check the game's installation.

image

Error CAppSystemDict:Unable to load module panorama_text_pango (Dependency of application), error 2

After hitting "ok" on both error prompts, the game window closes and Steam proceeds to run a Validation against the game and finds no issues.

I understand an update for Steam client for linux and the steam linux runtime had some kind of update today or yesterday that was supposed to help compatibility with native Linux games so I'm inclined to believe this is related since switching from the Steam client beta back to the stable branch resolves the issue and I can play Dota 2 as normal.

I did try to launch steam from the terminal using the provided argument "-compat-force-slr off" that is supposed to tell steam client to ignore the new changes? but it had no affect on the issue. It was not until I switched from the beta client back to the stable client that the game was able to work again. The whole command used to launch the beta client was as followed:

steam -compat-force-slr off & disown

TTimo commented 2 weeks ago

Hello,

In the Properties -> Compatibilities tab for Dota 2, make sure that 'Force use of a specific Steam Play compatibility tool' is not checked (and so no drop box selection for runtimes appears).

Dota 2 runs in the sniper runtime, this has been the case for a long time now and the Steam client update should not affect that configuration.

If you are still having issues, please provide your steam logs (generate by running this command in a terminal tar -zcvf ~/Desktop/steam-logs.tar.gz ~/.steam/steam/logs)

u83rmensch commented 2 weeks ago

The compatibilities check box is inaccessible in the beta client (below is a clip of me attempting to click the check box unsuccessfully), I cannot click/check the box at all so I'd assume there are no compatibility settings engaged in any way.

Screencast_20241020_010109.webm

After switching back to the stable client, the compatibility check box becomes available (as seen in the clip below), though it was not checked since I always assumed that was primarily for forcing a linux native title to switch to the windows version and utilize proton, something I never needed for dota. Using the stable client, the game launches fine whether compatibility is enabled/checked (set to Steam Linux Runtime 3.0 (sniper)) or not.

Screencast_20241020_005310.webm

The game went from working while I was on the beta client before any recent updates, to now not working on the beta client at all. Switching from the beta client back to the stable client is the only way the game launches.

below are the steam log requested steam-logs.tar.gz

after writing all of this up, I've realized what the issue is. This beta update disables all of the compatibility settings for all titles. I generally dont play anything but dota 2 on my desktop so I didnt notice that other titles were only offering to stream from another device in my home. Once the steam play compatibility was re-engaged in the general steam settings, dota 2 worked again.

both of these settings (in the picture below) had become disabled after receiving the beta client update, something I've never been able to even do willingly since I enabled it on my steam account back when proton came out.

image

TTimo commented 2 weeks ago

Hello,

Thank you for the logs. Am I correctly understanding that now that you have re-enabled Steam Play you no longer have an issue launching Dota 2 from the Steam beta client?

TTimo commented 2 weeks ago

I tweaked the issue name a little but this isn't an issue specific to running Dota 2 in sniper. It also impacts running native titles in scout.

The latest beta made 'Steam Play disabled' more strictly disabled, and we think a lot of users actually had 'Steam Play disabled' already set, but a lot of things were actually still working.

This setting is now required to be always on, we are looking to address this.

Also note that the UI for this setting is bugged, if you click the toggle, the UI may not actually reflect the change, you should only trust what the toggle indicates after client startup.

u83rmensch commented 2 weeks ago

Am I correctly understanding that now that you have re-enabled Steam Play you no longer have an issue launching Dota 2 from the Steam beta client?

Yes, that is correct, everything is working again now that I have re-enabled Steam Play. It was an issue I didnt expect to encounter because I've always had Steam Play enabled since the feature was introduced and I've never had it become disabled after any updates in the past.

Also note that the UI for this setting is bugged, if you click the toggle, the UI may not actually reflect the change, you should only trust what the toggle indicates after client startup.

that is good to know. thank you.

smcv commented 1 week ago

The latest beta made 'Steam Play disabled' more strictly disabled, and we think a lot of users actually had 'Steam Play disabled' already set, but a lot of things were actually still working.

This setting is now required to be always on, we are looking to address this.

@TTimo, as a data point for you on this:

On one of my test systems, I definitely had "Enable Steam Play for supported titles" ON, and I also had "Enable Steam Play for all other titles" ON. I don't remember which Proton version I had set as my default, probably 8.0 or 9.0. ("All other titles" is misleading - it really means "all other Windows titles" as per ValveSoftware/steam-for-linux#7877)

Today, after upgrading to 1729208001, I found that both of those settings had been toggled to OFF. Some of my test titles for the scout runtime (Floating Point, Portal 2) were launching under scout without using SLR 1.0, and in their Properties → Compatibility, I saw a message saying that the compatibility setting cannot be changed. I didn't try SLR 3.0 games like Dota 2, but I suspect that, while in this state, I would have seen the same symptoms as @u83rmensch.

After toggling "Enable Steam Play for supported titles" back to ON (and restarting Steam to make sure), the games I tried are behaving as expected again.

I'm not 100% confident of the timeline, but I think this did not regress immediately when I upgraded to 1729208001. Instead, I think it was working correctly at first, but then after I exited and re-launched Steam repeatedly (to test unrelated bugs/bug fixes), one of the restarts caused this setting to be toggled to OFF.

Does that match what you know about this issue?

Logs: steam-logs-sr698.tar.gz

smcv commented 1 week ago

For games like Dota 2 that are designed to require a compatibility tool, I think it should not be possible to get into a code path where it will be launched without using that compatibility tool: https://github.com/ValveSoftware/steam-for-linux/issues/9852

TTimo commented 1 week ago

We didn't find any reasonable way that steam play could be getting disabled in that latest beta client update. That just seems very unlikely.

What we observed however, is that the UI for that Steam Play toggle is buggy and for instance stays showing 'on' if you toggle it off even though internally Steam did disable the compat manager. We've worked on the assumption that some folks actually had steam play off this whole time, and things still kinda worked because it wasn't a really good 'off' to begin with.

This is moot though as we've decided to have steam play enabled all the time moving forward. There's simply too much functionality that relies on it now to reasonably have an option to keep it off.

smcv commented 1 week ago

we've decided to have steam play enabled all the time moving forward

From my point of view, that's a good resolution to this - it might once have made sense to have a way to disable Proton, but I'm not sure it ever made sense to have a way to disable SLR, particularly now that steamwebhelper requires it.

When that change ships in a beta, I think this issue and https://github.com/ValveSoftware/steam-for-linux/issues/9852 can both be closed; possibly also https://github.com/ValveSoftware/steam-for-linux/issues/11359.

smcv commented 6 days ago

Steam Client Beta - October 25th

Remove the UI toggle to disable Steam Play globally, correctly reflecting that Steam Play is always enabled on Linux. Steam Play was always partially active even when set to off in the UI as it is a requirement for Steam client operation.

I confirm that the UI toggle is no longer present in beta 1730243536 (2024-10-30).

@u83rmensch, does the current beta solve this for you?

fallahn commented 6 days ago

Just to say: I've been following this issue because I've had the same problem with my game (Super Video Golf) on the Steam Deck - can confirm it's now working. Thanks!