cancel
Showing results for 
Search instead for 
Did you mean: 

Steam OpenVR, Oculus SDK & OpenXR

Mad_Max_75
Protege

Hello community.

I have a couple of doubts that I would like to know if someone can explain to me.

 

I have to warn that I am not a developer and I do not control this matter much, so it may be that some concepts or technical words are said in the wrong way. I apologize in advance for this.

 

As I understood it, there were two, API? developers were using, SteamVR's OpenVR and Oculus SDK.

Then OpenXR appeared to unify and simplify the work of developers.

 

Here is my first question: Why is it different between Oculus and SteamVR when it comes to the OpenXR runtime?

 

Second, I can't understand why both Oculus Home and SteamVR ask me to activate their own runtime by default.

I have done tests with games and the performance is identical or very similar in terms of latency.

 

On some occasions, like rFactor 2, I have started with Oculus OpenXR and when exiting it had changed to SteamVR OpenXR, on other occasions, the change did not occur.

 

I've also tried games that have multiple startup options like Contractors.

1- Start Contractors with Oculus OpenXR activated and in Oculus mode.
2- Start Contractors with SteamVR OpenXR activated and in SteamVR mode.
3- Start Contractors with Oculus OpenXR activated and in SteamVR mode

 

Nothing seems to change, apart from the fact that in Oculus mode I don't have SteamVR started.

Does it depend on if the game is from Oculus, Steam or mixed? Nothing is clear to me.

 

Here my second question:

What are the differences between using one mode or another and when should I do it using Oculus Quest 2?

 

Thank you very much in advance for your clarifications.

1 ACCEPTED SOLUTION

Accepted Solutions

kojack
MVP
MVP

There are three main VR apis for PC headsets: OpenVR (SteamVR is an implementation of it), Oculus (often called OVR) and WMR (for headsets like the HP Reverb G2).

SteamVR includes plugins that redirect OpenVR games to Oculus or WMR (SteamVR itself has no built in support for direct access to Oculus or WMR devices, it uses the native SDKs).

 

OpenXR acts as a common interface that bypasses the native SDKs. Oculus, Valve and Microsoft provide OpenXR runtimes. There can only be one runtime registered in the system at a time, that's what an OpenXR game will use. If you have the Oculus OpenXR runtime registered, all OpenXR games will be handled by the Oculus drivers, (same for the other two).

If you have two kinds of headset installed, such as a Quest 2 (with Link) and a Reverb G2, registering the Oculus runtime means all OpenXR games go to the Quest 2. Registering the WMR runtime means all OpenXR games go to the Reverb.

 

In the case of SteamVR, it's slightly different. Registering SteamVR/OpenVR's OpenXR means all OpenXR games go to SteamVR, which then either handles it directly (for headsets like Index or Vive) or redirects to the Oculus SDK or WMR SDK.

 

Of course none of this actually happens if the game isn't built for OpenXR. The only one I definitely know of is Microsoft Flight Simulator. So 99.999% of current VR games will be unaffected by which OpenXR runtime you have.

Author: Oculus Monitor,  Auto Oculus Touch,  Forum Dark Mode, Phantom Touch Remover,  X-Plane Fixer
Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
Headsets: Wrap 1200VR, DK1, DK2, CV1, Rift-S, GearVR, Go, Quest, Quest 2, Reverb G2

View solution in original post

4 REPLIES 4

kojack
MVP
MVP

There are three main VR apis for PC headsets: OpenVR (SteamVR is an implementation of it), Oculus (often called OVR) and WMR (for headsets like the HP Reverb G2).

SteamVR includes plugins that redirect OpenVR games to Oculus or WMR (SteamVR itself has no built in support for direct access to Oculus or WMR devices, it uses the native SDKs).

 

OpenXR acts as a common interface that bypasses the native SDKs. Oculus, Valve and Microsoft provide OpenXR runtimes. There can only be one runtime registered in the system at a time, that's what an OpenXR game will use. If you have the Oculus OpenXR runtime registered, all OpenXR games will be handled by the Oculus drivers, (same for the other two).

If you have two kinds of headset installed, such as a Quest 2 (with Link) and a Reverb G2, registering the Oculus runtime means all OpenXR games go to the Quest 2. Registering the WMR runtime means all OpenXR games go to the Reverb.

 

In the case of SteamVR, it's slightly different. Registering SteamVR/OpenVR's OpenXR means all OpenXR games go to SteamVR, which then either handles it directly (for headsets like Index or Vive) or redirects to the Oculus SDK or WMR SDK.

 

Of course none of this actually happens if the game isn't built for OpenXR. The only one I definitely know of is Microsoft Flight Simulator. So 99.999% of current VR games will be unaffected by which OpenXR runtime you have.

Author: Oculus Monitor,  Auto Oculus Touch,  Forum Dark Mode, Phantom Touch Remover,  X-Plane Fixer
Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich
Headsets: Wrap 1200VR, DK1, DK2, CV1, Rift-S, GearVR, Go, Quest, Quest 2, Reverb G2

Anonymous
Not applicable

Open XR worked quite well in MSFS 2020 with my Reverb G2. Better than my Vive Pro 2 does with Steam VR and the sim. But I was running Open XR in the experimental with MSFS 2020 which interpolated 2 frames for every 1 frame. It worked good though.

Magnificent, conscientious and detailed answer. Thanks so much for the explanation.

Now I understand that I won't notice a difference when testing one way or another. And that having Oculus Quest 2 (well, and a CV1 saved in its box for history) I must calmly leave the runtime in Oculus and without worrying if the games I run are designed for one or the other system.

Again, thank you very much for this great explanation.

Thank you for asking this, I had the same question and had trouble finding a clear answer.