Deprecation of Vendor-specific XR Plugins in UE5.1

Deprecation of Vendor-specific XR Plugins in UE5.1

This article was written by Joe Conley

For a long time Epic created bespoke plugins for each head mounted display vendor. You can see many examples of it in the code, from OculusVR to SteamVR to Microsoft Mixed Reality, etc. This process involved solving the same problem in slightly different ways for each vendor (stereo rendering, frame pacing, lens distortion, etc), and the vendors didn’t always make the same decisions about how to solve a particular problem, so there were many individual plugins that required separate maintenance, and the implementations of the same feature for different vendors were of varying levels of quality.

Since that approach was infeasible to continue at scale, Epic and other major vendors in the industry formed the OpenXR consortium with Khronos. The result was the OpenXR specification that defines an API for how applications (in this case, Unreal Engine) should communicate with XR devices. It defines best practices and ensures that vendors and applications do things in a sensible, standard way, so that applications can implement for OpenXR once, and it should work across all OpenXR runtimes from different vendors.

OpenXR has been the main focus for head mounted display-related development at Epic for some time now, and with 5.1 we are deprecating the bespoke OculusVR and SteamVR plugins in favor of OpenXR (Windows Mixed Reality plugin had already been deprecated in favor of OpenXR in an earlier release).

There may be some vendor-specific features that may not be in the current version of the core OpenXR specification, but these may be available as vendor extensions to the OpenXR specification that the vendor implements in their runtime, and the vendors may also release a plugin that is used in conjunction with our OpenXR plugin for Unreal Engine to support the feature. As features mature and become common across multiple vendors, they may be added into the core OpenXR specification and Unreal Engine will add support as necessary. Some features may require a custom plugin from the vendor that is used instead of our OpenXR plugin, or even modifications to Unreal Engine, but support for third party plugins and engine modifications would have to be provided by the vendors that supply them.

Get more answers on the Knowledge Base!