mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2024-12-29 11:06:18 +00:00
doc: Update CHANGELOG.md
This commit is contained in:
parent
14fcd6be6a
commit
e7323e985a
295
doc/CHANGELOG.md
295
doc/CHANGELOG.md
|
@ -5,6 +5,301 @@ SPDX-License-Identifier: CC0-1.0
|
|||
SPDX-FileCopyrightText: 2020 Collabora, Ltd. and the Monado contributors
|
||||
```
|
||||
|
||||
## Monado 0.4.0 (2020-11-02)
|
||||
|
||||
- XRT Interface
|
||||
- add `xrt_device_type` to `xrt_device` to differentiate handed controllers
|
||||
from
|
||||
controllers that can be held in either hand.
|
||||
([!412](https://gitlab.freedesktop.org/monado/monado/merge_requests/412))
|
||||
- Rename functions and types that assumed the native graphics buffer handle type
|
||||
was an FD: in `auxiliary/vk/vk_helpers.{h,c}` `vk_create_image_from_fd` ->
|
||||
`vk_create_image_from_native`, in the XRT headers `struct xrt_compositor_fd` ->
|
||||
`xrt_compositor_native` (and method name changes from `xrt_comp_fd_...` ->
|
||||
`xrt_comp_native_...`), `struct xrt_swapchain_fd` -> `struct
|
||||
xrt_swapchain_native`, `struct xrt_image_fd` -> `struct xrt_image_native`, and
|
||||
corresponding parameter/member/variable name changes (e.g. `struct
|
||||
xrt_swapchain_fd *xscfd` becomes `struct xrt_swapchain_native *xscn`).
|
||||
([!426](https://gitlab.freedesktop.org/monado/monado/merge_requests/426),
|
||||
[!428](https://gitlab.freedesktop.org/monado/monado/merge_requests/428))
|
||||
- Make some fields on `xrt_gl_swapchain` and `xrt_vk_swapchain` private moving
|
||||
them into the client compositor code instead of exposing them.
|
||||
([!444](https://gitlab.freedesktop.org/monado/monado/merge_requests/444))
|
||||
- Make `xrt_compositor::create_swapchain` return xrt_result_t instead of the
|
||||
swapchain, this makes the methods on `xrt_compositor` more uniform.
|
||||
([!444](https://gitlab.freedesktop.org/monado/monado/merge_requests/444))
|
||||
- Add the method `xrt_compositor::import_swapchain` allowing a state tracker to
|
||||
create a swapchain from a set of pre-allocated images. Uses the same
|
||||
`xrt_swapchain_create_info` as `xrt_compositor::create_swapchain`.
|
||||
([!444](https://gitlab.freedesktop.org/monado/monado/merge_requests/444))
|
||||
- Make `xrt_swapchain_create_flags` swapchain static image bit match OpenXR.
|
||||
([!454](https://gitlab.freedesktop.org/monado/monado/merge_requests/454))
|
||||
- Add `XRT_SWAPCHAIN_USAGE_INPUT_ATTACHMENT` flag to `xrt_swapchain_usage_bits`
|
||||
so that a client can create a Vulkan swapchain that can be used as input
|
||||
attachment.
|
||||
([!459](https://gitlab.freedesktop.org/monado/monado/merge_requests/459))
|
||||
- Remove the `flip_y` parameter to the creation of the native compositor, this
|
||||
is
|
||||
now a per layer thing.
|
||||
([!461](https://gitlab.freedesktop.org/monado/monado/merge_requests/461))
|
||||
- Add `xrt_compositor_info` struct that allows the compositor carry information
|
||||
to about it's capbilities and it's recommended values. Not everything is hooked
|
||||
up at the moment.
|
||||
([!461](https://gitlab.freedesktop.org/monado/monado/merge_requests/461))
|
||||
- Add defines for underlying handle types.
|
||||
([!469](https://gitlab.freedesktop.org/monado/monado/merge_requests/469))
|
||||
- Add a native handle type for graphics sync primitives (currently file
|
||||
descriptors on all platforms).
|
||||
([!469](https://gitlab.freedesktop.org/monado/monado/merge_requests/469))
|
||||
- Add a whole bunch of structs and functions for all of the different layers
|
||||
in
|
||||
OpenXR. The depth layer information only applies to the stereo projection
|
||||
so
|
||||
make a special stereo projection with depth layer.
|
||||
([!476](https://gitlab.freedesktop.org/monado/monado/merge_requests/476))
|
||||
- Add `xrt_image_native_allocator` as a friend to the compositor interface. This
|
||||
simple interface is intended to be used by the IPC interface to allocate
|
||||
`xrt_image_native` on the client side and send those to the service.
|
||||
([!478](https://gitlab.freedesktop.org/monado/monado/merge_requests/478))
|
||||
- Re-arrange and document `xrt_image_native`, making the `size` field optional.
|
||||
([!493](https://gitlab.freedesktop.org/monado/monado/merge_requests/493))
|
||||
- Add const to all compositor arguments that are info structs, making the
|
||||
interface safer and
|
||||
more clear. Also add `max_layers` field to the
|
||||
`xrt_compositor_info` struct.
|
||||
([!501](https://gitlab.freedesktop.org/monado/monado/merge_requests/501))
|
||||
- Add `xrt_space_graph` struct for calculating space relations. This struct and
|
||||
accompanying makes it easier to reason about space relations than just
|
||||
functions
|
||||
operating directly on `xrt_space_relation`. The code base is changed
|
||||
to use
|
||||
these new functions.
|
||||
([!519](https://gitlab.freedesktop.org/monado/monado/merge_requests/519))
|
||||
- Remove the `linear_acceleration` and `angular_acceleration` fields from the
|
||||
`xrt_space_relation` struct, these were not used in the codebase and are not
|
||||
exposed in the OpenXR API. They can easily be added back should they be
|
||||
required again by code or a future feature. Drivers are free to retain this
|
||||
information internally, but no longer expose it.
|
||||
([!519](https://gitlab.freedesktop.org/monado/monado/merge_requests/519))
|
||||
- Remove the `out_timestamp` argument to the `xrt_device::get_tracked_pose`
|
||||
function, it's not needed anymore and the devices can do prediction better
|
||||
as
|
||||
it knows more about it's tracking system the the state tracker.
|
||||
([!521](https://gitlab.freedesktop.org/monado/monado/merge_requests/521))
|
||||
- Replace mesh generator with `compute_distortion` function on `xrt_device`. This
|
||||
is used to both make it possible to use mesh shaders for devices and to provide
|
||||
compatibility with SteamVR which requires a `compute_distortion` function as
|
||||
well.
|
||||
|
||||
The compositor uses this function automatically to create a mesh and
|
||||
uses mesh
|
||||
distortion for all drivers. The function `compute_distortion` default
|
||||
implementations for `none`, `panotools` and `vive` distortion models are
|
||||
provided in util.
|
||||
([!536](https://gitlab.freedesktop.org/monado/monado/merge_requests/536))
|
||||
- Add a simple curl value based finger tracking model and use it for vive and
|
||||
survive controllers.
|
||||
([!555](https://gitlab.freedesktop.org/monado/monado/merge_requests/555))
|
||||
- State Trackers
|
||||
- OpenXR: Add support for attaching Quad layers to action sapces.
|
||||
([!437](https://gitlab.freedesktop.org/monado/monado/merge_requests/437))
|
||||
- OpenXR: Use initial head pose as origin for local space.
|
||||
([!443](https://gitlab.freedesktop.org/monado/monado/merge_requests/443))
|
||||
- OpenXR: Minor fixes for various bits of code: copy-typo in device assignment
|
||||
code; better stub for the unimplemented function
|
||||
`xrEnumerateBoundSourcesForAction`; better error message on internal error in
|
||||
`xrGetCurrentInteractionProfile`.
|
||||
([!448](https://gitlab.freedesktop.org/monado/monado/merge_requests/448))
|
||||
- OpenXR: Make the `xrGetCurrentInteractionProfile` conformance tests pass,
|
||||
needed
|
||||
to implement better error checking as well as generating
|
||||
`XrEventDataInteractionProfileChanged` events to the client.
|
||||
([!448](https://gitlab.freedesktop.org/monado/monado/merge_requests/448))
|
||||
- OpenXR: Centralize all sub-action path iteration in some x-macros.
|
||||
([!449](https://gitlab.freedesktop.org/monado/monado/merge_requests/449),
|
||||
[!456](https://gitlab.freedesktop.org/monado/monado/merge_requests/456))
|
||||
- OpenXR: Improve the validation in the API function for
|
||||
`xrGetInputSourceLocalizedName`.
|
||||
([!451](https://gitlab.freedesktop.org/monado/monado/merge_requests/451))
|
||||
- OpenXR: Implement the function `xrEnumerateBoundSourcesForAction`, currently we
|
||||
only bind one input per top level user path and it's easy to track this.
|
||||
([!451](https://gitlab.freedesktop.org/monado/monado/merge_requests/451))
|
||||
- OpenXR: Properly handle more than one input source being bound to the same
|
||||
action
|
||||
according to the combination rules of the specification.
|
||||
([!452](https://gitlab.freedesktop.org/monado/monado/merge_requests/452))
|
||||
- OpenXR: Fix multiplicity of bounds paths per action - there's one per
|
||||
input/output.
|
||||
([!456](https://gitlab.freedesktop.org/monado/monado/merge_requests/456))
|
||||
- OpenXR: Implement the MND_swapchain_usage_input_attachment_bit extension.
|
||||
([!459](https://gitlab.freedesktop.org/monado/monado/merge_requests/459))
|
||||
- OpenXR: Refactor the native compositor handling a bit, this creates the
|
||||
compositor earlier then before. This allows us to get the viewport information
|
||||
from it.
|
||||
([!461](https://gitlab.freedesktop.org/monado/monado/merge_requests/461))
|
||||
- OpenXR: Implement action set priorities and fix remaining action conformance
|
||||
tests.
|
||||
([!462](https://gitlab.freedesktop.org/monado/monado/merge_requests/462))
|
||||
- st/oxr: Fix crash when calling `xrPollEvents` when headless mode is selected.
|
||||
([!475](https://gitlab.freedesktop.org/monado/monado/merge_requests/475))
|
||||
- OpenXR: Add stub functions and support plumbing for a lot of layer extensions.
|
||||
([!476](https://gitlab.freedesktop.org/monado/monado/merge_requests/476))
|
||||
- OpenXR: Be sure to return `XR_ERROR_FEATURE_UNSUPPORTED` if the protected
|
||||
content bit is set and the compositor does not support it.
|
||||
([!481](https://gitlab.freedesktop.org/monado/monado/merge_requests/481))
|
||||
- OpenXR: Update to 1.0.11 and start returning the new
|
||||
`XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING` code added in this release.
|
||||
([!482](https://gitlab.freedesktop.org/monado/monado/merge_requests/482))
|
||||
- OpenXR: Enable the `XR_KHR_android_create_instance` extension.
|
||||
([!492](https://gitlab.freedesktop.org/monado/monado/merge_requests/492))
|
||||
- OpenXR: Add support for creating swapchains with depth formats and submitting
|
||||
depth layers. The depth layers are passed through to the compositor, but are
|
||||
not used yet.
|
||||
([!498](https://gitlab.freedesktop.org/monado/monado/merge_requests/498))
|
||||
- OpenXR: For pose actions the any path (`XR_NULL_PATH`) needs to be special
|
||||
cased, essentially turning into a separate action sub path, that is assigned
|
||||
at
|
||||
binding time.
|
||||
([!510](https://gitlab.freedesktop.org/monado/monado/merge_requests/510))
|
||||
- OpenXR: More correctly implement `xrGetInputSourceLocalizedName` allowing apps
|
||||
to more accurently tell the user which input to use.
|
||||
([!532](https://gitlab.freedesktop.org/monado/monado/merge_requests/532))
|
||||
- OpenXR: Pass through equirect layer data to the compositor.
|
||||
([!566](https://gitlab.freedesktop.org/monado/monado/merge_requests/566))
|
||||
- Drivers
|
||||
- psvr: We were sending in the wrong type of time to the 3DOF fusion code,
|
||||
switch
|
||||
to nanoseconds instead of fractions of seconds.
|
||||
([!474](https://gitlab.freedesktop.org/monado/monado/merge_requests/474))
|
||||
- rs: Make the pose getting from the T265 be threaded. Before we where getting
|
||||
the
|
||||
pose from the update input function, this would cause some the main thread
|
||||
to
|
||||
block and would therefore cause jitter in the rendering.
|
||||
([!486](https://gitlab.freedesktop.org/monado/monado/merge_requests/486))
|
||||
- survive: Add lighthouse tracking system type
|
||||
hydra: Add lighthouse tracking
|
||||
system type
|
||||
([!489](https://gitlab.freedesktop.org/monado/monado/merge_requests/489))
|
||||
- rs: Add slam tracking system type
|
||||
northstar: Use tracking system from tracker
|
||||
(e.g. rs) if available.
|
||||
([!494](https://gitlab.freedesktop.org/monado/monado/merge_requests/494))
|
||||
- psmv: Introduce proper grip and aim poses, correctly rotate the grip pose to
|
||||
follow the spec more closely. The aim poses replaces the previous ball tip pose
|
||||
that was used before for aim.
|
||||
([!509](https://gitlab.freedesktop.org/monado/monado/merge_requests/509))
|
||||
- survive: Implement haptic feedback.
|
||||
([!557](https://gitlab.freedesktop.org/monado/monado/merge_requests/557))
|
||||
- dummy: Tidy the code a bit and switch over to the new
|
||||
logging API.
|
||||
([!572](https://gitlab.freedesktop.org/monado/monado/merge_requests/572),
|
||||
[!573](https://gitlab.freedesktop.org/monado/monado/merge_requests/573))
|
||||
- psvr: Switch to the new logging API.
|
||||
([!573](https://gitlab.freedesktop.org/monado/monado/merge_requests/573))
|
||||
- Add initial "Cardboard" phone-holder driver for Android.
|
||||
([!581](https://gitlab.freedesktop.org/monado/monado/merge_requests/581))
|
||||
- IPC
|
||||
- Generalize handling of native-platform handles in IPC code, allow bi-
|
||||
directional handle transfer, and de-duplicate code between server and client.
|
||||
([!413](https://gitlab.freedesktop.org/monado/monado/merge_requests/413),
|
||||
[!427](https://gitlab.freedesktop.org/monado/monado/merge_requests/427))
|
||||
- generation: Fix handling 'in_handle' by adding a extra sync round-trip, this
|
||||
might be solvable by using `SOCK_SEQPACKET`.
|
||||
([!444](https://gitlab.freedesktop.org/monado/monado/merge_requests/444))
|
||||
- Implement the `xrt_compositor::import_swapchain` function, uses the earlier
|
||||
`in_handle` work.
|
||||
([!444](https://gitlab.freedesktop.org/monado/monado/merge_requests/444))
|
||||
- proto: Transport the `xrt_compositor_info` over the wire so that the client can
|
||||
get the needed information.
|
||||
([!461](https://gitlab.freedesktop.org/monado/monado/merge_requests/461))
|
||||
- client: Implement the usage of the `xrt_image_native_allocator`, currently not
|
||||
used. But it is needed for platforms where for various reasons the allocation
|
||||
must happen on the client side.
|
||||
([!478](https://gitlab.freedesktop.org/monado/monado/merge_requests/478))
|
||||
- client: Add a "loopback" image allocator, this code allocates a swapchain from
|
||||
the service then imports that back to the service as if it was imported. This
|
||||
tests both the import code and the image allocator code.
|
||||
([!478](https://gitlab.freedesktop.org/monado/monado/merge_requests/478))
|
||||
- ipc: Allow sending zero handles as a reply, at least the Linux fd handling code
|
||||
allows this.
|
||||
([!491](https://gitlab.freedesktop.org/monado/monado/merge_requests/491))
|
||||
- Use a native AHardwareBuffer allocator on the client side when building for
|
||||
recent-enough Android.
|
||||
([!493](https://gitlab.freedesktop.org/monado/monado/merge_requests/493))
|
||||
- ipc: Add functionality to disable a device input via the `monado-ctl` utility,
|
||||
this allows us to pass the conformance tests that requires the runtime to turn
|
||||
off a device.
|
||||
([!511](https://gitlab.freedesktop.org/monado/monado/merge_requests/511))
|
||||
- Compositor
|
||||
- compositor: Add support for alpha blending with premultiplied alpha.
|
||||
([!425](https://gitlab.freedesktop.org/monado/monado/merge_requests/425))
|
||||
- compositor: Implement subimage rectangle rendering for quad layers.
|
||||
([!433](https://gitlab.freedesktop.org/monado/monado/merge_requests/433))
|
||||
- compositor: Enable subimage rectangle rendering for projection layers.
|
||||
([!436](https://gitlab.freedesktop.org/monado/monado/merge_requests/436))
|
||||
- compositor: Fix printing of current connected displays on nvidia when no
|
||||
whitelisted display is found.
|
||||
([!477](https://gitlab.freedesktop.org/monado/monado/merge_requests/477))
|
||||
- compositor: Add env var to temporarily add display string to nvidia whitelist.
|
||||
([!477](https://gitlab.freedesktop.org/monado/monado/merge_requests/477))
|
||||
- compositor and clients: Use a generic typedef to represent the platform-
|
||||
specific graphics buffer, allowing use of `AHardwareBuffer` on recent Android.
|
||||
([!479](https://gitlab.freedesktop.org/monado/monado/merge_requests/479))
|
||||
- compositor: Check the protected content bit, and return a non-success code if
|
||||
it's set. Supporting this is optional in OpenXR, but lack of support must be
|
||||
reported to the application.
|
||||
([!481](https://gitlab.freedesktop.org/monado/monado/merge_requests/481))
|
||||
- compositor: Implement cylinder layers.
|
||||
([!495](https://gitlab.freedesktop.org/monado/monado/merge_requests/495))
|
||||
- main: Set the maximum layers supported to 16, we technically support more than
|
||||
16, but things get out of hand if multiple clients are running and all are
|
||||
using
|
||||
max layers.
|
||||
([!501](https://gitlab.freedesktop.org/monado/monado/merge_requests/501))
|
||||
- main: Add code to check that a format is supported by the GPU before exposing.
|
||||
([!502](https://gitlab.freedesktop.org/monado/monado/merge_requests/502))
|
||||
- compositor: Remove panotools and vive shaders from compositor.
|
||||
([!538](https://gitlab.freedesktop.org/monado/monado/merge_requests/538))
|
||||
- Initial work on a port of the compositor to Android.
|
||||
([!547](https://gitlab.freedesktop.org/monado/monado/merge_requests/547))
|
||||
- render: Implement equirect layer rendering.
|
||||
([!566](https://gitlab.freedesktop.org/monado/monado/merge_requests/566))
|
||||
- main: Fix leaks of sampler objects that was introduced in !566.
|
||||
([!571](https://gitlab.freedesktop.org/monado/monado/merge_requests/571))
|
||||
- Helper Libraries
|
||||
- u/vk: Remove unused vk_image struct, this is later recreated for the image
|
||||
allocator code.
|
||||
([!444](https://gitlab.freedesktop.org/monado/monado/merge_requests/444))
|
||||
- u/vk: Add a new image allocate helper, this is used by the main compositor to
|
||||
create, export and import swapchain images.
|
||||
([!444](https://gitlab.freedesktop.org/monado/monado/merge_requests/444))
|
||||
- u/vk: Rename `vk_create_semaphore_from_fd` to `vk_create_semaphore_from_native`
|
||||
([!469](https://gitlab.freedesktop.org/monado/monado/merge_requests/469))
|
||||
- aux/android: New Android utility library added.
|
||||
([!493](https://gitlab.freedesktop.org/monado/monado/merge_requests/493),
|
||||
[!547](https://gitlab.freedesktop.org/monado/monado/merge_requests/547),
|
||||
[!581](https://gitlab.freedesktop.org/monado/monado/merge_requests/581))
|
||||
- aux/ogl: Add a function to compute the texture target and binding enum for a
|
||||
given swapchain image creation info.
|
||||
([!493](https://gitlab.freedesktop.org/monado/monado/merge_requests/493))
|
||||
- util: Tidy hand tracking header.
|
||||
([!574](https://gitlab.freedesktop.org/monado/monado/merge_requests/574))
|
||||
- math: Fix doxygen warnings in vector headers.
|
||||
([!574](https://gitlab.freedesktop.org/monado/monado/merge_requests/574))
|
||||
- Misc. Features
|
||||
- Support building in-process Monado with meson.
|
||||
([!421](https://gitlab.freedesktop.org/monado/monado/merge_requests/421))
|
||||
- Allow building some components without Vulkan. Vulkan is still required for the
|
||||
compositor and therefore the OpenXR runtime target.
|
||||
([!429](https://gitlab.freedesktop.org/monado/monado/merge_requests/429))
|
||||
- Add an OpenXR Android target: an APK which provides an "About" activity and
|
||||
eventually, an OpenXR runtime.
|
||||
([!574](https://gitlab.freedesktop.org/monado/monado/merge_requests/574),
|
||||
[!581](https://gitlab.freedesktop.org/monado/monado/merge_requests/581))
|
||||
- Misc. Fixes
|
||||
- No significant changes
|
||||
|
||||
## Monado 0.3.0 (2020-07-10)
|
||||
|
||||
- Major changes
|
||||
|
|
Loading…
Reference in a new issue