Resonite-Issues icon indicating copy to clipboard operation
Resonite-Issues copied to clipboard

Headset going standby causes very low FPS in F8-screen mode

Open shadowpanther opened this issue 1 year ago • 13 comments

Describe the bug?

A headset going into standby causes FPS to drop to less than 10 both in VR view (this is somewhat expected) and in Screen view after switching with F8.

To Reproduce

While using Quest 3 with Steam Link and SteamVR, I took off my headset. After some amount of time, the headset turned off (standby). Resonite and SteamVR dropped FPS to less than 10. I tried to switch to Screen mode, but it too was with very low FPS.

Expected behavior

FPS to be normal in F8-Screen mode.

Screenshots

No response

Resonite Version Number

2024.5.29.130

What Platforms does this occur on?

Windows

What headset if any do you use?

Quest 3 via Steam Link

Log Files

VIXEN - 2024.5.29.130 - 2024-05-29 22_48_37.log

Additional Context

No response

Reporters

No response

shadowpanther avatar May 29 '24 21:05 shadowpanther

~~This is exclusive to Steam Link afaik, does not happen with Virtual Desktop or ALVR~~

Nytra avatar May 29 '24 22:05 Nytra

I'm not sure if this is something we can do much about. When VR is active, the VR SDK controls the framerate, so it's probably going into some kind of power save mode.

We are not doing anything on our end to artificially limit the FPS when this happens.

Are there any settings or anything relating to this in the VR software you're using?

Frooxius avatar May 29 '24 22:05 Frooxius

I'm not sure if this is something we can do much about. When VR is active, the VR SDK controls the framerate, so it's probably going into some kind of power save mode.

This was not an issue before... Something around the time introducing the new settings changed this.

Are there any settings or anything relating to this in the VR software you're using?

No, just straight Steam Link into SteamVR and launch Resonite from there.

shadowpanther avatar May 29 '24 22:05 shadowpanther

This was not an issue before... Something around the time introducing the new settings changed this.

This has been an issue for me using Steam Link prior to the new Settings UI. I'm not sure if it's new for you specifically but it was occurring prior to that change.

PointerOffset avatar May 29 '24 23:05 PointerOffset

I've had this occur with Quest Link (wired) prior- it's definitely not a new behaviour- it's been around for as long as I can recall/have had my Quest 1- and as indicated above by Frooxius- is largely out of our hands because it is the VR SDK that is responsible for causing it.

I see that SteamVR has a "Meta Plugin Compatibility" setting under the OpenXR settings group that I'm pretty sure didn't exist previously. Could you try turning that setting off and see if it causes any change in behaviour, @shadowpanther?

LexiBasilisk avatar May 30 '24 20:05 LexiBasilisk

I'm positive that this is simply a SteamLink thing, since I can trigger it in any VR game by simply connecting to my computer and sleeping the headset, it doesn't cleanly disconnect from the headset is is constantly waiting for the headset to reconnect. The performance metric also goes 100% pink, representing a Display Error delay.

image

ko-tengu avatar May 30 '24 20:05 ko-tengu

I see that SteamVR has a "Meta Plugin Compatibility" setting under the OpenXR settings group that I'm pretty sure didn't exist previously. Could you try turning that setting off and see if it causes any change in behaviour, @shadowpanther?

Just tried that, and with this setting On, the FPS drop is still the same. Getting the headset to standby (pressing the power button) causes Resonite to auto-switch to Screen mode, but the frame rate is at 5-8 FPS which is unusable. Turning the headset back on and going F8 allows to have 120 FPS (headset frequency) Screen mode.

I do remember that in the times prior F8 limited the refresh rate to the monitor's rate (e.g. 60FPS). Right now it's being kept at the headset's rate (120 or 8 FPS depending on the state).

shadowpanther avatar May 30 '24 21:05 shadowpanther

I don't think there is anything that can be done here on our end then at this time then, unfortunately- the VR SDK is responsible for frame presentation/frame limiting, and forcing VSync on causes misbehaviour/other issues, e.g. #1927.

If there were some way to dynamically register/unregister the VR SDK and its control over compositing.

Seeking input from @Geenz on if something of the sort could eventually be made possible by the switch to our new rendering engine #1401. It would hypothetically be cool to be able to add/remove headsets/runtimes live, but I don't know if something like that is even technically possible at all- much less right now.

LexiBasilisk avatar May 30 '24 21:05 LexiBasilisk

I am just updating this as the issue is still present as of Beta 2025.2.5.1304. Tested with Quest Pro via SteamLink. Unsure if this also occurs with VirtualDesktop so I can try that later.

FlameSoulis avatar Feb 06 '25 09:02 FlameSoulis

This is effectively a sister issue to #2999. Since the compositing / frame limiting is controlled by the VR SDK and not us- we would need some mechanism to unregister the VR SDK during runtime in order to restore full control of the compositing to Resonite.

LexiBasilisk avatar Feb 06 '25 23:02 LexiBasilisk

Happens to me with Virtual Desktop now. This makes VR hotswitching unusable on Quest.

Nytra avatar Jul 23 '25 06:07 Nytra

Happens to me with Virtual Desktop now. This makes VR hotswitching unusable on Quest.

yea when a quest / standalone based headset goes into sleep mode using any streamer based solution it will after 5 seconds dump the fps to 10 and make desktop unusable until you wake your headset up for a bit

SlyTheFloof avatar Aug 25 '25 18:08 SlyTheFloof

I think I have found a one-line fix which is to simply add this to the start of RenderingManager.UpdateVR_Active:

SteamVR.instance?.compositor.SuspendRendering(!vrActive);

Currently testing with a mod and it even allows the desktop FPS to go above the refresh rate of the headset.

edit:

https://github.com/Nytra/ResoniteSteamVR_LowFPS_Fix

Nytra avatar Sep 20 '25 11:09 Nytra