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.