ValveSoftware / steam-runtime

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

Age of Empires II Definitive Edition not launching #338

Closed lgmventura closed 3 years ago

lgmventura commented 3 years ago

Compatibility Report

System Information

I confirm:

PROTON_LOG=1 %command% added to the Game's Launch Options. No log file was generated though.

Symptoms

Until May the game was working fine for Single Player games. In June there was an update that made the game start to freeze all the time, also in the menus, except for the main menu. It was completely unplayable since the mean FPS lied below 1 Hz, including the mouse pointer. Now, with the last updates, it doesn't even launch.

Reproduction

kisak-valve commented 3 years ago

Hello @lgmventura, starting with Proton 5.13, Proton uses Pressure Vessel to run inside the Steam Linux Runtime - Soldier container environment. Since no Proton log was generated, that hints that there was an issue with Pressure Vessel before Proton had a chance to run.


Please could you show us a log of what pressure-vessel is thinking, and exactly what happens? You can do this without involving Proton (which should make things a bit simpler) like this:

cd /path/to/SteamLinuxRuntime_soldier
PRESSURE_VESSEL_VERBOSE=1 ./run -- steam-runtime-system-info --verbose 2>&1 | tee container.log

and then send container.log as a gist. You can edit/censor the log if there's anything in it that you consider private, as long as it's obvious where it has been edited, for instance replacing your username with REDACTED.

The SteamLinuxRuntime_soldier directory will be in one of your Steam libraries. The most likely place is ~/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier if you haven't reconfigured the installation path. (from https://github.com/ValveSoftware/steam-runtime/issues/312#issuecomment-741037038)


Also, please let the extended diagnostics information finish getting gathered for your system information and update your gist with the result.

EmmerichFrog commented 3 years ago

I have the same issue but for me proton seems to run and the log generates (see here for a log made with PROTON_LOG=1 https://github.com/ValveSoftware/Proton/issues/3189#issuecomment-767573803). As I mentioned there the game runs once I disable the runtime.

My system info https://gist.github.com/EmmerichFrog/55fd25547b8ea6c86b320aff662d532e the container.log [container.log] (https://github.com/ValveSoftware/steam-runtime/files/5873910/container.log)

both logs should have my user name censored with "user", let me know if it breaks something or if you need more logs.

smcv commented 3 years ago

@EmmerichFrog:

for me proton seems to run and the log generates

This means you do not have the same issue. Please could you open a separate issue report for that? If we mix up different situations in the same issue report, we won't be able to keep track of whose issue is fixed and whose issue is still open.

EmmerichFrog commented 3 years ago

@EmmerichFrog:

for me proton seems to run and the log generates

This means you do not have the same issue. Please could you open a separate issue report for that? If we mix up different situations in the same issue report, we won't be able to keep track of whose issue is fixed and whose issue is still open.

sure, I thought it was one issue per game like on the Proton issue tracker

lgmventura commented 3 years ago

I don't even have the folder SteamLinuxRuntime_soldier anywhere in my Steam installation directory or in my ~/.steam/ directory. Is it supposed to be installed with Steam?

smcv commented 3 years ago

SteamLinuxRuntime_soldier is installed like Proton or a game. It should be in one of your Steam library directories, probably whichever one is set as the default.

If you set the library view in the Steam UI to show installed "tools", you should see Proton 5.13, Proton Experimental and Steam Linux Runtime - soldier showing up there as though they were games.

lgmventura commented 3 years ago

I managed to uninstall Steam and delete the folder ~/.local/share/steam and reinstall it. At least I got the folder SteamLinuxRuntime_soldier back. Since Ate of Empires II is installed in another drive, I haven't touched it yet. There are also the Proton folders. I had deleted them trying to debug the problem, thinking everything would be automatically reinstalled, but it didn't happen with SteamLinuxRuntime_soldier.

The game is still not launching. I ran PRESSURE_VESSEL_VERBOSE=1 ./run -- steam-runtime-system-info --verbose 2>&1 | tee container.log from inside the Soldier folder and got the output file as gist:

https://gist.github.com/lgmventura/f4f1ebb7730dd5965eda1fc30353b032

lgmventura commented 3 years ago

Any update on this thread?

TTimo commented 3 years ago

There is at least a problem with the multi GPU setup, it wants to use a different GPU for GL and Vulkan:

vulkan: "renderer" : "Intel(R) HD Graphics 4600 (HSW GT2)" GL: "renderer" : "GeForce GTX 760M/PCIe/SSE2"

Those particular problems are being actively worked on, @kisak-valve can probably link to the latest on this.

kisak-valve commented 3 years ago

You're probably thinking of #312. @lgmventura, if that's the case, then https://github.com/ValveSoftware/steam-runtime/issues/312#issuecomment-739441559 may help as a workaround.

smcv commented 3 years ago

@lgmventura, if you're able to try the beta branch of SteamLinuxRuntime_soldier and get system info similar to https://github.com/ValveSoftware/steam-runtime/issues/338#issuecomment-770254401, that should give us some more information about how your GPUs get detected, which will help us to understand what's going on.

The changes to Vulkan layer loading in the beta branch might also solve this for you - I can't say whether this will solve it or not because we don't understand the root cause, but the beta should do this more correctly.

See https://github.com/ValveSoftware/steam-runtime/blob/master/doc/reporting-steamlinuxruntime-bugs.md#using-a-beta-or-an-older-version for details.

lgmventura commented 3 years ago

I successfully disabled the Intel .json files by renaming them as suggested in the comment in #312 , but the game still doesn't launch. Still the same behaviour: a small window from Steam pops up saying "preparing to launch", then it disappears and the launch button gets its text changed from "launching" into "stop". Then, after a couple of seconds, it turns to back to the original green button "play".

So, there must be another reason. I run Steam from terminal to see if there is an output, but nothing comes out after clicking "play" either.

I can gladly test the beta branch if I get this to work.

smcv commented 3 years ago

I can gladly test the beta branch if I get this to work

I'm asking you to try the beta branch because it might help to get this to work :-)

Since you originally opened this issue, we've improved the ability to get debug logs from the container runtime. The preferred mechanism is described here: https://github.com/ValveSoftware/steam-runtime/blob/master/doc/reporting-steamlinuxruntime-bugs.md#essential-information

lgmventura commented 3 years ago

Alright, thanks, I will give a try. I thought you meant if that would solve the problem, then the beta version could probably solve it without having to rename the json files... :)

smcv commented 3 years ago
ERROR: [Loader Message] Code 0 : libVkLayer_MESA_device_select.so: cannot open shared object file: No such file or directory

This could have been part of the problem. It looks as though libVkLayer_MESA_device_select.so was not getting set up correctly in version 0.20210105.2, which is the latest version you provided a log for: we're putting it in a subdirectory instead of in the normal library search path, but the JSON manifest says to look for it in the normal library search path. That was a bug in 0.20210105.2 which is fixed in newer releases.

smcv commented 3 years ago

Another piece of information that would be useful to know is: is this specific to AoE2, or does it happen for multiple games?

I often use Floating Point and Life is Strange episode 1 as test games, because they're free (so anyone can install them), single-player (so there's no anti-cheat stuff getting in the way), not too big, old enough to run acceptably even on weak hardware, and available for both Windows and Linux. By default they will install as native Linux games, but if you force them to run on Proton 5.13 in the same way you did for AoE2, then Steam will install the Windows version instead.

If games like those work well, then that points us in the direction of looking for something that is different about AoE2; or if those games fail in the same way as AoE2, then that points us in the direction of a more general problem.

lgmventura commented 3 years ago

Where can I find the SteamLinuxRuntime_soldier repository? The closest one I found was the steam-runtime, but it doesn't have a beta branch.

Thanks, I didn't try with other games, but I can try with those using Proton 5.13 then, if needed.

smcv commented 3 years ago

It appears in your Steam library as a "tool" (like Proton), named SteamLinuxRuntime - soldier. You can opt in to a beta branch in the same way as for a game: see https://support.steampowered.com/kb_article.php?ref=9847-WHXC-7326, but instead of CS:GO, open the properties of Steam Linux Runtime - soldier.

The beta branch is officially only meant to be used with the beta Steam client, but it should actually be OK in the ordinary non-beta Steam client at the moment.

lgmventura commented 3 years ago

I installed Floating point and it launched normally first. Then I forced it to use Proton 5.13 as a compatibility tool and then it didn't launch, exactly like AoE II DE I described here. :O

smcv commented 3 years ago

OK, please provide logs and system info according to https://github.com/ValveSoftware/steam-runtime/blob/master/doc/reporting-steamlinuxruntime-bugs.md#essential-information (for either of those games, it shouldn't matter).

lgmventura commented 3 years ago

It looks like I can't see all other Proton versions in Library -> Downloads. Even AoE II isn't listed there: image

smcv commented 3 years ago

Click on Library again to see everything in your library, and look in the left sidebar. The Downloads page only shows what you have downloaded during the current Steam session.

You might need to change the filtering options to show everything, or at least everything that's installed. I don't think titles classified as a "tool" (like Proton and Steam Linux Runtime) get shown by default.

lgmventura commented 3 years ago

After cleaning download cache, this downloads section showed only "SteamWorks common distributable". I clicked on launch and then all the library appeared on the sidebar. I don't know why, but at least I got till there. Then I found Steam Linux Runtime - soldier and changed to Beta. I restarted Steam and it looks like this: image But it doesn't look like it installed or changed anything. Nothing changed on trying to start the games though. Does it mean the beta version is already running?

smcv commented 3 years ago

The [client_beta] label means you already have the beta version of soldier installed, yes.

lgmventura commented 3 years ago

Good, so I can generate the log again and upload as Gist?!

smcv commented 3 years ago

Whenever you launch a game that uses Proton 5.13 or Proton experimental, Steam will automatically use whatever version of Steam Linux Runtime - Soldier is currently installed.

Please follow https://github.com/ValveSoftware/steam-runtime/blob/master/doc/reporting-steamlinuxruntime-bugs.md#essential-information to get a current log from launching one of those games, and upload it as a gist.

lgmventura commented 3 years ago

I got the gist here: https://gist.github.com/lgmventura/4718030ff0114b5d42e6120e65f0f052 It points to something I observed before:

OSError: [Errno 22] Invalid argument: '/media/luiz/Volume/Downloads/SteamLinux/steamapps/common/Proton 5.13/dist/./share/default_pfx/dosdevices/z:'
20:46:12.527033: pressure-vessel-adverb[98482]: Command exited with status 1

I had tried to download also Proton 6.0 Beta and the "Glorious Eggroll" fork and manually extract it into the folder. But in the extraction, I always get an error that it's not possible to extract this c: or z: because these are not valid filenames.

kisak-valve commented 3 years ago
  File "/media/luiz/Volume/Downloads/SteamLinux/steamapps/common/Proton 5.13/proton", line 943, in <module>
    g_proton.extract_tarball()
  File "/media/luiz/Volume/Downloads/SteamLinux/steamapps/common/Proton 5.13/proton", line 186, in extract_tarball
    tar.extractall(path=self.dist_dir)
  File "/usr/lib/python3.7/tarfile.py", line 2004, in extractall
    numeric_owner=numeric_owner)
  File "/usr/lib/python3.7/tarfile.py", line 2046, in extract
    numeric_owner=numeric_owner)
  File "/usr/lib/python3.7/tarfile.py", line 2124, in _extract_member
    self.makelink(tarinfo, targetpath)
  File "/usr/lib/python3.7/tarfile.py", line 2217, in makelink
    targetpath)
  File "/usr/lib/python3.7/tarfile.py", line 2118, in _extract_member
    self.makedir(tarinfo, targetpath)
  File "/usr/lib/python3.7/tarfile.py", line 2147, in makedir
    os.mkdir(targetpath, 0o700)

At this point Proton is running, which means that Pressure Vessel is doing its part properly, but you've encountered an issue with Proton, most likely from an NTFS formatted Steam Library.

What filesystem are you using with /media/luiz/Volume/Downloads/SteamLinux/?

lgmventura commented 3 years ago

It might be related to this issue: https://github.com/ValveSoftware/Proton/issues/2419 I'm using a NTFS partition (drive "Volume"). I'll look if I can free some space in the EXT4 partition and transfer the Proton installation to there… I'll test and post my update here.

smcv commented 3 years ago
OSError: [Errno 22] Invalid argument: '/media/luiz/Volume/Downloads/SteamLinux/steamapps/common/Proton 5.13/dist/./share/default_pfx/dosdevices/z:'

If you have Proton or your Steam library on an NTFS partition, you need to mount it with options that allow creating files with : in their names. If you're using ntfs-3g, you can't use the windows_names option, because that disallows :.

(This might hurt interop with Windows, but it should be OK if Windows and Linux/Proton are using separate Steam libraries.)

lgmventura commented 3 years ago

I transferred Proton to my EXT4 partition (will try different mounting options later) and now I am at least able to start the game AoE II DE 🥳. Thank you all!! But once I get to any menu other than the main menu or to the game itself, it starts freezing and the FPS goes below 1 Hz. Actually it mostly goes fluid for a fraction of a second and freezes for several seconds, including mouse pointer, even when I do an alt-tab to switch to another window and start moving the mouse over something else. But the main menu of the game is still fluid, even if it looks exactly like the other menus. This is the same I described in the issue post in the section Symptoms.

I created a new gist here. The last two lines correspond to my alt+F4. The game is completely unplayable in this current state.

kisak-valve commented 3 years ago

Hello @lgmventura, glad to hear you got it running. At this point I think we're done investigating this as a separate steam-runtime issue.

Feel free to add your performance experience to https://github.com/ValveSoftware/Proton/issues/3189 to be pondered on Proton's side.