Developers - mbucchia/VirtualDesktop-OpenXR GitHub Wiki
VirtualDesktopXR can be used to develop OpenXR applications without going through SteamVR.
VirtualDesktopXR is not an officially conformant runtime. It cannot be called "conformant" nor use the OpenXR trademark and logo. It does pass the majority of Khronos OpenXR Conformance Test Suite. While the developer of VirtualDesktopXR wishes to claim official conformance, the Khronos group requires an adopter fee of $30,000 for the conformance submission, which is not affordable for the development team.
The following features/extensions are supported:
Feature | Extension(s) | Notes/Limitations |
---|---|---|
Projection layers | - | - |
Quad layers | - | [1] |
Cylinder layers | XR_KHR_composition_layer_cylinder |
[1] |
Depth submission | XR_KHR_composition_layer_depth |
- |
Direct3D 11 | XR_KHR_D3D11_enable |
- |
Direct3D 12 | XR_KHR_D3D12_enable |
- |
Vulkan | XR_KHR_vulkan_enable , XR_KHR_vulkan_enable2 |
[2] |
OpenGL | XR_KHR_opengl_enable |
- |
Hidden area mesh | XR_KHR_visibility_mask |
- |
Stage reference space | - | - |
Motion controllers | - | [3] |
Palm pose | XR_EXT_palm_pose |
- |
Hand joints tracking | XR_EXT_hand_tracking , XR_EXT_hand_tracking_data_source , XR_FB_hand_tracking_aim |
- |
Body joints tracking | XR_FB_body_tracking , XR_META_body_tracking_full_body , XR_META_body_tracking_fidelity |
- |
Vive Tracker emulation | XR_HTCX_vive_tracker_interaction |
[4] |
Quest Pro eye tracking | XR_EXT_eye_gaze_interaction |
- |
Quest Pro face tracking | XR_FB_face_tracking , XR_FB_face_tracking2 , XR_FB_eye_tracking_social |
- |
Audio routing | XR_OCULUS_audio_device_guid |
- |
Headless mode | XR_MND_headless |
- |
32-bit support | - | - |
Timestamp conversion | XR_KHR_win32_convert_performance_counter_time |
- |
Advanced tracing | - | - |
Debugging with RenderDoc | - | - |
UWP App Container applications | XR_EXT_win32_appcontainer_compatible |
- |
[1] XrCompositionLayerQuad::eyeVisibility
is ignored and assumed to be XR_EYE_VISIBILITY_BOTH
.
[2] When using XR_KHR_vulkan_enable
, care must be taken by the application to enable timeline semaphores (append a VkPhysicalDeviceTimelineSemaphoreFeatures
struct to the call to vkCreateDevice()
).
[3] Oculus Touch controller is supported. Additional capabilities of the Oculus Touch Pro controller are not supported. Additional haptics capabilities such as buffered haptics are not supported.
[4] Vive Trackers are emulated using body joints location.