ValveSoftware / SteamVR-for-Linux

Issue tracker for the Linux port of SteamVR
930 stars 45 forks source link

[BUG] Excessive binding loads from steam #307

Open ChristophHaag opened 4 years ago

ChristophHaag commented 4 years ago

Describe the bug In vrserver.txt I get messages about excessive binding loads about twice per second. This also causes lots of VREvent_ActionBindingReloaded events to be produced by SteamVR.

To Reproduce Start SteamVR while Steam is running.

It does not happen when starting ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh while steam is not running.

System Information (please complete the following information):

Zamundaaa commented 4 years ago

also experiencing this. System Information (please complete the following information):

farmboy0 commented 4 years ago

I have the same problem, maybe that is why my controller binding ui is behaving very sluggishly.

System Information (please complete the following information): Distribution: Gentoo SteamVR version: 1.10.32 and 1.11.7 Steam client version: April 8, 2020 Opted into Steam client beta?: Yes, but also happens on stable Graphics driver version: Mesa 20.0.4 (LLVM 9.0.1) Gist for SteamVR System Information: https://gist.github.com/farmboy0/16f79f8c08e6062bb1cf5365963499ce

frostworx commented 4 years ago

this also tickers frequently through the local webinterface http://localhost:27062/console/index.html removing, chowning root setting inmuteable the file legacy_bindings_generic_hmd.json made it complain even faster

frostworx commented 4 years ago

sorry for the noise - to more precise. the webinterface frequently logs those lines:

Sat Apr 18 2020 11:52:31.867554 - Excessive binding loads from steam (34713): crc=103736843 lc=2 Reload=F res=2
Sat Apr 18 2020 11:52:31.867596 - ===== indexhmd: state=4, NOT empty, uri=file:///media/wdblu4/steamlocalshare/steamapps/common/SteamVR/resources/config/legacy_bindings_generic_hmd.json

so legacy_bindings_generic_hmd.json might not have something to do with this Excessive binding loads issue. both lines are also logged when steamvr is launched with ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh

best visible with knuckles turned off, else the logs are flodded with https://github.com/ValveSoftware/SteamVR-for-Linux/issues/326

farmboy0 commented 4 years ago

The spam will show for me only when steam is started. If steam is not started and SteamVR is started from cmdline this spam will not show up and the controller bindings dialog actually reacts to mouse clicks in a timely manner. Unfortunately without steam its functionality is rather limited.

frostworx commented 4 years ago

hm, interesting. I recently installed OVRAS, maybe that's the cause. In fact it even looks very likely: https://github.com/matzman666/OpenVR-AdvancedSettings/issues/175 edit: no, uninstalled OVRAS and it still floods the logs.

jannis3005 commented 3 years ago

Also experiencing this isse.

System Information:

Distribution: Arch
SteamVR version: 1.18.7
Steam client version: 1626824053
Opted into Steam client beta?: No
Graphics driver version: Proprietary Nvidia Driver 470.57.02
Gist for SteamVR System Information: https://gist.github.com/jannis3005/5e22a42d4c4f5bc08d02083c97db1c8b
Bengt commented 2 years ago

I see this error, too.

xDShot commented 1 year ago

Still happens

Meister1593 commented 1 year ago

Hey if anyone wants a workaround this issue, i made a simple patcher that makes cef on steamvr not crash completely and work normally (steamvr still spams websocket messages, but at least chromium works fine) https://gist.github.com/Meister1593/b574b399d85770abc2368f4d5af9df42

Patola commented 1 year ago

It fixed the issue for me... Congratulations!!!

twhitehead commented 11 months ago

Just a note that you can run StreamVR without running it under Steam, and thereby avoid this. You just have to launch it under the appropriate wrapper to setup the correct Steam environment. The easiest way to get this is start steam from the terminal and note what command it logs that it is running when you click runs on SteamVR

$ steam
...
/bin/sh\0-c\0/home/tyson/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=250820 -- /home/tyson/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/tyson/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper'/_v2-entry-point --verb=waitforexitandrun --  '/home/tyson/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh'\0
...

and whatever you want to run with SteamVR

...
/bin/sh\0-c\0/home/tyson/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=546560 -- /home/tyson/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/tyson/.local/share/Steam/steamapps/common/Half-Life Alyx/game/hlvr.sh' -vr -steam -noasserts -nopassiveasserts +map startup -vulkan -nowindow\0
...

Then just close Steam and run these commands yourself from the terminal

$ /home/tyson/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=250820 -- /home/tyson/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/tyson/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper'/_v2-entry-point --verb=waitforexitandrun --  '/home/tyson/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh'

and

$ /home/tyson/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=546560 -- /home/tyson/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/tyson/.local/share/Steam/steamapps/common/Half-Life Alyx/game/hlvr.sh' -vr -steam -noasserts -nopassiveasserts +map startup -vulkan -nowindow

For a proton item you need to export some environment variables too

STEAM_COMPAT_DATA_PATH=<app proton dir>
STEAM_COMPAT_CLIENT_INSTALL_PATH=<proton dir>

where an example of the former is /home/tyson/.local/share/Steam/steamapps/compatdata/4090935073 and the later is /home/tyson/.local/share/Steam/compatibilitytools.d/GE-Proton8-25 or /home/tyson/.local/share/Steam/steamapps/common/Proton 8.0 (although I haven't actually tried it with Proton proper to make sure of that one).

No spamming of the logs and some very good improvements in the StreamVR performance graph. Here, for example, is StreamVR and a Proton program launched though steam load vs them launched without steam through the command line load2 Wonder if that is all from dealing with all those binding calls, or if Steam imposes other loads as well? Certainly well worth circumventing it if you don't have a lot of CPU/GPU headroom to spare.

Hisanatos commented 11 months ago

Hey I've got the same spam in the Steam logs, as I was trying to pinpoint why do I have a cyclic pink line int steamVR graph, and I tried everything from restarting, disconnecting one of the monitors, running the main display at the same speed as Valve Index and other tips from around the internet, until I noticed that I had this error happen in my logs also cyclically, so I googled it, found out this issue, and tried the "solution" from the previous post, and you can see for yourself the difference This is bypassing steam obraz

And this is when I run SteamVR through steam. obraz

Notice the cyclical nature of the pink lines.

When SteamVR finally works with Async Reprojection, and Proton games, I'll do a more thorugh testing, along with Gists and so on.