Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
193 stars 9 forks source link

Neos disconnecting from SteamVR on Linux #3412

Closed Frozenreflex closed 2 years ago

Frozenreflex commented 2 years ago

Describe the bug?

Seemingly randomly, Neos will disconnect from SteamVR. I haven't played on the native build in awhile, but I recall having a similar issue between both it and Proton, but it may be two separate issues. On the native Linux build this won't crash, but you're forced to go into Desktop mode to continue playing, and last I recall it didn't allow you to go back into VR. Also due to SteamVR on Linux being rather primitive, you couldn't restart SteamVR without also restarting Neos. On Proton, due to SteamVR issues, this will either completely crash or freeze the game, and will freeze the desktop either during the crash or after you close SteamVR from a freeze. It will also freeze the last rendered frame on the HMD for a few seconds before going black. For a few seconds, even with my vision frozen, I'm still able to hear other people talking, but it eventually stops. This crash or freeze will also bypass the Unity crash handler. I believe this is a rendering issue, from the logs shown below, and due to some of the behavior exhibited. I don't understand why this issue affects Neos specifically, as I'm able to run Boneworks, H3VR, and Phasmophobia, all Unity games, without this crash ever occurring. I actually think this is a thread locking up somewhere (SyncTick is not updating) that indirectly causes SteamVR to freak out, which half of the time will cause SteamVR to restart and close Neos.

This issue does not seemingly occur in Desktop mode.

Relevant issues

https://github.com/ValveSoftware/SteamVR-for-Linux/issues/452 This seems to be connected, and only occurs with an Nvidia GPU. I have an RTX 2060 Super. The same error is shown by SteamVR in Proton, and is easier to see if it freezes rather than crashes. I don't believe this is connected anymore but the same error message appears

To Reproduce

Use Neos normally. The crash is not consistent, but usually after the first crash it becomes very frequent.

Expected behavior

No crash or freeze

Log Files

Neos does not output anything out of the ordinary, but the vr-compositor logs something around the line of this Sat Nov 06 2021 18:01:21.838229 - Failed Watchdog timeout in thread Render in WaitForPresent after 5.572546 seconds. Aborting.

Edit: During a crash, Neos does not output anything out of the ordinary. During a freeze, Neos outputs an unresponsive engine message:

12:21:45 AM.598 (  2 FPS)   Engine has been unresponsive for over 10 seconds.
LastUpdateTime: 11/27/2021 6:21:34 AM
FocusedWorld: World Space Engineers [WIP]. Focus: Focused, State: Running, InitState: Finished, FailState: None, FailReason: , IsDestroyed: False, IsAuthority: False, SyncTick: 45113, StateVersion: 608209, Time: 4040.80658970035, TimeSinceLastUpdate: 10.86568
WorldStage: RefreshBegin
WorldSessionState: WaitingForSyncThreadEvent
WorldSessionStopProcessing: FalseWorldMessagesToProcess: 0
WorldTotalProcessedMessages: 290650
WorldMessagesToTransmit: 0
ProcessingSyncMessage: 
CurrentlyDecodingStream: 
12:21:56 AM.598 (  2 FPS)   Engine has been unresponsive for over 10 seconds.
LastUpdateTime: 11/27/2021 6:21:34 AM
FocusedWorld: World Space Engineers [WIP]. Focus: Focused, State: Running, InitState: Finished, FailState: None, FailReason: , IsDestroyed: False, IsAuthority: False, SyncTick: 45113, StateVersion: 609919, Time: 4040.80658970035, TimeSinceLastUpdate: 21.86609
WorldStage: RefreshBegin
WorldSessionState: WaitingForSyncThreadEvent
WorldSessionStopProcessing: FalseWorldMessagesToProcess: 0
WorldTotalProcessedMessages: 294357
WorldMessagesToTransmit: 0
ProcessingSyncMessage: 
CurrentlyDecodingStream: 
12:22:07 AM.599 (  2 FPS)   Engine has been unresponsive for over 10 seconds.
LastUpdateTime: 11/27/2021 6:21:34 AM
FocusedWorld: World Space Engineers [WIP]. Focus: Focused, State: Running, InitState: Finished, FailState: None, FailReason: , IsDestroyed: False, IsAuthority: False, SyncTick: 45113, StateVersion: 611605, Time: 4040.80658970035, TimeSinceLastUpdate: 32.8664
WorldStage: RefreshBegin
WorldSessionState: WaitingForSyncThreadEvent
WorldSessionStopProcessing: FalseWorldMessagesToProcess: 0
WorldTotalProcessedMessages: 298108
WorldMessagesToTransmit: 0
ProcessingSyncMessage: 
CurrentlyDecodingStream: 

Screenshots

No response

How often does it happen?

Sometimes

Does the bug persist after restarting Neos?

Yes

Neos Version Number

2021.11.10.1253

What Platforms does this occur on?

Linux

Link to Reproduction Item/World

No response

Did this work before?

No

If it worked before, on which build?

No response

Additional context

This seemed to occur way less before SteamVR 1.18, which added Async Reprojection support for Nvidia cards, but 1.14 (the only available version before the change for Linux) does not work with the current build of Neos, and downgrading my graphics driver to one version before async was supported (465) does not fix the issue.

Reporters

Fro Zen#8796

FlameSoulis commented 2 years ago

How are you getting Neos to launch with SteamVR? Last I checked, it doesn't offer any launch options on Steam on the native build.

Frozenreflex commented 2 years ago

I normally use the Windows build ran through Proton, since the native build isn't very good, but iirc I just launched the game with SteamVR open for native to work.

Frozenreflex commented 2 years ago

Closing this as I believe this is actually either #3507 or (one of the many issues posted in) #3265 based on some of the logs