2020-03-13 22:35:58 +00:00
|
|
|
# Changelog for Monado
|
|
|
|
|
2020-03-18 16:42:27 +00:00
|
|
|
```txt
|
|
|
|
SPDX-License-Identifier: CC0-1.0
|
|
|
|
SPDX-FileCopyrightText: 2020 Collabora, Ltd. and the Monado contributors
|
|
|
|
```
|
|
|
|
|
2020-05-29 09:53:37 +00:00
|
|
|
## Monado 0.2 (2020-05-29)
|
|
|
|
|
|
|
|
- Major changes
|
|
|
|
- Add support for a new service process. This process houses the hardware drivers
|
|
|
|
and compositor. In order to do this, a whole new subsection of Monado called
|
|
|
|
ipc
|
|
|
|
was added. It lives in `src/xrt/ipc` and sits between the state trackers
|
|
|
|
and
|
|
|
|
the service hosting the drivers and compositor.
|
|
|
|
([!295](https://gitlab.freedesktop.org/monado/monado/merge_requests/295))
|
|
|
|
- Support optional systemd socket-activation: if not disabled at configure time,
|
|
|
|
`monado-service` can be launched by systemd as a service with an associated
|
|
|
|
socket. If the service is launched this way, it will use the systemd-created
|
|
|
|
domain socket instead of creating its own. (If launched manually, it will still
|
|
|
|
create its own as normal.) This allows optional auto-launching of the service
|
|
|
|
when running a client (OpenXR) application. Associated systemd unit files are
|
|
|
|
also included.
|
|
|
|
([!306](https://gitlab.freedesktop.org/monado/monado/merge_requests/306))
|
|
|
|
- XRT Interface
|
|
|
|
- Add a new settings interface for transporting camera settings, in
|
|
|
|
`xrt/xrt_settings.h`.
|
|
|
|
([!266](https://gitlab.freedesktop.org/monado/monado/merge_requests/266))
|
|
|
|
- Make it possible to send JSON object to drivers when probing for devices.
|
|
|
|
([!266](https://gitlab.freedesktop.org/monado/monado/merge_requests/266))
|
|
|
|
- Added new `xrt_instance` object to be root object, a singleton that allows us
|
|
|
|
to
|
|
|
|
better swap out the whole stack underneath the state trackers. This is now
|
|
|
|
implemented by the `xrt_prober` code and used by the OpenXR state tracker.
|
|
|
|
([!274](https://gitlab.freedesktop.org/monado/monado/merge_requests/274))
|
|
|
|
- Remove the `struct timestate` argument from the `struct xrt_device` interface.
|
|
|
|
It should be easy to write a driver and the state tracker should be the one
|
|
|
|
that tracks this state. It was mostly triggered by the out of process
|
|
|
|
compositor work.
|
|
|
|
([!280](https://gitlab.freedesktop.org/monado/monado/merge_requests/280))
|
|
|
|
- Add the new format `XRT_FORMAT_UYVY422` to the interface and various parts of
|
|
|
|
the code where it is needed to be supported, like the conversion functions and
|
|
|
|
calibration code. Also rename the `XRT_FORMAT_YUV422` to `XRT_FORMAT_YUYV422`.
|
|
|
|
([!283](https://gitlab.freedesktop.org/monado/monado/merge_requests/283))
|
|
|
|
- Expose manufacturer and serial number in the prober interface, right now only
|
|
|
|
for the video device probing. But this is the only thing that really requires
|
|
|
|
this in order to tell different cameras apart.
|
|
|
|
([!286](https://gitlab.freedesktop.org/monado/monado/merge_requests/286))
|
|
|
|
- Add `XRT_CAST_PTR_TO_OXR_HANDLE` and `XRT_CAST_OXR_HANDLE_TO_PTR` macros to
|
|
|
|
perform warning-free conversion between pointers and OpenXR handles, even on
|
|
|
|
32-bit platforms. They should be used instead of raw casts.
|
|
|
|
([!294](https://gitlab.freedesktop.org/monado/monado/merge_requests/294))
|
|
|
|
- Remove declaration and implementations of `xrt_prober_create`: the minimal
|
|
|
|
functionality previously performed there should now be moved to
|
|
|
|
`xrt_instance_create`.
|
|
|
|
([!347](https://gitlab.freedesktop.org/monado/monado/merge_requests/347))
|
|
|
|
- State Trackers
|
|
|
|
- gui: Fix compilation issue in `st/gui` when building without OpenCV.
|
|
|
|
([#63](https://gitlab.freedesktop.org/monado/monado/issues/63),
|
|
|
|
[!256](https://gitlab.freedesktop.org/monado/monado/merge_requests/256))
|
|
|
|
- OpenXR: Don't return struct with invalid type from
|
|
|
|
`xrEnumerateViewConfigurationViews`.
|
|
|
|
([!234](https://gitlab.freedesktop.org/monado/monado/merge_requests/234))
|
|
|
|
- prober: Print more information from the prober when spewing.
|
|
|
|
([!261](https://gitlab.freedesktop.org/monado/monado/merge_requests/261))
|
|
|
|
- gui: Save camera and calibration data using new settings structs and format.
|
|
|
|
([!266](https://gitlab.freedesktop.org/monado/monado/merge_requests/266))
|
|
|
|
- prober: Load tracking config from json and use new settings struct.
|
|
|
|
([!266](https://gitlab.freedesktop.org/monado/monado/merge_requests/266))
|
|
|
|
- gui: Fix name not being shown when video device does not have any modes.
|
|
|
|
([!269](https://gitlab.freedesktop.org/monado/monado/merge_requests/269))
|
|
|
|
- gui: Remove old video test scene, never used and seemed to be broken.
|
|
|
|
([!275](https://gitlab.freedesktop.org/monado/monado/merge_requests/275))
|
|
|
|
- gui: Fix build when OpenCV is not available or disabled.
|
|
|
|
([!292](https://gitlab.freedesktop.org/monado/monado/merge_requests/292))
|
|
|
|
- OpenXR: Fix build when OpenGL is not enabled.
|
|
|
|
([!292](https://gitlab.freedesktop.org/monado/monado/merge_requests/292))
|
|
|
|
- OpenXR: Validate that we support the given `XR_ENVIRONMENT_BLEND_MODE` as
|
|
|
|
according to the OpenXR spec. And better print the error messages.
|
|
|
|
([!345](https://gitlab.freedesktop.org/monado/monado/merge_requests/345))
|
|
|
|
- OpenXR: Validate given `displayTime` in `xrEndFrame` as required by the spec.
|
|
|
|
([!345](https://gitlab.freedesktop.org/monado/monado/merge_requests/345))
|
|
|
|
- OpenXR: Validate internal state that we get from the compositor.
|
|
|
|
([!345](https://gitlab.freedesktop.org/monado/monado/merge_requests/345))
|
|
|
|
- OpenXR: Validate time better in xrConvertTimeToTimespecTimeKHR and add better
|
|
|
|
error print.
|
|
|
|
([!348](https://gitlab.freedesktop.org/monado/monado/merge_requests/348))
|
|
|
|
- OpenXR: Correctly translate the `XrSwapchainCreateFlags` flags to xrt ones.
|
|
|
|
([!349](https://gitlab.freedesktop.org/monado/monado/merge_requests/349))
|
|
|
|
- OpenXR: In order to be able to correctly validate `XrPath` ids turn them
|
|
|
|
into a atom and keep all created paths in a array.
|
|
|
|
([!349](https://gitlab.freedesktop.org/monado/monado/merge_requests/349))
|
|
|
|
- OpenXR: Give better error messages on invalid poses in quad layers instead of
|
|
|
|
using the simple macro.
|
|
|
|
([!350](https://gitlab.freedesktop.org/monado/monado/merge_requests/350))
|
|
|
|
- OpenXR: Validate poses for project layer views, using the same expressive error
|
|
|
|
messages as the quad layers.
|
|
|
|
([!350](https://gitlab.freedesktop.org/monado/monado/merge_requests/350))
|
|
|
|
- OpenXR: Translate the swapchain usage bits from OpenXR enums to Monado's
|
|
|
|
internal enums.
|
|
|
|
([!350](https://gitlab.freedesktop.org/monado/monado/merge_requests/350))
|
|
|
|
- OpenXR: Report a spec following amount of maximum layers supported.
|
|
|
|
([!354](https://gitlab.freedesktop.org/monado/monado/merge_requests/354))
|
|
|
|
- OpenXR: Correctly reject invalid times given to `xrLocateSpace`.
|
|
|
|
([!354](https://gitlab.freedesktop.org/monado/monado/merge_requests/354))
|
|
|
|
- OpenXR: Correctly handle the space relation flag bits, some old hacked up code
|
|
|
|
left over since Monado's first days have been removed.
|
|
|
|
([!356](https://gitlab.freedesktop.org/monado/monado/merge_requests/356))
|
|
|
|
- Drivers
|
|
|
|
- dd: Add a driver for the Google Daydream View controller.
|
|
|
|
([!242](https://gitlab.freedesktop.org/monado/monado/merge_requests/242))
|
|
|
|
- all: Use new pre-filter and 3-DoF filter in drivers.
|
|
|
|
([!249](https://gitlab.freedesktop.org/monado/monado/merge_requests/249))
|
|
|
|
- arduino: Added a Arduino based flexible input device driver, along with
|
|
|
|
Arduino C++ code for it.
|
|
|
|
([!251](https://gitlab.freedesktop.org/monado/monado/merge_requests/251))
|
|
|
|
- psmv: Use all 6 measurements to compute acceleration bias, and port to new
|
|
|
|
IMU prefilter.
|
|
|
|
([!255](https://gitlab.freedesktop.org/monado/monado/merge_requests/255))
|
|
|
|
- v4l2: Add special tweaks for the ELP camera.
|
|
|
|
([!266](https://gitlab.freedesktop.org/monado/monado/merge_requests/266))
|
|
|
|
- vive: Add basic 3DOF driver for Vive Wand Controller with full input support
|
|
|
|
and
|
|
|
|
Valve Index Controller with partial input support.
|
|
|
|
([!281](https://gitlab.freedesktop.org/monado/monado/merge_requests/281))
|
|
|
|
- psvr: Use a better 3dof fusion for the PSVR when no tracking is available.
|
|
|
|
([!282](https://gitlab.freedesktop.org/monado/monado/merge_requests/282))
|
|
|
|
- psvm: Move the led and rumble updating from the application facing
|
|
|
|
update_inputs
|
|
|
|
function to the internal thread instead.
|
|
|
|
([!287](https://gitlab.freedesktop.org/monado/monado/merge_requests/287))
|
|
|
|
- psmv: Fix failure to build from source on PPC.
|
|
|
|
([!288](https://gitlab.freedesktop.org/monado/monado/merge_requests/288),
|
|
|
|
[#69](https://gitlab.freedesktop.org/monado/monado/issues/69))
|
|
|
|
- Compositor
|
|
|
|
- main: Fix XCB memory leaks and correctly use XCB/Xlib interop.
|
|
|
|
([!257](https://gitlab.freedesktop.org/monado/monado/merge_requests/257))
|
|
|
|
- main: Shorten Vulkan initializers.
|
|
|
|
([!259](https://gitlab.freedesktop.org/monado/monado/merge_requests/259))
|
|
|
|
- main: Port XCB and direct mode back ends to plain C.
|
|
|
|
([!262](https://gitlab.freedesktop.org/monado/monado/merge_requests/262))
|
|
|
|
- main: Add support for Vive Pro, Valve Index, Oculus DK1, DK2 and CV1 to NVIDIA
|
|
|
|
direct mode.
|
|
|
|
([!263](https://gitlab.freedesktop.org/monado/monado/merge_requests/263))
|
|
|
|
- client: Make sure that the number of images is decided by the fd compositor.
|
|
|
|
([!270](https://gitlab.freedesktop.org/monado/monado/merge_requests/270))
|
|
|
|
- main: Split RandR and NVIDIA direct mode window back ends.
|
|
|
|
([!271](https://gitlab.freedesktop.org/monado/monado/merge_requests/271))
|
|
|
|
- main: Improve synchronization and remove redundant vkDeviceWaitIdle calls.
|
|
|
|
([!277](https://gitlab.freedesktop.org/monado/monado/merge_requests/277))
|
|
|
|
- main: Delay the destruction of swapchains until a time where it is safe, this
|
|
|
|
allows swapchains to be destroyed from other threads.
|
|
|
|
([!278](https://gitlab.freedesktop.org/monado/monado/merge_requests/278))
|
|
|
|
- client: Propegate the supported formats from the real compositor to the client
|
|
|
|
ones. ([!282](https://gitlab.freedesktop.org/monado/monado/merge_requests/282))
|
|
|
|
- renderer: Change the idle images colour from bright white to grey.
|
|
|
|
([!282](https://gitlab.freedesktop.org/monado/monado/merge_requests/282))
|
|
|
|
- main: Add support for multiple projection layers.
|
|
|
|
([!340](https://gitlab.freedesktop.org/monado/monado/merge_requests/340))
|
|
|
|
- main: Implement quad layers.
|
|
|
|
([!340](https://gitlab.freedesktop.org/monado/monado/merge_requests/340))
|
|
|
|
- main: Only allocate one image for static swapchains.
|
|
|
|
([!349](https://gitlab.freedesktop.org/monado/monado/merge_requests/349))
|
|
|
|
- Helper Libraries
|
|
|
|
- tracking: Add image undistort/normalize cache mechanism, to avoid needing to
|
|
|
|
remap every frame.
|
|
|
|
([!255](https://gitlab.freedesktop.org/monado/monado/merge_requests/255))
|
|
|
|
- tracking: Improve readability and documentation of IMU fusion class.
|
|
|
|
([!255](https://gitlab.freedesktop.org/monado/monado/merge_requests/255))
|
|
|
|
- u/file: Add file helpers to load files from config directory.
|
|
|
|
([!266](https://gitlab.freedesktop.org/monado/monado/merge_requests/266))
|
|
|
|
- u/json: Add bool getter function.
|
|
|
|
([!266](https://gitlab.freedesktop.org/monado/monado/merge_requests/266))
|
|
|
|
- tracking: Expose save function with none hardcode path for calibration data.
|
|
|
|
([!266](https://gitlab.freedesktop.org/monado/monado/merge_requests/266))
|
|
|
|
- tracking: Remove all path hardcoded calibration data loading and saving
|
|
|
|
functions.
|
|
|
|
([!266](https://gitlab.freedesktop.org/monado/monado/merge_requests/266))
|
|
|
|
- threading: New helper functions and structs for doing threaded work, these are
|
|
|
|
on a higher level then the one in os wrappers.
|
|
|
|
([!278](https://gitlab.freedesktop.org/monado/monado/merge_requests/278))
|
|
|
|
- threading: Fix missing `#pragma once` in `os/os_threading.h`.
|
|
|
|
([!282](https://gitlab.freedesktop.org/monado/monado/merge_requests/282))
|
|
|
|
- u/time: Temporarily disable the time skew in time state and used fixed offset
|
|
|
|
instead to fix various time issues in `st/oxr`. Will be fixed properly later.
|
|
|
|
([!348](https://gitlab.freedesktop.org/monado/monado/merge_requests/348))
|
|
|
|
- math: Correctly validate quaternion using non-squared "length" instead of
|
|
|
|
squared "length", certain combinations of elements would produce valid regular
|
|
|
|
"length" but not valid squared ones.
|
|
|
|
([!350](https://gitlab.freedesktop.org/monado/monado/merge_requests/350))
|
|
|
|
- Misc. Features
|
|
|
|
- build: Refactor CMake build system to make static (not object) libraries and
|
|
|
|
explicitly describe dependencies.
|
|
|
|
([!233](https://gitlab.freedesktop.org/monado/monado/merge_requests/233),
|
|
|
|
[!237](https://gitlab.freedesktop.org/monado/monado/merge_requests/237),
|
|
|
|
[!238](https://gitlab.freedesktop.org/monado/monado/merge_requests/238),
|
|
|
|
[!240](https://gitlab.freedesktop.org/monado/monado/merge_requests/240))
|
|
|
|
- os/ble: Add utility functionality for accessing Bluetooth Low-Energy (Bluetooth
|
|
|
|
LE or BLE) over D-Bus, in `os/os_ble.h` and `os/os_ble_dbus.c`.
|
|
|
|
([!242](https://gitlab.freedesktop.org/monado/monado/merge_requests/242))
|
|
|
|
- util: Add some bit manipulation helper functions in `util/u_bitwise.c` and
|
|
|
|
`util/u_bitwise.c`.
|
|
|
|
([!242](https://gitlab.freedesktop.org/monado/monado/merge_requests/242))
|
|
|
|
- tracking: Make stereo_camera_calibration reference counted, and have the
|
|
|
|
prober,
|
|
|
|
not the calibration, call the save function.
|
|
|
|
([!245](https://gitlab.freedesktop.org/monado/monado/merge_requests/245))
|
|
|
|
- math: Expand algebraic math functions in `math/m_api.h`, `math/m_vec3.h` and
|
|
|
|
`math/m_base.cpp`.
|
|
|
|
([!249](https://gitlab.freedesktop.org/monado/monado/merge_requests/249))
|
|
|
|
- math: Add pre-filter and a simple understandable 3-DoF fusion filter.
|
|
|
|
([!249](https://gitlab.freedesktop.org/monado/monado/merge_requests/249))
|
|
|
|
- build: Enable the build system to install `monado-cli` and `monado-gui`.
|
|
|
|
([!252](https://gitlab.freedesktop.org/monado/monado/merge_requests/252))
|
|
|
|
- build: Unify inputs for generated files between CMake and Meson builds.
|
|
|
|
([!252](https://gitlab.freedesktop.org/monado/monado/merge_requests/252))
|
|
|
|
- build: Support building with system cJSON instead of bundled copy.
|
|
|
|
([!284](https://gitlab.freedesktop.org/monado/monado/merge_requests/284),
|
|
|
|
[#62](https://gitlab.freedesktop.org/monado/monado/issues/62))
|
|
|
|
- ci: Perform test builds using the Android NDK (for armeabi-v7a and armv8-a).
|
|
|
|
This is not a full Android port (missing a compositor, etc) but it ensures we
|
|
|
|
don't add more Android porting problems.
|
|
|
|
([!292](https://gitlab.freedesktop.org/monado/monado/merge_requests/292))
|
|
|
|
- Misc. Fixes
|
|
|
|
- os/ble: Check if `org.bluez` name is available before calling in
|
|
|
|
`os/os_ble_dbus.c`.
|
|
|
|
([#65](https://gitlab.freedesktop.org/monado/monado/issues/65),
|
|
|
|
[#64](https://gitlab.freedesktop.org/monado/monado/issues/64),
|
|
|
|
[!265](https://gitlab.freedesktop.org/monado/monado/merge_requests/265))
|
|
|
|
- README: Added information to the README containing OpenHMD version requirement
|
|
|
|
and information regarding the requirement of `GL_EXT_memory_object_fd` and
|
|
|
|
limitations on Monado's compositor.
|
|
|
|
([!4](https://gitlab.freedesktop.org/monado/monado/merge_requests/4))
|
|
|
|
- build: Fix build issues and build warnings when 32-bit.
|
|
|
|
([!230](https://gitlab.freedesktop.org/monado/monado/merge_requests/230))
|
|
|
|
- os/ble: Fix crash due to bad dbus path, triggered by bad return checking when
|
|
|
|
probing for BLE devices.
|
|
|
|
([!247](https://gitlab.freedesktop.org/monado/monado/merge_requests/247))
|
|
|
|
- d/dd: Use the correct time delta in DayDream driver.
|
|
|
|
([!249](https://gitlab.freedesktop.org/monado/monado/merge_requests/249))
|
|
|
|
- doc: Stop changelog snippets from showing up in 'Related Pages'
|
|
|
|
([!253](https://gitlab.freedesktop.org/monado/monado/merge_requests/253))
|
|
|
|
- build: Fix meson warnings, increase compiler warning level.
|
|
|
|
([!258](https://gitlab.freedesktop.org/monado/monado/merge_requests/258))
|
|
|
|
- os/ble: Fix leak in `os/os_ble_dbus.c` code when failing to find any device.
|
|
|
|
([!264](https://gitlab.freedesktop.org/monado/monado/merge_requests/264))
|
|
|
|
- os/ble: Make ble code check for some error returns in `os/os_ble_dbus.c`.
|
|
|
|
([!265](https://gitlab.freedesktop.org/monado/monado/merge_requests/265))
|
|
|
|
- u/hashset: Fix warnings in `util/u_hashset.h` after pedantic warnings were
|
|
|
|
enabled for C++.
|
|
|
|
([!268](https://gitlab.freedesktop.org/monado/monado/merge_requests/268))
|
|
|
|
- build: Fix failure to build from source on ppc64 and s390x.
|
|
|
|
([!284](https://gitlab.freedesktop.org/monado/monado/merge_requests/284))
|
|
|
|
- build: Mark OpenXR runtime target in CMake as a MODULE library, instead of a
|
|
|
|
SHARED library.
|
|
|
|
([!284](https://gitlab.freedesktop.org/monado/monado/merge_requests/284))
|
|
|
|
- windows: Way way back when Gallium was made `auxiliary` was named `aux` but
|
|
|
|
then
|
|
|
|
it was ported to Windows and it was renamed to `auxiliary` since Windows
|
|
|
|
is [allergic to filenames that match its device names](https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions)
|
|
|
|
(e.g., `AUX`, `CON`, `PRN`, etc.). Through the ages, this knowledge was lost
|
|
|
|
and so we find ourselves with the same problem. Although Monado inherited
|
|
|
|
the correct name, the same old mistake was made in docs.
|
|
|
|
([!314](https://gitlab.freedesktop.org/monado/monado/merge_requests/314))
|
|
|
|
- build: For CMake rename (nearly) all build options so they begin with `XRT_`
|
|
|
|
and match the defines used in the source. You will probably want to clear
|
|
|
|
your build directory and reconfigure from scratch.
|
|
|
|
([!327](https://gitlab.freedesktop.org/monado/monado/merge_requests/327))
|
|
|
|
- ipc: Correctly set the shared semaphore value when creating it, the wrong value
|
|
|
|
resulted in the client not blocking in `xrWaitFrame`.
|
|
|
|
([!348](https://gitlab.freedesktop.org/monado/monado/merge_requests/348))
|
|
|
|
- ipc: Previously some arguments where dropped at swapchain creation time,
|
|
|
|
correct pass them between the client and server.
|
|
|
|
([!349](https://gitlab.freedesktop.org/monado/monado/merge_requests/349))
|
|
|
|
|
2020-03-13 22:35:58 +00:00
|
|
|
## Monado 0.1.0 (2020-02-24)
|
|
|
|
|
|
|
|
Initial (non-release) tag to promote/support packaging.
|
2020-05-29 09:53:37 +00:00
|
|
|
|