Commit graph

475 commits

Author SHA1 Message Date
Christoph Haag c24e482e5e st/oxr: Make OpenXR timestamps relative to service startup
This solves a problem where OpenXR timestamps could become invalid
(negative) in certain circumstances:

The timestamps that the OpenXR state tracker returned were offset such
that they appeared to start at OpenXR application startup time.

However monado-service is a long running service using system timestamps.
Because of this, if monado-service started work using a system timestamp
acquired before an OpenXR application started, then this system timestamp
could not be converted into an OpenXR without becoming invalid.

With this change, the OpenXR timestamps for OpenXR applications are offset
such that they appear to start at monado-service startup time instead.

As a side effect, all OpenXR applications connected to the same
monado-service instance will receive timestamps from the same domain.
2022-08-08 15:52:18 +00:00
Moses Turner c0eed827c5 xrt: Remove t_hand_tracking_output_space
LEFT_CAMERA is the only one that remained useful
2022-07-27 10:49:29 +00:00
Ryan Pavlik 5c24b8e637 xrt: Define D3D12 interface 2022-07-26 14:45:29 +00:00
danwillm 6d6ddc0b12 inc/xrt: add XRT_HAVE_BLUETOOTH 2022-07-25 16:20:07 +01:00
Ryan Pavlik 12fab0653c xrt: Compositor doc improvement 2022-07-15 16:30:06 -05:00
Ryan Pavlik 4c5327fc65 xrt: Improve code docs 2022-07-15 12:50:04 -05:00
bjorn 919936991c ipc: make all IPC input aggregates const; 2022-07-14 20:31:38 +00:00
Moses Turner fa2554f289 st/oxr: Don't use the debug gui by default in out-of-process 2022-07-12 16:18:17 +00:00
Moses Turner 1718d01fb1 xrt: Rename some hand-tracking structs and document them better 2022-06-21 20:37:08 +01:00
Moses Turner 8040224b39 xrt: add hand_tracking_image_boundary_info 2022-06-20 16:33:48 +01:00
Jakob Bornecrantz c976c54008 c/null: Add null compositor
Based on sample compositor code.

Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>
2022-05-28 17:30:19 +00:00
Ryan Pavlik 8ee10c5a6b xrt: Factor out deleters 2022-05-24 13:11:41 -05:00
Jakob Bornecrantz 38eac9dddc xrt: Do not depend on util 2022-05-23 09:12:54 -05:00
Ryan Pavlik 753f37c41f xrt: Clarify that wait_image timeout is nanoseconds 2022-05-20 23:31:59 +01:00
Ryan Pavlik e6d58cf451 xrt: Add a D3D11 error 2022-05-20 22:37:15 +01:00
Ryan Pavlik bbfc06cc3e xrt: Add interfaces for D3D11 2022-05-20 22:37:15 +01:00
Ryan Pavlik 8bcc2cd195 xrt: Add D3D11 to the OpenXR include header 2022-05-20 22:37:15 +01:00
Ryan Pavlik ccb58dbe8a build: Add option to support D3D11 2022-05-20 22:37:15 +01:00
Ryan Pavlik 230424eec9 xrt: Add an XRT_INFINITE_DURATION define
Matches XR_INFINITE_DURATION
2022-05-20 21:30:41 +00:00
Jakob Bornecrantz 1c29b22cae st/oxr: Do not enable XR_EXT_debug_utils as it's not implemented yet 2022-05-19 14:32:06 +00:00
Ryan Pavlik 4fb62a8d8f xrt: Word choice/clarity 2022-05-17 17:40:58 -05:00
Ryan Pavlik 507be96326 xrt: Improve docs, fixing doxygen warnings 2022-05-17 19:30:40 +00:00
Jakob Bornecrantz 61323c32d2 xrt: Use error messages in various instance and prober functions 2022-05-17 20:10:40 +01:00
Jakob Bornecrantz 58438db241 xrt: Add some error messages 2022-05-17 20:10:40 +01:00
Jakob Bornecrantz 850527adc5 xrt: Add system builders and update xrt_prober interface
Aka setter uppers.
2022-05-17 11:20:40 +01:00
Moses Turner 8ac95a5177 d/ht: Add some things to the WMR creation interface, and make it the default interface. 2022-05-16 19:15:33 +01:00
Ryan Pavlik 2f457d0665 build: Search for DXGI and WinRT (WindowsApp) libraries 2022-05-16 11:00:27 -05:00
Ryan Pavlik 46a3c7b039 build: Look for WIL (Windows Implementation Library)
Also define XRT_HAVE_WIL if we have it.
2022-05-16 11:00:27 -05:00
Jakob Bornecrantz 23ed0a6632 xrt: Remove unused xdev argument to trackers 2022-05-14 22:40:36 +01:00
Jakob Bornecrantz aeb11566cd xrt: Re-order things in xrt_prober 2022-05-12 11:59:12 +00:00
Jakob Bornecrantz 3a9ac6aa5d xrt: Move prober creation functions and struct last 2022-05-12 11:59:12 +00:00
Jakob Bornecrantz 116d1a9bf8 xrt: Typedefs have a _t suffix 2022-05-12 11:59:12 +00:00
Jakob Bornecrantz 126dbb540f xrt: Remove functions now living in helper code 2022-05-12 11:59:12 +00:00
Jakob Bornecrantz aafbaecbc9 xrt: Remove old unused instance functions 2022-05-11 10:49:15 +01:00
Jakob Bornecrantz 224b473dba xrt: Add xrt_instance_create_system call 2022-05-11 10:11:43 +01:00
Jakob Bornecrantz d0d3e0cac8 xrt: Add xrt_system_devices struct 2022-05-11 10:10:38 +01:00
Moses Turner c7cb763b38 inc/xrt, steamvr_drv: add DepthAI device type 2022-05-10 23:47:30 +01:00
Moses Turner e25ee4058d xrt: Remove xrt_tracked_hand 2022-05-10 18:53:58 +01:00
Jakob Bornecrantz c6b0089c51 xrt: Pass external_[fence|semaphore]_fd status in 2022-05-09 14:01:20 +00:00
Mateo de Mayo 7e1f9a7964 t/hand: Add option for allowing xfctx to be managed externally
Other trackers (e.g., psmv, slam, etc) work as sinks and the xfctx that manages
them is handled by the device providing the data streams. This change helps
the hand tracker have a more similar interface to other trackers.
2022-05-07 15:53:56 +00:00
Ryan Pavlik 3287c984aa cmake: Reorganize options, renaming some.
Rename XRT_HAVE_SLAM to XRT_FEATURE_SLAM,
moving it from xrt_config_have.h to xrt_config_build.h
accordingly.
2022-05-04 11:24:02 -05:00
Jakob Bornecrantz 38f68dc104 xrt: Use xrt_luid_t for deviceLUID 2022-05-04 15:11:24 +00:00
Jakob Bornecrantz b62d871498 xrt: Add xrt_luid_t 2022-05-04 15:11:24 +00:00
Jakob Bornecrantz 07fe47d053 xrt: Add xrt_swapchain_create_properties and related function 2022-05-04 15:48:57 +01:00
Ryan Pavlik 3691d881fc xrt: Adjust includes for intrinsics on Windows/msvc 2022-05-03 22:33:57 +01:00
Ryan Pavlik 14f37dbe4c xrt: Add GPU LUID to xrt_system_compositor_info 2022-05-03 22:32:17 +01:00
Jakob Bornecrantz 91facd10f1 xrt: Add xrt_uuid_t 2022-05-02 17:16:04 +01:00
Jakob Bornecrantz 5f421503e9 st/oxr: Set XR_USE_GRAPHICS_API_VULKAN as a compile define like the others 2022-05-02 15:40:31 +00:00
Jakob Bornecrantz 175ff58f10 build: Remove meson files 2022-04-28 21:36:25 +00:00
nima01 232b3bade5 aux/math: More double-precision matrix and vector support 2022-04-25 19:14:46 +00:00
Ryan Pavlik 2d916c11c5 xrt: Fix OpenXR platform include on Windows 2022-04-18 12:12:43 -05:00
Ryan Pavlik 02435cc033 xrt: clarify comment 2022-04-18 10:54:22 -05:00
Ryan Pavlik 3631289e4f xrt: Rename interface: reserved word in msvc. 2022-04-18 10:52:57 -05:00
Ryan Pavlik 1331e93bdc xrt: Fix typo 2022-04-18 10:52:42 -05:00
Ryan Pavlik 3e6ec47296 monado: Apply clang-tidy fixes to most of the codebase.
All at least visually inspected, some revised from the auto-fixit
2022-04-13 09:34:54 -05:00
Ryan Pavlik 55364cde35 xrt: Manual fixes to clang-tidy issues. 2022-04-13 01:10:14 +01:00
Jakob Bornecrantz cbeebe6ca4 xrt: Add XRT_GET_INPUT_ID 2022-04-09 22:07:06 +01:00
Christoph Haag cb7855b8bd c/client: Ensure the correct GL context is current
when running OpenGL functions.

Co-authored-by: James Hogan <james@albanarts.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-04-07 20:17:29 +02:00
Ryan Pavlik 9463de7e6f xrt: Undef Status and Bool in vulkan include if we think the xlib header got included. 2022-04-05 23:32:07 +01:00
Ryan Pavlik 96314d4f76 meson: Define XRT_HAVE_HIDAPI if using it 2022-03-29 09:31:49 -05:00
Jakob Bornecrantz b4f2bc88c8 cmake: Introduce XRT_HAVE_HIDAPI to make HIDAPI controllable 2022-03-28 22:35:01 +00:00
Jakob Bornecrantz 71d9887b5b xrt: Tidy xrt_instance.h (NFC) 2022-03-16 15:46:14 +00:00
Jakob Bornecrantz 57d1394941 xrt: Add XRT_CHECK_RESULT define 2022-03-15 00:16:17 +00:00
Mateo de Mayo 147d4c5d26 xrt: Add groundtruth sink to xrt_slam_sinks 2022-03-14 23:42:13 +00:00
Mateo de Mayo 88bd7a669d xrt: Add pose sink interface 2022-03-14 23:42:13 +00:00
Jakob Bornecrantz 851224123e xrt: Add compositor semaphore interface 2022-03-14 19:52:48 +00:00
Jakob Bornecrantz f4f2196e34 xrt: Add a way to say that timeline semaphores have been enabled 2022-03-14 18:58:35 +00:00
Jakob Bornecrantz 8bda87c855 xrt: Correct xrt_compositor_fence::wait docu 2022-03-08 21:04:56 +00:00
Jakob Bornecrantz 60cd630271 tracking: Add new hand tracking interface header
Co-authored-by: Moses Turner <moses@collabora.com>
2022-03-08 20:38:58 +00:00
Jakob Bornecrantz 7e8f4f46c6 xrt: Add XRT_TIMEOUT to xrt_result_t 2022-03-01 20:59:35 +00:00
Christoph Haag 996a5d3e9a xrt: Move fov from xrt_view to xrt_hmd_parts::distortion 2022-02-19 13:04:32 +00:00
Ryan Pavlik de6e237a9f xrt: Additional doxygen fix. 2022-02-19 01:15:33 +00:00
Christoph Haag 43f0bb4343 xrt: Fix tracking override docs 2022-02-19 00:43:30 +00:00
Ryan Pavlik 1eb6aecdc0 xrt: Improve docs and fix doxygen warnings 2022-02-18 21:22:32 +00:00
Christoph Haag c162ff655b st/oxr: add renderdoc API to xrBeginFrame/xrEndFrame
Usually renderdoc captures frames by hooking the present functions to
recognize when an application is finished rendering a frame.

OpenXR applications might not present to a window. Therefore use the
renderdoc API to capture application frames between xrBeginFrame and
and xrEndFrame.

This allows renderdoc to capture application frames without the need
to modify the application.
2022-02-18 13:44:15 +01:00
Jakob Bornecrantz 9b656cde77 xrt: Remove xrt_device::get_view_pose
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2022-02-16 23:15:24 +00:00
Jakob Bornecrantz 780f1763e3 xrt: Add xrt_device::get_view_poses function 2022-02-16 23:15:02 +00:00
Ryan Pavlik 9ad96455a1 xrt: Small doc/interface cleanups. 2022-02-08 10:51:40 -06:00
Ryan Pavlik c9889f776f xrt: Rename xrt_space_graph to xrt_relation_chain.
Rename all functions and instances accordingly as well,
and add documentation for all methods.
2022-01-21 19:54:30 +00:00
Colin Kinloch 0a783ca208 systemd: Use pkgconfig variable systemduserunitdir as unit install directory 2022-01-18 21:11:44 +00:00
Jakob Bornecrantz f0e27a88a3 xrt: Clarify call order on some compositor functions 2022-01-15 00:27:00 +00:00
Jakob Bornecrantz c272549802 xrt: Correctly tag out arguments 2022-01-15 00:05:38 +00:00
Moses Turner 683dc4ea56 gui: add SLAM Stereo option to calibrate gui 2022-01-04 18:19:17 +00:00
Moses Turner 749723f0ba xrt: Remove xrt_view::display::{w|h}_meters
It is not used anywhere.
2021-12-10 21:27:15 -06:00
Ryan Pavlik 5b1c60eeb0 xrt: Add unique_ptr typedef for xrt_device 2021-12-10 21:24:02 +00:00
Jakob Bornecrantz 986cde6750 cmake: Build the IPC irrespectively of the service or not 2021-11-24 21:30:01 +00:00
Christoph Haag a1c00e14fd st/oxr: Implement a basic version of XR_FB_display_refresh_rate 2021-11-22 20:44:18 +00:00
Jan Schmidt 760e8dd3ad meson: Add GStreamer recording support 2021-11-19 04:05:40 +11:00
Ryan Pavlik 3a22c74aa6 xrt: Update some xrt_device docs 2021-11-13 12:29:58 +00:00
Ryan Pavlik b5bcea758d xrt: Rename a prober-related define that wasn't namespaced. 2021-11-13 12:29:58 +00:00
Ryan Pavlik 46fdb32991 xrt: Factor out a function pointer type for the prober "found" functions. 2021-11-13 12:24:15 +00:00
Ryan Pavlik 33c0287f8b xrt: Rename all "num" parameters and fields to "count" (or "capacity" as appropriate)
This matches the OpenXR usage: the array is the plural of the element type,
and the count is the singular element type plus "count" (usually CountOutput
because of the two-call idiom)

Includes fixes to other code to match API changes.
2021-11-13 12:04:38 +00:00
Ryan Pavlik 5e55b9d992 xrt: Prober docs. 2021-11-13 12:04:38 +00:00
Ryan Pavlik cc4007a69e cmake: Substantial cleanups and simplifications
We now have a cmake-format config file.
We no longer use list variables for sources, instead using
target_sources when we need to add, in accordance with current
best practice. (This makes it a lot easier to edit too.) There's no more
include_directories(), add_definitions(), or other gently-deprecated
directory-scoped commands, nor any CMake scripts that include
a parent directory reference (named targets instead)
2021-11-12 09:48:37 -06:00
Ryan Pavlik cd5ac5f1c9 xrt: Support multiple blend modes in system compositor info 2021-11-12 03:05:10 +00:00
Nima01 2a1e6debfb st/prober: Support for querying of 'Product name' from Bluetooth devices. 2021-11-09 01:10:20 +00:00
Ryan Pavlik afc2af549f xrt: Improve docs for ref-counting functions. 2021-11-03 17:27:56 -05:00
Ryan Pavlik 9688cd37dd xrt: Improve doc comments in compositor header 2021-10-27 17:05:55 -05:00
Mateo de Mayo ab2da01631 build: Add Basalt as an external SLAM system 2021-10-16 17:02:27 -03:00
Mateo de Mayo 7f247604e3 build: Use pkg-config for finding SLAM systems in CMake and other minor improvements 2021-10-07 14:33:10 -03:00