February 15, 2021
We are pleased to announce that Monado now provides an officially conformant OpenXR implementation. The official listing of conformant OpenXR 1.0 implementations now includes Monado, based on running the OpenXR conformance test suite on a "simulated" device.
Note that the OpenXR 1.0 conformant status applies only to the simulated device. Anyone building a product using Monado with non-simulated hardware still needs to go through the full, normal adopter and conformance process for that product in order to claim OpenXR conformance and take advantage of the benefits. This resembles the situation with Mesa: though Mesa implements numerous Khronos APIs, not all API and driver combinations are formally conformant, and hardware vendors have the responsibility to follow the adopter process and submit conformance results.
Among other benefits of official adoption, this conformance result and adoption allows the Monado project to use the OpenXR word and logo trademarks to describe its feature set. This recognizes publicly that the Monado open-source project truly does implement OpenXR as specified.
In recognition of this conformance status, we have made our first proper release version, and have moved away from the pre-release
0.X.Y version series that we used before. This first officially conformant release is known as 21.0.0, rather than 1.0.0. Common SemVer conventions mainly address API stability. However, since the only public API to Monado is through the externally-maintained OpenXR specification, a standard SemVer number for Monado would remain at major version 1 for a long time despite advancements in the project.
Instead, we decided to follow the versioning model of fellow FreeDesktop.org project, Mesa: a hybrid of SemVer and date-based versioning. Monado version numbers going forward will take the form
MAJOR.MINOR.PATCH, where the first component (
MAJOR) is the last two digits of the year in which the branch was made. The
PATCH follows the SemVer conventions. The
MINOR version component is incremented for each release branch made through the year, and the
PATCH component is incremented for each release from that branch.
From its inception, Valve's SteamVR runtime has allowed hardware vendors, developers and hobbyists to add hardware support with an officially supported OpenVR driver SDK.
Monado now comes with a SteamVR driver that allows using any of Monado's HMD and controller drivers to be used inside SteamVR. Information on how to set up the SteamVR driver can be found on our website.
We will be talking about the SteamVR driver in a later blogpost.
Note: In the changelogs below,
xrt refers to the Monado-internal XR Run Time API used for communication between modules.
xrt_binding_profilestruct, related pair structs and fields on
xrt_deviceto allow to move the static rebinding of inputs and outputs into device drivers. This makes it easier to get a overview in the driver itself which bindings it can bind to. (!587)
xrt_system_compositor, it is basically a analogous to
XrSystemIDbut instead of being a fully fledged xrt_system this is only the compositor part of it. Also fold the
prepare_sessionfunction into the create native compositor function to simplify the interface. (!652)
comp_window, also refactor
vk_swapchainto be a sub-class of
comp_target_swapchain, the window backends now sub class
vk_create_devicenow takes in a list of Vulkan device extensions. (!605)
Earlier this month, Collabora took part in the very first KernelCI hackfest, initiated as a joint effort with the Google Chrome OS team.…
Despite the many obstacles brought on by the pandemic, Collabora has continued to grow its teams for the road ahead. Join us in welcoming…
We first announced our work on the driver last December, and posted an update earlier this year. We are now happy to announce a second update…