-
Notifications
You must be signed in to change notification settings - Fork 61
Description
In light of the official description of OpenXR on the Khronos website1 and the loader specification overview2, it has been suggested by @sankhesh that we disambiguate by not using the term Runtime.
Within the context of OpenXR, what is traditionally referred to as a "Runtime" is the software that integrates with specific platforms and hardware, implementing an OpenXR API that can be queried and interacted with. Examples3 of these OpenXR Runtimes include Windows Mixed Reality (WMR), Oculus, SteamVR, and Varjo.
The usage of the term "Runtime" is corroborated by the vtkOpenXRManager::GetXrRuntimeInstance()4 docstring, confirming that communication occurs with a runtime instance.
///@{
/**
* Return the instance used to communicate with the runtime
*/
const XrInstance& GetXrRuntimeInstance() { return this->Instance; }
///@}Conclusion: The proposal is to transition to the term "Environment," as indicated in the "Overview" section of the OpenXR Loader Specifications2. Similarly, in the context of OpenVR, the term "Environment" is used to describe a comparable concept.
⚡ UPDATE ⚡: Following #152 (comment) from @LucasGandel, we will transition to the term Backend
In the sections below, you will find supporting material and references, along with information related to dealing with multiple environments and observations regarding the "incorrect" use of the "Runtime" qualifier from an OpenXR perspective.
Dealing with Multiple Runtimes
Considering that multiple OpenXR Environments may be installed on one system, users of OpenXR applications, such as the SlicerVirtualReality extension, must ensure that the correct one is activated. The xrsetenvironment tool5 may assist in streamlining this process.
"Incorrect" use of the Runtime qualifier
While documentation from projects like Unity appropriately describes OpenXR Runtimes6, there are instances of oversimplification in terminology, as seen in articles like "Steam VR vs OpenXR: Which Environment is Best?"7.
Description of OpenXR by khronos
OpenXR provides cross-platform [...] access directly into diverse XR device runtimes across multiple platforms. OpenXR enables applications and engines, including WebXR, to run on any system that exposes the OpenXR APIs.
Source: https://www.khronos.org/openxr/
Overview section of the OpenXR Loader Specs
| https://registry.khronos.org/OpenXR/specs/1.0/loader.html#Overview |
|---|
![]() |
Footnotes
-
https://registry.khronos.org/OpenXR/specs/1.0/loader.html#Overview ↩ ↩2
-
https://github.com/maluoi/openxr-explorer/blob/main/src/common/xr_runtime_default.h ↩
-
https://github.com/Kitware/VTK/blob/fe0411db8b8cd6638f006274fb62f46a85995747/Rendering/OpenXR/vtkOpenXRManager.h#L199-L204 ↩
-
https://github.com/maluoi/openxr-explorer/tree/main/src/xrsetruntime ↩
-
https://docs.unrealengine.com/5.0/en-US/openxr-prerequisites-in-unreal-engine/ ↩
-
https://pimax.com/steam-vr-vs-openxr-which-runtime-is-best/ ↩
