ValveSoftware / steam-runtime

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

The latest update of linux runtime 3.0 (sniper) always crash The Elder Scrolls Online #624

Closed lumingzh closed 8 months ago

lumingzh commented 9 months ago

Your system information

Please describe your issue in as much detail as possible:

The latest update of linux runtime 3.0(sniper) (update date is about 10/02 or 10/03) always crash ESO, switch to proton 7.0 + runtime 2.0 (soldier) can play again.

Steps for reproducing this issue:

  1. using proton experimental + steam linux runtime 3.0 (sniper) for ESO
  2. start ESO and click play button on game launcher
  3. crash with black screen (sometimes can show crash report dialog)
kisak-valve commented 9 months ago

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

Using a completely different Steam runtime as a reference point for a regression isn't particularly useful for troubleshooting. Can you go to Steam Linux Runtime 3.0 (sniper) in your Steam library -> per-game properties -> Betas -> switch the Beta participation dropdown to previous_release and test how the game behaves with the same Proton version as the regression you're seeing?

lumingzh commented 9 months ago

@kisak-valve Yes, set as you said using previous_release in beta page with proton experimental and works normally now.

It has nothing to do with proton.

smcv commented 9 months ago

If I understand your report correctly, the version of sniper that says 0.20230919.60634 in its VERSIONS.txt has the regression, but the version with 0.20230905.59202 in its VERSIONS.txt (which is the previous_release since yesterday) works correctly?

If you switch to the client_beta branch of sniper, which is currently version 0.20231002.61997, does that still crash?

If the beta still crashes, we will need to see some more information. Please collect this with the sniper version set to one of the ones that has the crash (0.20230919.60634 or maybe 0.20231002.61997):

It would also be useful if you can collect the same information with the "good" version of sniper (probably 0.20230905.59202 if I'm understanding your report correctly), so that we can compare the good and bad versions directly.

lumingzh commented 9 months ago

@smcv @kisak-valve

smcv commented 9 months ago

proton log: too big to upload

Please could you get another log for the bad case (0.20230919.60634 or 0.20231002.61997), this time without PROTON_LOG=1? This should leave some information about the crash near the end of slr-latest.log.

smcv commented 9 months ago

I see you're running Steam via Flatpak. Another key fact is that this is with the Nvidia proprietary driver, version 535.113.01, on a dual-GPU laptop (discrete Nvidia / integrated AMD), using __NV_PRIME_RENDER_OFFLOAD=1.

Is a similar crash reproducible with other Proton 8 games?

Are you able to tell whether the crashing process is 64-bit or 32-bit?

I see your system info in https://gist.github.com/lumingzh/218b1515efe301d246a2996b1929f27b is for one of the "bad" versions, sniper 0.20230919.60634. It would be useful to see the equivalent system info with the "good" sniper 0.20230905.59202 - to collect that, you will need to exit from Steam and launch it again, because it only collects runtime diagnostics once per Steam run.

Another useful thing to try would be to copy the SteamLinuxRuntime_sniper/pressure-vessel directory from the "good" version of sniper into a safe place (I usually use $HOME/tmp/pressure-vessel), then switch to the "bad" version of sniper, and run the game with launch options set to PRESSURE_VESSEL_PREFIX=$HOME/tmp/pressure-vessel %command%. This will tell us whether the trigger for the crash is the pressure-vessel container tool, or the rest of sniper. I suspect the answer will be that it's the pressure-vessel container tool that is the important part.

lumingzh commented 9 months ago

@smcv

smcv commented 9 months ago

OK, this is probably an unintended consequence of the Flatpak-related bug fixes in pressure-vessel 0.20230919.0. I'll see whether I can reproduce this with some other 64-bit game (I don't currently have access to ESO).

smcv commented 9 months ago

Unfortunately your log doesn't contain details of the crash, but it looks as though one of the bugs I fixed in 0.20230919.0 (broken symlinks for the i386 versions of some drivers) was accidentally hiding a different bug (the Nvidia driver's JSON manifest getting duplicated), and it's probably the duplicate driver that is causing the crash for you.

smcv commented 9 months ago

@lumingzh, if you're comfortable with using prerelease software, you could try setting PRESSURE_VESSEL_PREFIX to point to the result of unpacking this: https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/jobs/334317/artifacts/raw/_build/production/pressure-vessel-bin.tar.gz

(from https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/merge_requests/595)

I'm hoping that will fix the crash you're seeing with ESO by avoiding the duplication.

After more testing/review this change should be available in a future beta release.

I have not been able to reproduce the crash with my usual Proton test titles (but I don't currently have access to ESO).

smcv commented 9 months ago

A fixed version similar to the prerelease above has been released as https://repo.steampowered.com/pressure-vessel/snapshots/0.20230928.1/pressure-vessel-bin.tar.gz and should be included in the next update to the client_beta branch.

smcv commented 9 months ago

This should now be fixed in the soldier and sniper client_beta branches, versioned 0.20231005.x (VERSIONS.txt should say that they have pressure-vessel 0.20230928.1).

lumingzh commented 9 months ago

@smcv Sorry for my late reply. The client_beta branch works normally now, thank you. Should I close this issue now or after the client_beta branch released as stable branch?

smcv commented 9 months ago

Please leave this open, @kisak-valve will close it after the beta is released as stable. Thanks for re-testing!

kisak-valve commented 8 months ago

Closing as fixed in the 2023-10-25 Steam client update. It looks like the relevant change actually went to the stable release on 2023-10-18.

smcv commented 7 months ago

It looks like the relevant change actually went to the stable release on 2023-10-18

Yes, I think that is correct: the 0.20231005.x versions of sniper and soldier were promoted to stable on 2023-10-18, the same day that the 0.20231016.x versions were released as new betas.

Closing as fixed in the 2023-10-25 Steam client update

For the sake of fully correct information: that's not strictly true. This was a bug in the Steam Linux Runtime 3.0 (sniper) and Steam Linux Runtime 2.0 (soldier) compatibility tools, not a bug in the Steam client, so there was not (and will not be) any particular change made in the Steam client to address it.