Meta Quest 3 - Steam Link v Virtual Desktop/OpenComposite

I decided to do a back to back test with my Q3 to compare performance and image quality between Steam VR v Virtual Desktop / OpenComposite.
I was supprised by the results.

In both cases I used exactly the same PC and Game settings, and measured fps within Steam VR using fpsVR and the "OpenXR Toolkit Companion App" within Virtual Desktop / OpenComposite. I also only measured the fps whilst docked at an Orbis station below deck with the Q3 locked at a maximum 90 fps. And I only use the Q3 with WiFi not a link cable.

Steam VR = 90 fps (per eye resolution 2528 x 2704)
Virtual Desktop / OpenComposite = 75 fps (per eye resolution 2109 x 2208)

However Image quality with the Virtual Desktop / OpenComposite combination was crisper and more defined.
Steam VR was slightly fuzzy and blurred particularly for distant objects.

I run SteamVR by using the Meta Steam Link App which does not need / use Virtual Desktop or OpenComposite.
or
I launch the Meta Virtual Desktop App, then ED as detailed in my instructions from the link below.

 
Last edited:
Are you not also using virtual desktop with Steam VR? Or are you connecting via a different mechanic?

I'm confused with the test otherwise. Seems like there may be a few variables without pinpointing which one is causing what.
 
Are you not also using virtual desktop with Steam VR? Or are you connecting via a different mechanic?

I'm confused with the test otherwise. Seems like there may be a few variables without pinpointing which one is causing what.
Good point, I didn't clarrify how I was launching the game. have added details in my original post
 
Why SteamVR at all? Why not directly connect to Q3 with a link cable? I mean, if you are going to do a comparison study, a "native" baseline is a good anchor point for comparison.
 
Why SteamVR at all? Why not directly connect to Q3 with a link cable? I mean, if you are going to do a comparison study, a "native" baseline is a good anchor point for comparison.
You can't run ED in VR with just the cable, you need either SteamVR or another application like Virtual Desktop
 
Not a Quest user, but what I find really confusing when testing VR stuff is making sure the playing field is level. For example when I tested Open Composite against SteamVR with my Reverb G2, the documentation for Open Composite says their supersampleratio setting is equal to SteamVR's scaling, but it clearly isn't. Which makes comparing difficult when testing. It doesn't help that the OpenXR toolkit seems to spit out the per eye resolution before scaling is applied, not after, so that was no help either.

I eventually went back to using SteamVR because my gaming scenario sort of relies on reprojection, and I found it to much, much worse using Open Composite than SteamVR. While the performance was kind of comparable, the visual quality was much worse when reprojection kicked in. That kind of surprised me.
 
Huh.... I have been playing ED since release day, and switched to VR since Oculus Rift CV1 (actually, I did Rift DK2, but that was terrible so I switched back to pancake) -- with just a cable and no StreamVR, nor VD. I have never used StreamVR other than for HalfLife Alyx. In fact, I never signed up for Steam until HalfLife Alyx necessitated it. I still don't have VD. I never run StreamVR when playing ED (I could, but I don't). You just have to check that box to allow 3rd party app to use Oculus in Oculus settings.

AFAIK, ED supports both SteamVR's OpenAPI (aka OpenVR), and Oculus API. SteamVR in the back translates calls to OpenVR into Oculus API calls in the back in order to utilize Oculus hardware. I doubt ED supports OpenXR yet. So, in the future, if Quest headsets stopped supporting Oculus API, and ED does not switch to OpenXR, like DCS did, then SteamVR might be the only way, other than VD. But not yet.

Here's the thing. SteamVR now supports OpenXR. And so do the newer Quest headsets. In fact, for newer Quest headset like Quest 3/S and Quest Pro, the default runtime is OpenXR. Oculus API is still supported but might go away in the future. So, you could set your Windows' default OpenXR runtime to be StreamVR, or you could in Quest Link settings set it as the default OpenXR runtime.

So, if you set Quest as your default OpenXR runtime. And you launch DCS, OpenXR will be called, and that will be Quest. But if you run ED, since ED does not support OpenXR, Oculus API will be called. That's still Quest headset.

But if you set SteamVR as your default OpenXR runtime, then when you launched DCS, actually, SteamVR's OpenXR runtime will be called, and it will in the back translate to Oculus API (if I am not mistaken). But the other possibility is that SteamVR's implementation is smart enough to realize even though its the system default OpenXR runtime, you has to search for the Oculus OpenXR runtime and use that (unlikely). But whatever that is, if you launched ED now, ED will call OpenVR, which is SteamVR, and then, StreamVR will translate the calls to Oculus API calls, which will then be your Quest API.




So, the point is that if you are going through SteamVR, you are very likely going through an additional StreamVR translation layer. Hence, my suggestion of running a "native" setup without the overhead. I doubt it would make much a difference on the fps measurement, but it's just not a very good baseline.
 
Not a Quest user, but what I find really confusing when testing VR stuff is making sure the playing field is level. For example when I tested Open Composite against SteamVR with my Reverb G2, the documentation for Open Composite says their supersampleratio setting is equal to SteamVR's scaling, but it clearly isn't. Which makes comparing difficult when testing. It doesn't help that the OpenXR toolkit seems to spit out the per eye resolution before scaling is applied, not after, so that was no help either.

I eventually went back to using SteamVR because my gaming scenario sort of relies on reprojection, and I found it to much, much worse using Open Composite than SteamVR. While the performance was kind of comparable, the visual quality was much worse when reprojection kicked in. That kind of surprised me.
Good point well made.
When running ED with VD & OC I checked the HMD per eye resolution using the "OpenXR Companion Tookit App", and it gave me 2109 x 2208.
For Steam VR the per eye resolution was 150% or 2528 x 2704
 
Huh.... I have been playing ED since release day, and switched to VR since Oculus Rift CV1 (actually, I did Rift DK2, but that was terrible so I switched back to pancake) -- with just a cable and no StreamVR, nor VD. I have never used StreamVR other than for HalfLife Alyx. In fact, I never signed up for Steam until HalfLife Alyx necessitated it. I still don't have VD. I never run StreamVR when playing ED (I could, but I don't). You just have to check that box to allow 3rd party app to use Oculus in Oculus settings.

AFAIK, ED supports both SteamVR's OpenAPI (aka OpenVR), and Oculus API. SteamVR in the back translates calls to OpenVR into Oculus API calls in the back in order to utilize Oculus hardware. I doubt ED supports OpenXR yet. So, in the future, if Quest headsets stopped supporting Oculus API, and ED does not switch to OpenXR, like DCS did, then SteamVR might be the only way, other than VD. But not yet.

Here's the thing. SteamVR now supports OpenXR. And so do the newer Quest headsets. In fact, for newer Quest headset like Quest 3/S and Quest Pro, the default runtime is OpenXR. Oculus API is still supported but might go away in the future. So, you could set your Windows' default OpenXR runtime to be StreamVR, or you could in Quest Link settings set it as the default OpenXR runtime.

So, if you set Quest as your default OpenXR runtime. And you launch DCS, OpenXR will be called, and that will be Quest. But if you run ED, since ED does not support OpenXR, Oculus API will be called. That's still Quest headset.

But if you set SteamVR as your default OpenXR runtime, then when you launched DCS, actually, SteamVR's OpenXR runtime will be called, and it will in the back translate to Oculus API (if I am not mistaken). But the other possibility is that SteamVR's implementation is smart enough to realize even though its the system default OpenXR runtime, you has to search for the Oculus OpenXR runtime and use that (unlikely). But whatever that is, if you launched ED now, ED will call OpenVR, which is SteamVR, and then, StreamVR will translate the calls to Oculus API calls, which will then be your Quest API.




So, the point is that if you are going through SteamVR, you are very likely going through an additional StreamVR translation layer. Hence, my suggestion of running a "native" setup without the overhead. I doubt it would make much a difference on the fps measurement, but it's just not a very good baseline.
I only use the Q3 with WiFi not a link cable
 
Good point well made.
When running ED with VD & OC I checked the HMD per eye resolution using the "OpenXR Companion Tookit App", and it gave me 2109 x 2208.
For Steam VR the per eye resolution was 150% or 2528 x 2704
Sorry, I seem to be blind. Where does the companion app provide the resolution info? All I can find is either with the in-headset menu under system>override resolution, or the OpenXR app's logfile, which also only gives "Using OpenXR resolution (no upscaling): 3160x3096", which is the same the menu shows. And I checked that the opencomposite.ini is actually working, cause I set scaling to 0.1 which made it a blurry mess as expected. Still the same in the log file.
 
Sorry, I seem to be blind. Where does the companion app provide the resolution info? All I can find is either with the in-headset menu under system>override resolution, or the OpenXR app's logfile, which also only gives "Using OpenXR resolution (no upscaling): 3160x3096", which is the same the menu shows. And I checked that the opencomposite.ini is actually working, cause I set scaling to 0.1 which made it a blurry mess as expected. Still the same in the log file.
Yes, found in headset OpenXR Toolkit Companion App>System>Override Resolution = Current HMD per eye resolution, which for me was 2109 x 2208
 
Yes, found in headset OpenXR Toolkit Companion App>System>Override Resolution = Current HMD per eye resolution, which for me was 2109 x 2208
Ah okay so it is not in the app, it is the on-screen menu. Yes, I found that, that is always the same for me, no matter what I set the scaling factor is set to, even though you can physically see how resolution changes with changing that factor in the opencomposite.ini.
 
You can't run ED in VR with just the cable, you need either SteamVR or another application like Virtual Desktop

I only use the Q3 with WiFi not a link cable
Perhaps you should try other ways other than the way you have always done it, instead of a bold claim the other way doesn't work? Like the official supported way of running Quest PCVR with a link cable, particularly in doing comparisons. I mean, just as a baseline, perhaps? The phrase cover your bases does matter here.
 
It sounds weird that you'd get blurrier results with a higher render resolution, different runtime or no...

Other than switching off "Advanced Supersample Filtering" in SteamVR video settings (less blur, more jaggies), I can not imagine why that would be, and must wonder if that is not something that happens on the video transfer side of things, rather than elsewhere in the pipeline... Virtual Desktop supposedly has least lossy compression between itself, Oculus Link, and Steam Link, but I presume there are quality/bandwidth settings for each..? I believe Steam Link is supposed to do some "foveation" on the frame transport, favouring quality in the middle for the frame, at the sacrifice of detail in the periphery..? (EDIT: I am using a wired headset myself, so have only second hand information.)

You do not happen to have some sharpening filter active in OpenXR Toolkit, or Virtual Desktop?
 
Virtual Desktop allows SnapDragon Super Resolution which gives a visibly clearer picture for no performance cost that I can see, and is the main reason I use it now.
 
Yes, but as it’s done by the HMD there isn’t a PC performance cost. It’s been like getting a free hardware upgrade - a minor one to be sure, but with visible results.
Neat! Do you feel comfortable with judging the result in comparison with the game's built-in FSR1?

I wonder if it could include some mitigation strategy targetted specifically at compression artefacts...
 
Neat! Do you feel comfortable with judging the result in comparison with the game's built-in FSR1?

I wonder if it could include some mitigation strategy targetted specifically at compression artefacts...
I’m away from my PC for the next month unfortunately, so I can’t do any comparison stuff, but I don’t use in-game FSR so the SDSR is upscaling the native image.
 
Back
Top Bottom