ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.25k stars 175 forks source link

War Thunder crashing when run in full screen but only when launched through the Steam Client #6210

Open dennis1248 opened 5 years ago

dennis1248 commented 5 years ago

Your system information

Please describe your issue in as much detail as possible:

There is an issue with the game War Thunder where launching the game through Steam in full screen will cause the game to crash locking up the GUI requiring me to quit the game via another TTY to continue using my machine. On my personal machines only Arch Linux and Manjaro have this issue however other people on other distributions such as Ubuntu and Solus are reporting to be experiencing the same issue. I do not experience this issue when launching the game stand-alone without Steam.

My desktop has a Vega 64 and the laptop a R3 M230/HD 8550m + Intel HD 4400, I experience the same issue on all these graphics adapter. So it's possible this might be an issue exclusive to AMD and Intel GPUs, I have no modern Nvidia hardware on-hand to confirm.

I have reported the bug on the War Thunder forums, together with their Linux specialist we shared some logs and tried a few things. The War Thunder Linux specialist couldn't see anything wrong in the game logs and is suspecting the issue to be caused somehow by Steam and recommended me to post a bug report here.

A link to the War Thunder forum thread: https://forum.warthunder.com/index.php?/topic/442636-gui-freezing-on-game-start-in-fullscreen-mode-on-arch-linux-and-arch-based-distributions/

Steps for reproducing this issue:

Launch War Thunder via Steam in full screen. *Issue might only appear on certain hardware/OS configurations.

kisak-valve commented 5 years ago

Hello @dennis1248, reading through the forum thread I think there's one more scenario that may be interesting.

What's the game's behavior if you run the game with ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ./aces and have steam running in the background.

dennis1248 commented 5 years ago

Hey @kisak-valve With that command the game launches just fine in full screen but doesn't have the Steam login option. So it's running stand-alone.

And it spits the following out in the terminal which it also does when running it simply with $ ./aces: Either launch the game from Steam, or put the file steam_appid.txt containing the correct appID in your game folder.

kisak-valve commented 5 years ago

I've got a hunch that this is a Steam overlay issue, regardless of the setting in the Steam client.

Taking the test one step further would be something like env LD_PRELOAD="/absolute/path/to/Steam/folder/ubuntu12_64/gameoverlayrenderer.so" ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ./aces or export the LD_PRELOAD for the terminal session.

dennis1248 commented 5 years ago

Ok, I didn't read the strings and added env LD_PRELOAD="/absolute/path/to/Steam/folder/ubuntu12_64/gameoverlayrenderer.so" %command% to the Steam game launch options 🤦 which made the game work (Somehow) and the game launched just fine in fullscreen with Steam.

When I realized my mistake and edited the file path env LD_PRELOAD="/home/$USER/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so" %command% the game once again couldn't run in full screen.

So a happy accident? Pointing LD_PRELOAD to nothing fixes the issue.

dennis1248 commented 5 years ago

The terminal spits out the following when running it with env LD_PRELOAD="/home/$USER/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so" ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ./aces:

pid 4525 != 4524, skipping destruction (fork without exec?)
pid 4526 != 4524, skipping destruction (fork without exec?)
pid 4529 != 4524, skipping destruction (fork without exec?)
pid 4528 != 4524, skipping destruction (fork without exec?)
pid 4532 != 4524, skipping destruction (fork without exec?)
pid 4531 != 4524, skipping destruction (fork without exec?)
pid 4535 != 4524, skipping destruction (fork without exec?)
pid 4534 != 4524, skipping destruction (fork without exec?)
pid 4538 != 4524, skipping destruction (fork without exec?)
pid 4537 != 4524, skipping destruction (fork without exec?)
pid 4541 != 4524, skipping destruction (fork without exec?)
pid 4540 != 4524, skipping destruction (fork without exec?)
[S_API FAIL] SteamAPI_Init() failed; no appID found.
Either launch the game from Steam, or put the file steam_appid.txt containing the correct appID in your game folder.

The game crashes again with this command.

Xinayder commented 5 years ago

I wouldn't recommend playing with the native client because it's terrible and still uses OpenGL3, which has terrible performance.

War Thunder has an experimental Vulkan renderer (which, in my opinion, should be available for public testing with no workarounds). However, it won't work with the native client, resulting in a black screen when the game is focused.

Also, try launching the game with env LD_PRELOAD="/home/$USER/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so" ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ./aces -NoLauncher -safe -forcestart and see if it works.

ghost commented 5 years ago

Just would like to say that I have the same issue. I'm on Arch Linux as well. Game launched outside of Steam (by either executing the aces binary or the launcher binary directly) works fine. Starting the game from Steam locks up the UI, forcing me to drop to TTY3 and killing the aces process.

@RockyTV that results in the same output as described in the post above you (no appID found). Also the UI becomes unresponsive as well.

I created a file steam_appid.txt with the ID of the game (236390), the result is the same, but the output differs:

pid 31783 != 31782, skipping destruction (fork without exec?)
pid 31784 != 31782, skipping destruction (fork without exec?)
pid 31787 != 31782, skipping destruction (fork without exec?)
pid 31786 != 31782, skipping destruction (fork without exec?)
pid 31790 != 31782, skipping destruction (fork without exec?)
pid 31789 != 31782, skipping destruction (fork without exec?)
pid 31793 != 31782, skipping destruction (fork without exec?)
pid 31792 != 31782, skipping destruction (fork without exec?)
pid 31796 != 31782, skipping destruction (fork without exec?)
pid 31795 != 31782, skipping destruction (fork without exec?)
pid 31799 != 31782, skipping destruction (fork without exec?)
pid 31798 != 31782, skipping destruction (fork without exec?)
pid 31802 != 31782, skipping destruction (fork without exec?)
pid 31801 != 31782, skipping destruction (fork without exec?)
pid 31805 != 31782, skipping destruction (fork without exec?)
pid 31804 != 31782, skipping destruction (fork without exec?)
Setting breakpad minidump AppID = 236390
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561197983739914 [API loaded no]

FYI this is the thread on the WT forums where this problem was reported: https://forum.warthunder.com/index.php?/topic/442636-forwarded30042019-gui-freezing-on-game-start-in-fullscreen-mode-on-arch-linux-and-arch-based-distributions

ghost commented 5 years ago

soo, I found something curious by accident. If you start Steam and then start the launcher binary from a terminal you can start WarThunder and it will 'connect' with Steam.

Starting it directly from Steam still results in the described issue.

kelvinhall05 commented 4 years ago

Sorry that I'm reviving what seems like a dead thread, but has there been a fix found?

LCWilliams commented 4 years ago

Sorry that I'm reviving what seems like a dead thread, but has there been a fix found?

Currently, setting launch options within steam to env LD_PRELOAD="" %command% will enable the game to load in full screen. Tradeoff is you lose the overlay.

I also had no issues when using AMDGPU-Pro, but had to uninstall it for other game compatibility.

guglovich commented 4 years ago

I join the problem, there is no problem without Steam. InfoPC.txt

dennis1248 commented 4 years ago

Another work-around would be to run the game using Steam Linux Runtime. If the game has issues with connecting to the game servers switch to the Steam Linux Runtime client beta channel.