Meta's Unity & Unreal "OpenXR" SDKs Block Other PC VR Headsets, Developers Report

Home » Meta's Unity & Unreal "OpenXR" SDKs Block Other PC VR Headsets, Developers Report

Meta’s Unity and Unreal “OpenXR” integrations block other PC VR headsets, and developers aren’t happy about it.

OpenXR is the open standard API for AR/VR/MR supported by the vast majority of the industry. The ideal of OpenXR is that developers can build apps that run on any headset, without needing to use vendor-specific APIs for different hardware. But the reality, today at least, is more complicated.

Pretty much every headset and runtime (except Apple Vision Pro and PlayStation VR2 on PS5) supports OpenXR, sure. But companies like Meta and Pico still also offer their own integrations for Unity and Unreal.

These vendor-specific engine integrations promise the best of both worlds: support for both OpenXR and for unique features not yet present in OpenXR. But in Meta’s case, on PC, this promise isn’t kept. Despite being described as “OpenXR”, on PC Meta’s Unity and Unreal engines currently only work for Quest Link and Rift headsets, not any other PC VR headset. UploadVR has tested and confirmed this to be the case.

This means that any developer using these integrations, which Meta recommends and promotes, needs to implement a separate subsystem to support other PC VR headsets, the problem that OpenXR was supposed to solve. This is why many PC VR games still use SteamVR’s legacy OpenVR API, rather than any OpenXR implementation.

Facebook Deprecates Proprietary Oculus APIs In Favor Of OpenXR
Facebook will deprecate its proprietary Oculus APIs in favor of industry standard OpenXR. Facebook says new features “will be delivered via OpenXR extensions” starting with v31, echoing language release by Valve last year regarding new features on SteamVR being connected to OpenXR as well. According to Facebook, in August of

Software developer Matthieu Bucchianeri has been raising this issue in public for months now. Bucchianeri has worked on the PS4 and original PlayStation VR at Sony, Falcon 9 and Dragon at SpaceX, and HoloLens and Windows MR at Microsoft, where he currently works on Xbox. At Microsoft he contributed to OpenXR, and in his spare time he developed OpenXR Toolkit and VDXR, Virtual Desktop’s OpenXR runtime.

OpenXR Toolkit was discontinued in 2024, as Bucchianeri encourages developers to integrate its features inside their apps. Now, he has added a notice to the top of the OpenXR Toolkit website railing against Meta’s Unity and Unreal integrations, as well as a longer dedicated page further explaining the issue.

“Since 2024, the OpenXR ecosystem on PC is in bad health,” he writes:

This is not an accident: this concern was reported to Meta early in 2024 via official means in the Khronos group. Meta acknowledged purposedly blocking other platforms from running OpenXR content at that time.

This is not a technical limitation: some runtimes (VDXR) have made great efforts to implement “compatibility” modes. There are counter-measures to unblock the content on any platform, but they are very expensive to investigate and implement.

This is not a short-coming of OpenXR: as proven with many applications using OVRPlugin with counter-measures enabled, these applications can run on a conformant OpenXR implementation.”

Frustrated by Khronos, the industry consortium behind OpenXR (as well as other APIs like Vulkan and OpenGL), not taking action against Meta, Bucchianeri has now had his name removed from the OpenXR specification and public documents, after making a public request on the OpenXR GitHub.

After Bucchianeri’s request to have his name removed, Khronos released a public statement about the issue. In the statement, the group says that it “recognizes the challenges developers have faced with legacy APIs and platform-specific behaviors that limit XR application portability”, and is “dedicated to evolving OpenXR by incorporating vendor extensions into the core specification”.

It links to documentation for the built-in cross-platform OpenXR support of Unity, Unreal, and Godot, and recommends developers use those. Notably, the only mention of Meta in the statement is in reference to the “community discourse”.

This statement wasn’t enough for Bucchianeri though, who feels that Meta’s integrations, and Khronos’ lack of action against Meta, have made the OpenXR logo and trademark “no longer carry the same significance as before”:

“Unfortunately, since 2024, Khronos has refused to take actions to stop Meta’s OVRPlugin destructive initiative towards the PCVR ecosystem. By not taking any actions to resolve the issues created by Meta’s OVRPlugin, Khronos is sending the message that OpenXR is no longer a universal solution for cross-vendor and cross-platform support, that passing the CTS and being conformant mean nothing (conformant runtimes are precluded from running OpenXR apps), and that the OpenXR logo and trademark no longer carry the same significance as before in the PCVR ecosystem.

Meta has in the past signalled its intention to eventually move away from its own Unity integration towards supporting Unity’s built-in OpenXR subsystem. This wouldn’t preclude the company from adding new features. It already implements them as OpenXR extensions for apps using their own engine, and could deliver them on Unity as OpenXR extensions too. However, despite this, the company has recently continued to add some new features exclusively to its own integration package. And if developers only use that, their apps simply won’t work on other PC VR headsets.

We’ve reached out to Meta for any statement or context they can provide about this, and will update our article if we get a response.

Leave a Comment

Your email address will not be published. Required fields are marked *