ValveSoftware / Dota-2

Tracker for issues specific to Linux and Mac in the Reborn client. If you have a general issue or non-system-specific feature request please go to dev.dota2.com
470 stars 38 forks source link

[Linux] Crash after showing Valve logo #2354

Closed kitmonisit closed 1 year ago

kitmonisit commented 1 year ago

Your system information

Please describe your issue in as much detail as possible

This problem started occurring between 3 and 2 weeks ago (2nd and 3rd week of May 2023). I have tried out the suggestions in #2218, but my problem seems to be a different one.

First, I would see the square Dota 2 logo, then the Valve logo. I can hear the intro guitar riff. But I don't get to see the intro hero poses (the one that starts with Juggernaut). After the Valve logo, the game simply crashes and then I see my Steam launcher with a green Play button for Dota 2.

Steps for reproducing this issue:

  1. In Steam > Library, right click on Dota 2.
  2. Click on Properties
  3. Click on Compatibility on the left sidebar
  4. Enable "Force the use of a specific Steam Play compatibility tool". A dropdown menu should appear.
  5. The dropdown menu shows Proton Experimental. There is no way to select anything other than Proton Experimental.
  6. Close the Properties window
  7. Click Play

If I disable Steam Play compatibility:

When I click Play, it will momentarily transform into a blue Stop button, then reverts back to a green Play button.

kitmonisit commented 1 year ago

Same problem in #2043 but the suggestions there do not work here.

Same launch problems reported in protondb. Might be good to start from this date, probably 14th to 27th of May and earlier.

smcv commented 1 year ago
/mnt/asahigaoka-home/steam-games/steamapps/common/SteamLinuxRuntime_soldier/_v2-entry-point: line 285: /mnt/asahigaoka-home/steam-games/steamapps/common/SteamLinuxRuntime_soldier/run: Success

Something seems to be badly wrong there...

Please copy /mnt/asahigaoka-home/steam-games/steamapps/common/SteamLinuxRuntime_soldier to some safe location (perhaps /mnt/asahigaoka-home/steam-games/steamapps/common/SteamLinuxRuntime_soldier.issue2354) so that we can try to diagnose this later, and then use Verify Integrity on the "Steam Linux Runtime - soldier" compatibility tool.

Then, configure Dota 2 with "Force the use of a specific Steam Play compatibility tool" disabled, and try launching it. This uses the native Linux version of Dota 2, in the "Steam Linux Runtime - soldier" compatibility tool, which is the default for this specific game.

You've said the game is able to start when run under "Proton - Experimental" - even if it crashes shortly afterwards, that's still partial success. I think that means this problem is specific to your installation of "Steam Linux Runtime - soldier", and does not affect the newer "Steam Linux Runtime - sniper", which "Proton - Experimental" uses internally. That makes me think that this is a problem with the on-disk copy of the soldier runtime that Steam has downloaded, rather than a problem with the container technology itself.

smcv commented 1 year ago

To be clear, you've reported two separate problems here:

  1. When using the native Linux version of Dota 2 (which is the default on Linux), it doesn't start at all ("When I click Play, it will momentarily transform into a blue Stop button, then reverts back to a green Play button"). That probably has the same root cause as ".../SteamLinuxRuntime_soldier/run: Success" in the system info, and that's the route I am trying to solve.

  2. When using the Windows version of Dota 2 under "Proton - Experimental", it starts, but crashes after the Valve logo, before reaching the main menu. I'm not a Proton developer so I will not be investigating that route.

kitmonisit commented 1 year ago

Thank you for the help. So I did the Verify Integrity on Steam Linux runtime - Soldier, and I got a message "122 files failed to validate and will be reacquired".

Now I did not see any sign of "re-acquisition" so I repeated the Verify Integrity after waiting about 30 seconds. Now I get "All 7791 files successfully validated".

So now I'm doing this

Then, configure Dota 2 with "Force the use of a specific Steam Play compatibility tool" disabled, and try launching it. This uses the native Linux version of Dota 2, in the "Steam Linux Runtime - soldier" compatibility tool, which is the default for this specific game.

and currently waiting for "Processing Vulkan shaders..." I will come back with updates.

10 minutes later...

Aaand we're back to the show: After finishing "Processing Vulkan shaders...", the blue Stop button reverted to the green Play button.

I tried clicking the green Play button, then I get blue Stop button, and immediately the green Play button again.

Markussss commented 1 year ago

I have had a similar problem with Dota 2 since my last system update on Sunday. I'm using the distro named Nobara, which is a modified Fedora, on version 37. In the Nobara Discord server, another user were having troubles running Dota 2 as well, and it was suggested to them that they add -vulkan_disable_graphics_pipeline_library to the launch options. I tried it myself, and now it seems that Dota 2 is working again.

It would be best if this launch option was not necessary, so I also hope that this helps both Valve and package maintainers find the problem and fix it soon. :smile:

kitmonisit commented 1 year ago

Thank you @Markussss. I have seen that launch option everywhere and tried that as well. But still no cigar.

mkjOoB commented 1 year ago

Dota stopped launching for me as well, but on a wayland session only. It started when nvidia-drivers-530 series released and following into 535.43.02, I can tell because 525 >= does not have this problem on a wayland session. Right now I have to use Xorg wm to play dota on 535.43.02. Those branches do not have a stable release yet, though I can only guess if nvidia has taken notise on this bug.

Clearing shaders via steam built in console did not do a damn thing about it but recompile for a long time -- again.

@kitmonisit Can you please check if downgrading to nvidia drivers 525 branch release solves it for u?

Markussss commented 1 year ago

@mkjOoB Thank you for the suggestion, but I'm using an AMD GPU, so I don't have any Nvidia drivers installed.

smcv commented 1 year ago

"Doesn't start" is quite a generic symptom which could happen for any number of reasons, so the fact that a workaround is successful for one person does not imply that it will be successful for everyone. In my experience, mixing up more than one issue in the same issue report causes a lot of confusion that makes it take longer for developers to be able to find a solution, so we should try not to do that.

This particular issue was originally reported by @kitmonisit, so I am going to treat every bug that is not experienced by @kitmonisit as out-of-scope unless there is evidence that it is happening for the same reason.

smcv commented 1 year ago

@kitmonisit:

So I did the Verify Integrity on Steam Linux runtime - Soldier, and I got a message "122 files failed to validate and will be reacquired".

Now I did not see any sign of "re-acquisition" so I repeated the Verify Integrity after waiting about 30 seconds. Now I get "All 7791 files successfully validated".

After having done this, please fetch and attach your "Help -> System Information" again, so that we can see whether the problem indicated by your original Gist has been resolved.

After that, the next useful steps would be:

smcv commented 1 year ago

@Markussss:

If you have a tested workaround (adding -vulkan_disable_graphics_pipeline_library to the launch options) then that seems like a usefully identifiable category of bug report: "crashes on startup, can be worked around with -vulkan_disable_graphics_pipeline_library" or something similar.

Please check whether there is already a similar issue report, and if not, open one, providing your System Information and any other useful information you can add. Getting a log of Dota 2's output when it fails to launch (as in my previous comment), and checking the systemd Journal for any useful information there (as in my previous comment), are probably also going to be useful information for the Dota 2 developers.

If there is an obvious error message near the end of Dota 2's output, then that would probably be a useful thing to call out specifically.

smcv commented 1 year ago

@mkjOoB:

It sounds as though you have also identified a useful way to narrow down the specific failure you are seeing: "crashes on startup with NVIDIA drivers >= 530 on Wayland" or something like that.

The same as in my previous comment, please check whether there is already a similar issue report, and if not, open one, providing the same information I mentioned in my previous comment.

mkjOoB commented 1 year ago

@smcv Well, I'm kinda used to nvidia-drivers breakage, looking at you #413 at Dota-2-Vulkan. Anyways 1st stable 535.54.03 nvidia-drivers release just hit, I don't have this problem anymore. Btw, any takes on #282 at Dota-2-Vulkan, feels atm like it's not going to get solved ever. Would love to run dota wayland natively again, like how -gl did ran or csgo does run.

kitmonisit commented 1 year ago

@smcv in reply to your comment:

After following your very first instructions and restarting Steam, I was able to run Dota 2 normally again.

My non-developer guess is that verifying integrity of local files and restarting Steam fixed the problem.

Here is my new system_info-2354-issuecomment-1589353108

With the 14th June Steam update, I can't seem to set command line options. Right-click -> Properties on a game title does not do anything.

smcv commented 1 year ago

Btw, any takes on https://github.com/ValveSoftware/Dota-2-Vulkan/issues/282

I am not a Dota 2 developer (I'm only looking at this issue because I help to maintain the Steam Runtime), so I don't have any control or influence over whether Dota 2 will support native Wayland.

smcv commented 1 year ago

Regarding problem 1 in https://github.com/ValveSoftware/Dota-2/issues/2354#issuecomment-1576601910:

When using the native Linux version of Dota 2 (which is the default on Linux), it doesn't start at all ("When I click Play, it will momentarily transform into a blue Stop button, then reverts back to a green Play button"). That probably has the same root cause as ".../SteamLinuxRuntime_soldier/run: Success" in the system info, and that's the route I am trying to solve.

This seems to be solved. Yes?

After following your very first instructions and restarting Steam, I was able to run Dota 2 normally again.

My non-developer guess is that verifying integrity of local files and restarting Steam fixed the problem.

OK, I think what must have happened is that Steam downloaded the runtime incorrectly (or something) and that was causing it to fail to start. If you can't reproduce a problem any more, then we can probably forget about this.

If you get similar symptoms in future, it might be useful to capture ~/.steam/root/logs/content_log.txt so that a Valve developer can check for more information about how Steam is downloading content, and whether it ran into any problems there.

Here is my new system_info

Thanks, that looks reasonably healthy.

I see Arch Linux still hasn't fixed https://bugs.archlinux.org/task/75443.

The Vulkan functional test is crashing, but that's probably caused by a known bug in the test itself (a fix for that should be in a future Steam release).

32-bit libvdpau_nvidia.so doesn't seem to be available on your system, you might want to install some extra 32-bit libraries for accelerated video encoding/decoding in 32-bit processes. (But Dota 2 is 64-bit, so that won't hurt Dota 2.)

VA-API is also not working, but that's normal for NVIDIA.

Installing xdg-desktop-portal and a backend appropriate for your desktop environment (or xdg-desktop-portal-gtk if there is nothing more appropriate) might fix some missing features in games that run in containers.

smcv commented 1 year ago

Regarding problem 2 in https://github.com/ValveSoftware/Dota-2/issues/2354#issuecomment-1576601910:

When using the Windows version of Dota 2 under "Proton - Experimental", it starts, but crashes after the Valve logo, before reaching the main menu.

Now that the native Linux version is working for you, presumably this is no longer interesting.

However, if you want to follow up on this and you can still reproduce the problem, please report it separately, in https://github.com/ValveSoftware/Proton/issues.

smcv commented 1 year ago

@mkjOoB:

Anyways 1st stable 535.54.03 nvidia-drivers release just hit, I don't have this problem anymore

Great, I'll assume that this was a problem with older NVIDIA drivers and was fixed in or before 535.54.03.

smcv commented 1 year ago

With the 14th June Steam update, I can't seem to set command line options. Right-click -> Properties on a game title does not do anything.

Sorry, this is out of scope for the Dota 2 issue tracker. Please report it to https://github.com/ValveSoftware/steam-for-linux/issues with full details if the problem persists. (For what it's worth, it's working fine for me on Steam version 1686779606, which is currently on both the stable and beta update channels.)

Flowneee commented 1 year ago

@mkjOoB:

Anyways 1st stable 535.54.03 nvidia-drivers release just hit, I don't have this problem anymore

Great, I'll assume that this was a problem with older NVIDIA drivers and was fixed in or before 535.54.03.

I tried to update my OS for that and now Dota 2 just almost fully hanged my system. Steam is unable to stop it, htop, ps, kill -9 just hang when they try access this process, for example ps now hang after this

flowneee    4053    4029  0  7501  7360   8 22:04 ?        00:00:00 /bin/bash /home/flowneee/.local/share/Steam/steamapps/common/dota 2 beta/game/dota.sh +engine_experimental_drop_fr
c^C

I can't even make a coredump. The only thing working is top, and it whows that Dota 2 consume 5 cores with some GlobPool threads

   4106 flowneee  20   0 3951180 996.1m 439696 R  99.7   1.6   8:45.80 dota2
   4112 flowneee  20   0 3951180 996.1m 439696 R  50.0   1.6   4:22.00 GlobPool/3
   4115 flowneee  20   0 3951180 996.1m 439696 R  50.0   1.6   4:22.33 GlobPool/6
   4120 flowneee  20   0 3951180 996.1m 439696 R  50.0   1.6   4:22.13 GlobPool/11
   4111 flowneee  20   0 3951180 996.1m 439696 R  49.7   1.6   4:20.62 GlobPool/2
   4113 flowneee  20   0 3951180 996.1m 439696 R  49.7   1.6   4:21.67 GlobPool/4
   4118 flowneee  20   0 3951180 996.1m 439696 R  49.7   1.6   4:20.74 GlobPool/9
   4109 flowneee  20   0 3951180 996.1m 439696 R  49.3   1.6   4:21.98 GlobPool/0
   4110 flowneee  20   0 3951180 996.1m 439696 R  49.3   1.6   4:21.22 GlobPool/1

UPD. seems like -vulkan_disable_graphics_pipeline_library worked for me, at least I had a reliable reproduction on my machine where Dota 2 hangs and now it isn't.

kisak-valve commented 1 year ago

Hello @Flowneee, please open a new issue report so that your issue can be tracked properly. The issue being tracked here looks like it was a damaged or incomplete Steam Linux Runtime - Soldier container environment which Dota 2 runs inside and appears to have been resolved.

Flowneee commented 1 year ago

@kisak-valve sure, sorry for filing issue in the wrong thread. Also gonna try to reinstall runtime, might as well be the problem

demidenko commented 1 year ago

"When I click Play, it will momentarily transform into a blue Stop button, then reverts back to a green Play button"

Hi, 4 days ago I suddenly faced exactly this issue. Nothing helps (verify, reinstall, force with proton). My only hope is nvidia-driver-535 (currently 530) but is not yet available for my system. Maybe I missed solution here?

smcv commented 1 year ago

4 days ago I suddenly faced exactly this issue

You experienced the same symptom, but that doesn't mean that it's happening for the same reason: there are lots of reasons why a game might crash immediately on startup, and they would all superficially look like that.

Please open a separate issue report with full details, including whatever log/error/warning output you can find.