ValveSoftware / steam-runtime

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

stuck in "preparing to launch" endlessly on guilty gear strive and all other games #444

Closed mortee556 closed 3 years ago

mortee556 commented 3 years ago

Compatibility Report

System Information

I confirm:

cannot get log file due to the game never fully launching ## Symptoms

cannot launch windows games, stuck on "preparing to launch" forever. in terminal the only output is "launchapp changed task to processinginstallscript with" "" on ext4 drive. have already installed 32 bit libraries, uninstall and reinstalled steam runtimer and runtimer soldier, updated drivers, changing proton versions, etc

Reproduction

every single time

lennie420 commented 3 years ago

Does your laptop even support Vulkan? You'd probably have to use "PROTON_USE_WINED3D=1 %command%" as launch option.

kisak-valve commented 3 years ago

Hello @mortee556, the symptom's you've described sounds more like a Pressure Vessel issue than a Proton issue, and we've seen this issue before in #420, so I've transferred this issue report.

The nVidia 390 series driver is older than the support cutoff for Proton and is known to cause other Vulkan drivers to fail. If you're not using it, then please remove it and retest.

Hello @lennie420, yes, the Intel Ivybridge generation chipset does support Vulkan, however, the drivers for it give an incomplete implementation, which can lead to rendering artifacts and game crashes. The drivers makes this system unsupported by Proton in general.

smcv commented 3 years ago

The 32-bit Vulkan driver works on the host system, but is crashing when we try to test it in the container environment:

        "x11/vulkan" : {
          "messages" : [
            "timeout: the monitored command dumped core"
          ],
          "renderer" : null,
          "version" : null,
          "issues" : [
            "cannot-load",
            "cannot-draw"
          ],
          "exit-status" : -1,
          "terminating-signal" : 11,
          "terminating-signal-name" : "Segmentation fault",
          "devices" : [
          ]
        },

The 64-bit Vulkan driver is similar, although it crashes a bit differently:

      "graphics-details" : {
        "x11/vulkan" : {
          "messages" : [
            "*** stack smashing detected ***: terminated",
            "timeout: the monitored command dumped core"
          ],
          "renderer" : null,
          "version" : null,
          "issues" : [
            "cannot-load",
            "cannot-draw"
          ],
          "exit-status" : -1,
          "terminating-signal" : 6,
          "terminating-signal-name" : "Aborted",
          "devices" : [
          ]
        }
smcv commented 3 years ago

As @kisak-valve said, if you are aiming to run all your games on the Intel integrated GPU and you are not actively using an NVIDIA discrete GPU, you can reduce the number of things that can go wrong by removing the NVIDIA proprietary drivers (libglx-nvidia0, libnvidia-eglcore, libnvidia-glcore, nvidia-alternative and everything that depends on them, and anything with nvidia-legacy in the name).

If all games are equally affected, it would be useful to test on a free-to-play game, so that everyone looking at an issue can be seeing the same thing. The Expendabros is an example of a small, free, Windows-only game, or you can force native Linux games like Floating Point to install the Windows version and run it under Proton by editing their properties.

You might find that running Steam with environment variable PROTON_USE_WINED3D=1 might help older games to run on old hardware/drivers. Adding PROTON_USE_WINED3D=1 to an individual game's Launch Options as @lennie420 suggested is probably not going to help you, because the Launch Options are not used during the "preparing to launch" stage - but the "preparing to launch" stage does potentially use Vulkan graphics drivers, for things like shader precompilation, even though it doesn't display anything.

Newer/more demanding games that require a newer Direct3D version are just not going to work, because Proton's implementation of newer Direct3D versions needs Vulkan (but newer games wouldn't have acceptable performance on this hardware anyway).

This system looks like a 1-year-newer version of one of my test machines (an old Lenovo T520 laptop with Core 2nd gen/Sandy Bridge CPU, HD Graphics 3000 integrated GPU, NVIDIA Fermi/GF119/Quadro NVS 4200M discrete GPU) - which is too old to be really supportable, sorry. Your hardware is from 2012 (mine is from 2011) and that just doesn't go well with Proton's requirement for Vulkan. I definitely have to use PROTON_USE_WINED3D=1 on my older hardware.

cannot get log file due to the game never fully launching

You should be able to get a log file by running Steam with environment variables set. A good start would be something like this:

PROTON_LOG=1 \
STEAM_LINUX_RUNTIME_LOG=1 \
STEAM_LINUX_RUNTIME_VERBOSE=1 \
steam

You should find one container runtime log file per game in SteamLinuxRuntime_soldier/var/slr-app<appid>-*.log in your Steam Library directory (slr-latest.log will also be a symbolic link to the newest one), and a Proton log file in ~/steam-<appid>.log, where <appid> represents the Steam app ID.

It's also worth trying with the old OpenGL-based implementation of Direct3D for comparison:

PROTON_LOG=1 \
PROTON_USE_WINED3D=1 \
STEAM_LINUX_RUNTIME_LOG=1 \
STEAM_LINUX_RUNTIME_VERBOSE=1 \
steam
mortee556 commented 3 years ago

removing the nvidia drivers fixed it, thank you both greatly.