elvissteinjr / DesktopPlus

Advanced desktop access for OpenVR
GNU General Public License v3.0
454 stars 29 forks source link

Standalone (Non SteamVR) Launch? Request #76

Open foxotic opened 3 weeks ago

foxotic commented 3 weeks ago

Valve has confirmed to me that currently the SteamVR dashboard caps the framerate of the dashboard based on the framerate of the game. The problem is, if a game is lower than what's needed, Desktop+ will also be affected by this until SteamVR implements a setting to turn off this frame cap.

As a workaround, if we can get the overlay to run natively as its own window, it would not be affected by this frame cap and give overall performance 100% potential and run better than it currently can with the SteamVR rate cap.

elvissteinjr commented 3 weeks ago

I think I've read of something like this recently, but I'm not sure I'm following exactly.

Desktop+'s overlay texture submission is not tied to SteamVR frame rate. That can exceed 1000 fps in extreme cases. SteamVR's overlay rendering being tied to game frame rate might be true, haven't really checked. Makes sense though as you don't want to bog down even more if you already can't hit the target frame rate. If there are additional restrictions with SteamVR Link or similar then I wouldn't know. I only have a Valve Index HMD myself.

This brings me to my main point of confusion: What is the usage scenario here? I feel like if your game doesn't hit full frame rate you have more to worry about than overlay smoothness. What does running natively mean here? Desktop+ is a SteamVR application. If you mean standalone SteamVR as opposed to overlay then that's still quite the undertaking as it's fully reliant on SteamVR's overlay APIs. I don't have the means to target other headset APIs (and in case of OpenXR, the overlay extension is unimplemented in SteamVR last time I checked).

If you just need to run anything to basically host Desktop+ overlays in there, maximizing performance, I've written SteamVR-VoidScene for that purpose.

Otherwise I need some more details when and why this is important.