cancel
Showing results for 
Search instead for 
Did you mean: 

Oculus ASW doesn't play nice with SteamVR / Unity / The Lab Renderer

SaraSunshine
Honored Guest

Hi, we're using The Lab Renderer (https://www.assetstore.unity3d.com/en/#!/content/63141) with Unity and SteamVR and getting Oculus-only artifacts that make our VR app basically unusable.

Whenever the CPU throttles, on Oculus only, every other frame is shifted up around 50% and rotated/scaled slightly. This is extremely uncomfortable.

We diagnosed and found that, to reproduce this, it's as simple as

  • create a new Unity project (we tested 5.4 and 5.5)
  • install a fresh copy of The Lab Renderer from the Unity asset store
  • open the 4_spots sample scene
  • add a script that prints to the debug console 40 times every frame (or any other task that throttles the CPU). e.g. void Update() { for (int i=0; i<40; i++) { Debug.Log("foo"); }}

When we run the built .exe, we get this artifact on two different computers. Pressing Ctrl + 1 on the numpad fixes the artifact, which points to ASW as the culprit. We see this on Oculus only (it's fine on Vive). We are using SteamVR.

I understand there is no way to disable ASW programmatically in 1.10 (https://www.reddit.com/r/oculus/comments/5eqow7/how_to_disable_asw_for_a_computer/). We are left now having to ask our users to disable ASW because this artifact results in extreme VR nausea.

My questions for the community

  • is anyone else experiencing this?
  • any ideas for a fix?  (our hypothesis is that ASW is not using the SteamVR calibration data..... and thus the ASW frames are massively shifted relative to the SteamVR, non-ASW frames)
  • any one know a way to disable ASW programmatically for our app? we hate having to ask our users to manually press Ctrl + NumPad1 to get a nausea-free experience, but have no other workaround at this point. (https://forums.oculus.com/community/discussion/44941/how-to-disable-asw)

please help!



9 REPLIES 9

SaraSunshine
Honored Guest
note: in case you're wondering.... we disabled reprojection in SteamVR and it didn't fix this issue

DeanOfTheDriver
Protege
This sounds like a stack of fail.

From what you're describing it sounds like there are viewport, perf, synchronization and timing issues galore between SteamVR and our SDK. Unfortunately I do limited testing with OpenVR bound applications. There's an added element of the SteamVR compositor which creates some amount of uncertainty in operation. Unity's OpenVR binding are another unknown.

I do know the Lab Renderer has Adaptive Quality for SteamVR enabled. Can you disable it and see if it still repros? This may at least address any viewport strangeness. We'll have to unpack a lot of the weirdness you're seeing.

SaraSunshine
Honored Guest
that's a good suggestion --  disabling Adaptive Quality seems to correct the problem. in at least one test case ;). .... let me dive in a bit more and make sure.

DeanOfTheDriver
Protege
Glad that seemed to work. On my end I'll check out what OpenVR's adaptive quality is doing to confuse ASW. Thanks for your patience!

SaraSunshine
Honored Guest
Yes we did more extensive testing and are going to move forward with this fix for our touch release.

Through the grapevine, I learned today that this is a known issue with Unity, and that a future update to 5.5 is planned to address this issue. So Dean, you may want to check with your contacts at Unity before spending too much time yourself debugging.

Thank you so much for your help today and pointing us directly to the checkbox we needed to click to fix this one ;).

DeanOfTheDriver
Protege
Glad we could root cause quickly. In theory ASW and adaptive quality should behave together. I'll monitor Unity's work in this area and make sure it works next time! You're welcome Sara!

krectus
Protege
This is STILL an issue.  Some games in SteamVR are still unplayable.

Sgeo
Protege
There are workarounds. For The Lab, you could try putting -noaq into its launch options, or disabling ASW while playing The Lab.

Duncan
Protege
The offset textures issue sounds like the OpenVR OpenGL texture size caching issue:

http://steamcommunity.com/app/358720/discussions/0/133258593390521289/
https://github.com/ValveSoftware/openvr/issues/216

If the submission texture size is changed OpenVR does not register it.