You can sign up to get a daily email of our articles, see the Mailing List page!
Support us on Patreon to keep GamingOnLinux alive. This ensures we have no timed articles and no paywalls. Just good, fresh content! Alternatively, you can donate through Paypal, Flattr and Liberapay.!
Steam Play not working even on approved titles...
cfrob commented on 7 December 2018 at 8:12 am UTC

I can't get any games to run through Steam Play (proton). I'm running Fedora 29. Whenever I hit play, the "preparing to launch" window comes up, and then a few seconds later, the program exits. I've turned on proton logging in the config file ~/.steam/steam/steamapps/common/'Proton 3.16'/user_settings.py. It creates an empty log in my home directory.

Dark Souls III (the first random game I came across in my library which is on Valve's approved for Steam Play list) terminal output:

Loaded Config for Local Selection Path for App ID 374320: /home/robert/.local/share/Steam/steamapps/workshop/content/241100/771654329/259345425586508431_legacy.bin
[374320]Non-Steam Controller Configs Enabled: 1
Loaded Config for Local Override Path for App ID 374320: /home/robert/.local/share/Steam//controller_base/empty.vdf
GameAction [AppID 374320, ActionID 1] : LaunchApp changed task to ProcessingInstallScript with ""
Traceback (most recent call last):
File "/home/robert/.local/share/Steam/steamapps/common/Proton 3.16/proton", line 326, in <module>
vr_config = j["config"][0]
TypeError: 'NoneType' object is not subscriptable
Traceback (most recent call last):
File "/home/robert/.local/share/Steam/steamapps/common/Proton 3.16/proton", line 326, in <module>
vr_config = j["config"][0]
TypeError: 'NoneType' object is not subscriptable
Traceback (most recent call last):
File "/home/robert/.local/share/Steam/steamapps/common/Proton 3.16/proton", line 326, in <module>
vr_config = j["config"][0]
TypeError: 'NoneType' object is not subscriptable
installscript_posix.cpp (416) : Assertion Failed: Standalone evaluator returned error code for app 374320
installscript_posix.cpp (416) : Assertion Failed: Standalone evaluator returned error code for app 374320
Installing breakpad exception handler for appid(steam)/version(1543346820)
crash_20181206215514_43.dmp[17563]: Uploading dump (out-of-process)
/tmp/dumps/crash_20181206215514_43.dmp
GameAction [AppID 374320, ActionID 1] : LaunchApp changed task to SynchronizingCloud with ""
GameAction [AppID 374320, ActionID 1] : LaunchApp changed task to ProcessingShaderCache with ""
GameAction [AppID 374320, ActionID 1] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 374320, ActionID 1] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 374320, ActionID 1] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 374320, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
Game update: AppID 374320 "", ProcID 17565, IP 0.0.0.0:0
ERROR: ld.so: object '/home/robert/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/robert/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Loaded Config for Local Selection Path for App ID 374320: /home/robert/.local/share/Steam/steamapps/workshop/content/241100/771654329/259345425586508431_legacy.bin
ERROR: ld.so: object '/home/robert/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Loaded Config for Local Override Path for App ID 374320: /home/robert/.local/share/Steam//controller_base/empty.vdf
>>> Adding process 17565 for game ID 374320
GameAction [AppID 374320, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
GameAction [AppID 374320, ActionID 1] : LaunchApp changed task to Completed with ""
>>> Adding process 17566 for game ID 374320
Traceback (most recent call last):
File "/home/robert/.local/share/Steam/steamapps/common/Proton 3.16/proton", line 326, in <module>
vr_config = j["config"][0]
TypeError: 'NoneType' object is not subscriptable
crash_20181206215514_43.dmp[17563]: Finished uploading minidump (out-of-process): success = yes
crash_20181206215514_43.dmp[17563]: response: CrashID=bp-8f666681-eef1-4d4a-bc16-3ac352181206
crash_20181206215514_43.dmp[17563]: file ''/tmp/dumps/crash_20181206215514_43.dmp'', upload yes: ''CrashID=bp-8f666681-eef1-4d4a-bc16-3ac352181206''
Game removed: AppID 374320 "", ProcID 17565

Can anyone make sense of this? Am I missing something? Regardless, I'd appreciate any help you can offer and let me know if more information is needed.

... Okay after looking this over again I remembered that I clicked SteamVR when I first loaded up Steam just to see what would happen and then realized it was installing and stopped it. If I have a borked config file somewhere having to do with VR that might explain the weird vr_config errors I'm getting.

Second edit, I removed the lines from the proton script which were checking my VR configuration, and now titles are launching like normal. I'd like to not be running an edited version of proton, though. Because if i have to change versions I will have the same problem. Does anyone know how I can give proton what it wants? Here are the relevant lines from proton:

#copy openvr files into place
dst = prefix + "/drive_c/vrclient/bin/"
makedirs(dst)
shutil.copy(basedir + "/dist/lib/wine/fakedlls/vrclient.dll", dst)
shutil.copy(basedir + "/dist/lib64/wine/fakedlls/vrclient_x64.dll", dst)

shutil.copy(basedir + "/dist/lib/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/syswow64/")
shutil.copy(basedir + "/dist/lib64/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/system32/")

#parse linux openvr config and present it in win32 format to the app.
#logic from openvr's CVRPathRegistry_Public::GetPaths

#check environment for overrides
vr_runtime = None
if "VR_OVERRIDE" in env:
vr_runtime = env["VR_OVERRIDE"]
env.pop("VR_OVERRIDE")

vr_config = None
if "VR_CONFIG_PATH" in env:
vr_config = env["VR_CONFIG_PATH"]
env.pop("VR_CONFIG_PATH")

vr_log = None
if "VR_LOG_PATH" in env:
vr_log = env["VR_LOG_PATH"]
env.pop("VR_LOG_PATH")

#load from json if needed
if vr_runtime is None or \
vr_config is None or \
vr_log is None:
try:
path = os.environ.get("XDG_CONFIG_HOME", os.environ["HOME"] + "/.config")
path = path + "/openvr/openvrpaths.vrpath"

with open(path, "r") as jfile:
j = json.load(jfile)

if vr_runtime is None:
vr_runtime = j["runtime"][0]

if vr_config is None:
vr_config = j["config"][0]

if vr_log is None:
vr_log = j["log"][0]
except (ValueError, OSError):
pass

ageres commented on 7 December 2018 at 8:59 am UTC

Is your graphics driver up to date? What about non-DX11 games?

MaCroX95 commented on 7 December 2018 at 9:58 am UTC

Make sure that you meet all the minimum requirements for Steam Play:

- Graphics card with Vulkan and latest OpenGL support
- Driver updated to latest Nvidia driver or latest MESA for AMD/Intel

+ take Steam Play with a grain of sault since it's still an experimental feature and work in progress even for whitelisted titles.

Xpander commented on 7 December 2018 at 12:16 pm UTC

What previously was said
+using officially not supported distro.

also afaik Arch and Fedora both have the filelimit issue, which means esync doesn't work out of box, so check you distro wiki to increase that or use PROTON_NO_ESYNC, which will most likely kill perf.

wvstolzing commented on 7 December 2018 at 12:50 pm UTC

XpanderWhat previously was said
+using officially not supported distro.

also afaik Arch and Fedora both have the filelimit issue, which means esync doesn't work out of box, so check you distro wiki to increase that or use PROTON_NO_ESYNC, which will most likely kill perf.

As to file limits on Fedora, this solved the issue I had with Downwell over proton (a tiny gamemaker game that kept crashing before I changed the following settings; now it works perfectly).

An excerpt from this page: esync on systemd distros

QuoteOn distributions using systemd, the settings in `/etc/security/limits.conf`
will be overridden by systemd's own settings. If you run `ulimit -Hn` and it
returns a lower number than the one you've previously set, then you can set

DefaultLimitNOFILE=1024:1048576

in both `/etc/systemd/system.conf` and `/etc/systemd/user.conf`. You can then
execute `sudo systemctl daemon-reexec` and restart your session. Check again
with `ulimit -Hn` that the limit is correct.

Also note that if the wineserver has esync active, all clients also must, and
vice versa. Otherwise things will probably crash quite badly.

Due to spam you need to Register and Login to comment.


Or login with...

Livestreams & Videos
None currently, submit yours here!
See more!
Popular this week
View by Category
Contact
Latest Comments
Latest Forum Posts