- Khronos’ Monado Improvements Project 2023
- RFP
- Work done during this project
- Refactoring the layer “squashing” code to process each view separately - #2
- Refactoring of the compositor graphics pipeline code to the new render architecture - #3
- New code for cylinder and equirect2 layer types to compute path and equirect - #4
- Addition of the layer “squasher” helper function(s) - #5
- Implement
XR_KHR_visibility_mask
- #7 - Implement
XR_KHR_vulkan_swapchain_format_list
- #8 - Improve spaces - #9
- Implement
XrEventDataReferenceSpaceChangePending
- #10 - IPC improvement - #11
- Implementation of an interface for tracking plugins - #12
- Implement
XR_EXT_conformance_automation
- #13
- Pending topics
- Enhancements to the compositor so that it uses
xrt_space
for poses - Implementation of “Direct Mode” compositor target on Windows
- Implementation of Helper code and configuration format for device attachment hierarchy
- Work on extension :
XR_EXT_debug_utils
- Work on extension :
XR_EXT_eye_gaze_interaction
- Work on extension :
XR_EXT_hand_joints_motion_range
- Work on extension :
XR_EXT_palm_pose
- Work on extension :
XR_EXT_win32_appcontainer_compatible
- Improvements to binding code to lay the foundations for user-driven input remapping, aka action based remapping
- Mac support (Apple SoC)
- Enhancements to the compositor so that it uses
Khronos’ Monado Improvements Project 2023
This project ran from September 2023 to January 2024, with the purpose of implementing specific features within the Monado OpenXR Runtime deemed useful by the Khronos OpenXR Working Group.
Total hours: 480 hours
RFP
The Khronos Group issued an RFP for the Monado Improvements project on July 3rd 2023. Collabora was selected as the contractor for the project, which ran from September 2023 to February 2024.
Work done during this project
Refactoring the layer “squashing” code to process each view separately - #2
Closed
Rework of Monado’s compute renderer to dispatch the rendering process once per view. This reduces the number of samplers required and allows a per-view target
Refactoring of the compositor graphics pipeline code to the new render architecture - #3
Closed
Complete rework of Monado’s graphics pipeline, improving our Vulkan code on all sides.
- Monado MR !1969
- Monado MR !1970
- Monado MR !1971
- Monado MR !1972
- Monado MR !1974
- Monado MR !1976
- Monado MR !1983
- Monado MR !1995
- Monado MR !2026
- Monado MR !2101
- Monado MR !2103
- Monado MR !2105
New code for cylinder and equirect2 layer types to compute path and equirect - #4
Closed
Follow up of #2, the cylinder and equirect2 layers were deactivated during the refactoring, the shaders were improved before plugging them back in.
Addition of the layer “squasher” helper function(s) - #5
Closed
Refactor of the compositor’s utils functions, to have better and more coherent helper functions to take account of the device pose and scratch images.
Implement XR_KHR_visibility_mask
- #7
Closed
Implement XR_KHR_vulkan_swapchain_format_list
- #8
Closed
Improve spaces - #9
Closed
Enhance the Monado “spaces” by implementing XR_EXT_local_floor and XR_MSFT_unbounded_reference_space, and adding the capability to recenter.
Implement XrEventDataReferenceSpaceChangePending
- #10
Closed
IPC improvement - #11
Closed
Improve the general state of the Monado IPC, make it more flexible and generic.
- Monado MR !2009
- Monado MR !2011
- Monado MR !2012
- Monado MR !2015
- Monado MR !2022
- Monado MR !2025
- Monado MR !2028
- Monado MR !2030
- Monado MR !2046
- Monado MR !2053
- Monado MR !2079
- Monado MR !2095
- Monado MR !2096
Implementation of an interface for tracking plugins - #12
Closed
Add a C interface to Monado (with a C++ helper) to dynamically load VIT (Visual Intertial Tracking) systems.
The VIT interface has been implemented in Basalt as a testing ground (not part of the Khronos-funded project).
We moved the interface files into their own repo.
Implement XR_EXT_conformance_automation
- #13
In Progress
Pending topics
These were tasks that were in scope for the project but could not be completed in the funded time available.
Enhancements to the compositor so that it uses xrt_space
for poses
Follow up work for the Monado space work.
Implementation of “Direct Mode” compositor target on Windows
Requires specialized hardware following the EDID extension for head-mounted and specialized monitors 2 spec.
Some work has been on the subject 2 years ago.` Monado MR !738
Implementation of Helper code and configuration format for device attachment hierarchy
Improve the xrt_device creation process to logically group devices together without having to create a builder for every device combination.
Work on extension : XR_EXT_debug_utils
All of the ground work is already done. The oxr_logger object in the state tracker needs to be extended to collect and push messages to the application. Optionally the work done on the IPC can be used to get data
Work on extension : XR_EXT_eye_gaze_interaction
Parts of the work is already done in Monado, the state tracker part is done and some work in the service is to be done.
Needs hardware supporting eyes tracking.
Work on extension : XR_EXT_hand_joints_motion_range
A new interface in Monado to have hand-trackers per hand is needed.
Work on extension : XR_EXT_palm_pose
The extension implementation is complete. The remaining work is to collect grip pose to palm pose offset data from as many controllers as possible.
Work on extension : XR_EXT_win32_appcontainer_compatible
Requires more Windows knowledge, figure out the installer and a way to create the swapchain on the server and share the handles to the client due to permission restrictions.
Improvements to binding code to lay the foundations for user-driven input remapping, aka action based remapping
Requires a lot of rework on Monado’s input code, blocked by another project.
Mac support (Apple SoC)
This issue is almost a project of its own. We outlined the work in an issue on the Monado repo.