Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
137 stars 2 forks source link

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

Open shadowpanther opened 4 months ago

shadowpanther commented 4 months ago

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

Nytra commented 4 months ago

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

Frooxius commented 4 months ago

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?

shadowpanther commented 4 months ago

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.

PointerOffset commented 4 months ago

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.

shiftyscales commented 4 months ago

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?

ko-tengu commented 4 months ago

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

shadowpanther commented 4 months ago

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).

shiftyscales commented 4 months ago

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.