baffler / OBS-OpenVR-Input-Plugin

This OBS plugin provides an input plugin to 64bit OBS that allows capturing directly from OpenVR/SteamVR mirror surface in full resolution.
GNU General Public License v2.0
391 stars 36 forks source link

Apparent framerate drop. #26

Open mirage335 opened 4 years ago

mirage335 commented 4 years ago

After this had been working for me just fine for a while, it seems the SteamVR mirror window now shows a drastically lower framerate.

Consequently, OBS recordings show VR footage at very low framerates... 10FPS if that.

Oddly enough, OVRDrop and WorkInVR overlays are recorded at full framerate, though this does not show in the SteamVR mirror window.

blackote commented 4 years ago

Im having the same issues... mine looks like 25fps.. I noticed that in the SteamVR loading map (where all you see is the floor grid and mountains) the FPS is fine. But once it load into the SteamVR home its choppy from that point on.

BOLL7708 commented 4 years ago

We did some exploration here, it appears it's due to the mix of WMR in combination with SteamVR that does it. Or are any of you using a non-WMR headset? In any case, that would mean it's Valve and/or Microsoft that could fix it 😬

mirage335 commented 4 years ago

Myself, I am using a Pimax Vision 8kX (preproduction unit). This obstructed better quality footage for the video I was producing...

jackofchaos commented 4 years ago

This is a problem for oculus as well

Da-Nuker commented 4 years ago

There was a test done with a rollback version of SteamVR over at that shows OpenVR 1.4 plugin working correctly on the 1.10.20 SteamVR for WMR: https://steamcommunity.com/app/250820/discussions/0/2268069450214724270/?ctp=2

So the bug maybe not be related to the plugin or unless there is a way to rewrite the plugin so that it can grab higher native output from SteamVR itself.

mirage335 commented 4 years ago

It is a blocking issue for using the plugin's core functionality, so SteamVR being at fault should not be a reason to close the issue.

Da-Nuker commented 4 years ago

It is a blocking issue for using the plugin's core functionality, so SteamVR being at fault should not be a reason to close the issue.

I agree leaving this issue here so people will know about it (and how to roll back to a working version), but I think it would also help more to keep reminding Valve's SteamVR team to fix this on their end.

Looking through the source, this plugin is mainly processing a copy of the mirror surface provided by the SteamVR Compositor and I'm not sure what else can be done without access into that unless they make you buy Valve Index to fix a recording problem they caused...

mirage335 commented 4 years ago

How? How can we 'keep reminding', or something stronger? This kind of regression being left open for weeks is absurd.

Having a Valve Index DOES NOT solve the problem. A Valve Index does NOT help me record footage from the Pimax Vision 8kX, which is much higher resolution.

Personally, I am very fed up with the apparent mentality behind the supposedly 'OpenVR'.

blackote commented 4 years ago

I just tried the downgrade bandaid and it worked.... hopefully with the new win10 may update and more steamVR updates it will fix it.

mirage335 commented 4 years ago

Another 20 days.

BOLL7708 commented 4 years ago

Pretty sure you're barking up the wrong tree here @mirage335 as it appears to be a change in SteamVR that has caused this and not this specific plugin. It would be hard for people external to Valve to actually fix this unless it's up to driver makers to do some update, meaning Pimax, WMR, etc, which still means it's not a fix to this plugin 🤷‍♂️

mirage335 commented 4 years ago

Pardon me. In fact, I had recently confirmed the plugin still did not work with recent versions of SteamVR stable and beta. So, I thought I might drop a note here to record the length of time this plugin's core functionality has remained blocked by SteamVR.

My 'barking' is already directed up different trees.

That said, might I propose it is now time to include a workaround in this repository? Something automatic, like a downgrade script that does not depend on specific memory editor programs that might be mistaken for cheats?

Da-Nuker commented 4 years ago

The rollback instructions are located on SteamVR discussion boards that I have posted. Here's the direct post: https://steamcommunity.com/app/250820/discussions/0/2268069450214724270/#c2268069450221705718

This will bring you back to 1.10.20 which is definitely working with this plugin to get smooth 90 fps vs the SteamVR desktop mirror itself which still only gives you half your refresh rate (45 fps) on this version. I believe 1.10.22 hotfix broke it since it had this in the changelog: "Possible fix for crashes on Desktop View shutdown."

Their possible "fix" basically messed up VR capture to 30 fps for every non 1st-party SteamVR device. Right now we are still all right as most software still runs on 1.10 but we eventually get some that needs 1.11+ features.

mirage335 commented 4 years ago

Thank you for identifying the specific hotfix that is plausibly implifcated.

As for the workaround, it's far from ideal. Especially since it begins with this. "1. Run Cheat Engine."

Seems like a great way to get a VAC permaban.

Da-Nuker commented 4 years ago

That's something you have to blame Valve for not blocking console commands to download repository which is a separate issue. They blocked it a few months ago and then unleashed this SteamVR bug. It only flips a few bytes in the SteamVR client so you can actually download the packages and there will be no game launches in the interim and you immediately switch off the Steam client after download anyway.

If you are paranoid, create a burner Steam account and login with it to download SteamVR (it's free after all to all users) and then download the older files. You can keep all the files you download afterward so you never have to run the Cheat Engine.

Honestly, someone should just upload the whole 1.10.26 SteamVR payload to a file sharing service and link it back on Valve's official page so they actually get them to fix it.

mirage335 commented 4 years ago

There is a way to just copy/paste the current installation of SteamVR to run standalone later?

Da-Nuker commented 4 years ago

Once you downloaded the files, you can keep that copy in a spare folder anywhere on your computer and copy it back into your steam\common folders (and replace the appmanifest_250820.acf) file. It is also highly recommended as you will need definitely need to keep a spare copy of the SteamVR folders because if you launch SteamVR directly, it will run the update and you need to replace all the files again.

black-light-studio commented 4 years ago

I've spent over 1K€ trying to get a good frame-rate, damn you SteamVR ... Samsung Odyssey+ only getting 20-25 FPS ... running a 10900K at 5.3GHz with a 1080TI FML time to see if I can somehow route it trough a capture card

BOLL7708 commented 4 years ago

@black-light-studio Just as a side note, if you use a capture card to intercept the headset video signal you will most likely get an image with distortion applied. Meaning chromatic aberration and barrel distortion.

If the game provides a good game window that can obviously be used instead, but if you're like me and record a plethora of games where some only provide a tiny output window, it's a no go 😅