Commit graph

1480 commits

Author SHA1 Message Date
Mateo de Mayo 1dbda3d8c8 t/euroc: Tie CSV file opening to recorder lifecycle
This is a better way of handling writing small but high frequency data
like IMU samples so as to avoid continuous opening and closing of a file.
2022-03-14 23:42:13 +00:00
Jakob Bornecrantz 37354b953c aux/vk: Add more timeline semaphore functions 2022-03-14 18:58:35 +00:00
Jakob Bornecrantz d0f6ea10bc u/worker: Fix some late feedback 2022-03-14 18:57:35 +00:00
Jakob Bornecrantz 84069cc4f0 u/logging: Add logging sink to intercept log messages 2022-03-14 17:21:20 +00:00
Antonio Ospite 37852ffa65 xrt: fix -Wreturn-type warnings
Add some missing returns pointed out by -Wreturn-type:

-----------------------------------------------------------------------
[75/1571] Building C object src/xrt/auxiliary/CMakeFiles/aux_util.dir/util/u_config_json.c.o
.../src/xrt/auxiliary/util/u_config_json.c: In function ‘u_gui_state_scene_to_string’:
.../src/xrt/auxiliary/util/u_config_json.c:524:1: warning: control reaches end of non-void function [-Wreturn-type]
  524 | }
      | ^
-----------------------------------------------------------------------
2022-03-14 14:06:02 +00:00
Jakob Bornecrantz 771aeda784 u/worker: Add task worker helper 2022-03-11 15:29:16 +00:00
Jakob Bornecrantz 76d8944765 os/threading: Add os_cond wrapper 2022-03-11 15:29:16 +00:00
Antonio Ospite e8c9d8f575 xrt: fix -Wunused-variable warnings
Some variables are only used in asserts, so they may be unused
depending on the build type:

-----------------------------------------------------------------------
[68/315] Building C object src/xrt/auxiliary/CMakeFiles/aux_util.dir/util/u_sink_combiner.c.o
.../src/xrt/auxiliary/util/u_sink_combiner.c:188:11: warning: unused variable 'diff_ns' [-Wunused-variable]
                int64_t diff_ns = frames[0]->timestamp - frames[1]->timestamp;
                        ^
1 warning generated.
[205/315] Building C object src/xrt/compositor/CMakeFiles/comp_main.dir/main/comp_renderer.c.o
.../src/xrt/compositor/main/comp_renderer.c:872:17: warning: unused variable 'layer_count' [-Wunused-variable]
        const uint32_t layer_count = c->base.slot.layer_count;
                       ^
1 warning generated.
-----------------------------------------------------------------------

Mark them as XRT_MAYBE_UNUSED to fix the build warnings.
2022-03-09 14:53:06 +01:00
Antonio Ospite 14a1ced0e4 xrt: fix -Wreturn-type warnings
Add some missing returns pointed out by -Wreturn-type:

-----------------------------------------------------------------------
[32/315] Building C object src/xrt/auxiliary/CMakeFiles/aux_gstreamer.dir/gstreamer/gst_sink.c.o
.../src/xrt/auxiliary/gstreamer/gst_sink.c:53:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
1 warning generated.
[84/315] Building C object src/xrt/auxiliary/CMakeFiles/aux_vk.dir/vk/vk_compositor_flags.c.o
.../src/xrt/auxiliary/vk/vk_compositor_flags.c:117:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
.../src/xrt/auxiliary/vk/vk_compositor_flags.c:146:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
2 warnings generated.
-----------------------------------------------------------------------

For the function returning VkImageAspectFlags return a literal 0 because
the enum values VK_IMAGE_ASPECT_NONE or VK_IMAGE_ASPECT_NONE_KHR may not
always be defined.
2022-03-09 14:52:29 +01:00
Jakob Bornecrantz 17e9e06de7 aux/vk: Detect external semaphore support 2022-03-08 21:04:56 +00:00
Jakob Bornecrantz c0bd8ce3ba aux/vk: Let vk_init_from_given enable timeline semaphores 2022-03-08 21:04:56 +00:00
Jakob Bornecrantz 3c8378631f aux/vk: Properly set log_level in given vk_bundles 2022-03-08 21:04:56 +00:00
Jakob Bornecrantz 3044794f93 aux/vk: Rename timeline_semaphores to features.timeline_semaphore 2022-03-08 21:04:56 +00:00
Moses Turner 7235b6a45a u/sink: Add some comments 2022-03-08 20:38:58 +00:00
Moses Turner 37f0c901d2 u/sink: Add sink to convert from stereo to two SLAM frames 2022-03-08 20:38:58 +00:00
Jakob Bornecrantz 7b0cee5a85 u/trace_marker: Add new tracking category 2022-03-08 10:46:48 +00:00
Jakob Bornecrantz d06bb04357 u/trace_marker: Tidy 2022-03-08 10:46:47 +00:00
Jakob Bornecrantz 0ebb1c3be9 t/psmv: Make TrackerPSMV be standard layout 2022-03-07 16:48:28 +00:00
Moses Turner ffee6c360b u/sink: Don't sleep when combining frames; we're not testing
Where's the dunce cap?
2022-03-01 01:14:57 -06:00
Jakob Bornecrantz f5c77dfb32 aux/vk: Add vk_create_and_submit_fence_native 2022-02-24 20:54:47 +00:00
Jakob Bornecrantz 78f3340bf5 aux/vk: Check which fence types support import and export 2022-02-24 20:54:47 +00:00
Jakob Bornecrantz ebe895bdb8 aux/vk: Add vkGetPhysicalDeviceExternal[Buffer|Fence|Semaphore]PropertiesKHR (NFC) 2022-02-24 17:51:59 +00:00
Jakob Bornecrantz 543f28abf9 aux/vk: Add vkGetFenceWin32HandleKHR (NFC) 2022-02-24 17:51:59 +00:00
Jakob Bornecrantz 36025886ee aux/vk: Refactor our sync primitives (NFC) 2022-02-24 17:51:59 +00:00
Jakob Bornecrantz d6e0c45855 aux/vk: Order files in build scripts (NFC) 2022-02-24 17:51:59 +00:00
Connor Smith e1c180240e Create VkQueue with queueIndex from XrGraphicsBindingVulkanKHR.
Per XR_KHR_vulkan_enable: "the OpenXR runtime must interpret the image
as being owned by the VkQueue specified in XrGraphicsBindingVulkanKHR."
(https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XR_KHR_vulkan_enable)
2022-02-23 17:45:46 -05:00
Mateo de Mayo a0021dc7d0 t/euroc: Fix memory leak in euroc recorder
This was the reason the recorder was eating so much RAM.
SSD write speeds should be enough for common use cases to keep RAM stable.
2022-02-22 22:56:07 +00:00
Ryan Pavlik 7b3a2e7c1a a/math: C wrapper for the float low-pass filter too. 2022-02-22 16:44:44 -06:00
Ryan Pavlik cf07791e93 a/math: Add a C wrapper for the integer low-pass filter. 2022-02-22 16:42:53 -06:00
Ryan Pavlik a0e2df4cf0 tracking/math: Move the generic low pass filters to a/math 2022-02-22 16:42:53 -06:00
Ryan Pavlik 4156cabedf a/tracking: Add an integer version of the low-pass filter. 2022-02-22 09:58:19 -06:00
Ryan Pavlik 928254ffed a/math: Add a rational number struct template. 2022-02-22 09:58:19 -06:00
Mateo de Mayo 4b94d83c11 a/math: Fix one euro implementations not dividing by dt
The dy name was kept. It can now be thought of as "[d]erivative of [y]"
instead of the previous "change of y". Also, the beta parameters of the
one-euro users were adjusted by approximately multiplying them by 0.016
to compensate.
2022-02-22 13:34:45 +00:00
Mateo de Mayo 17dee2bb68 t/slam: Cache tracked pose timestamp
This is mainly to avoid problems with filters that calculate
their dt from previous calls. In particular the one euro filter fix
that gets implemented in the next commit would crash because of dt=0.
2022-02-22 13:34:45 +00:00
Mateo de Mayo b04c26e522 a/math: Expose quat_{exp, ln} and test them 2022-02-22 13:34:45 +00:00
Moses Turner 8972778e00 a/vk: Remove superfluous format assignment in the readback pool
This also caused a segfault when the readback pool filled up.
2022-02-20 00:51:26 -06:00
Christoph Haag 49b81e219f aux/util: Move fov from u_device_simple_info::views to top level 2022-02-19 13:04:32 +00:00
Christoph Haag 996a5d3e9a xrt: Move fov from xrt_view to xrt_hmd_parts::distortion 2022-02-19 13:04:32 +00:00
Moses Turner 2e8f572a4d aux/vk: Add util to read VkImages back to a pool of xrt_frames
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-02-18 20:26:27 -06:00
Moses Turner 8f792c9165 u/sink: Add u_sink_create_to_r8g8b8_r8g8b8a8_r8g8b8x8_or_l8 2022-02-18 20:06:20 -06:00
Moses Turner 433ae0d9c6 aux/gst: Support RGBA and images with unusual row strides 2022-02-18 20:06:20 -06:00
Moses Turner 727c087366 aux/vk: Add helper for adding image memory barriers 2022-02-18 20:06:20 -06:00
Moses Turner 5a2088ee3e aux/vk: Add vkCmdBlitImage to vk_helpers 2022-02-18 20:06:20 -06:00
Moses Turner 3a7569a7b0 u/trace_marker: Add COMP_TRACE_IDENT 2022-02-18 20:06:20 -06:00
Moses Turner 00984aa021 aux/vk: Add advanced create image function 2022-02-18 20:06:20 -06:00
Jakob Bornecrantz ba0f7cba8b aux/vk: More comments 2022-02-19 00:34:01 +00:00
Jakob Bornecrantz 5222dfd728 aux/vk: Refactor and document various compositor swapchain image flags
This also fixes two errors:
* VK_IMAGE_USAGE_SAMPLED_BIT was not always added to depth formats.
* VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT was added to image
  views for sampling, where the spec only allows one of them.
2022-02-18 21:32:05 +00:00
Jakob Bornecrantz 05771e7b9e aux/vk: Rename compositor swapchain image helper functions (NFC) 2022-02-18 21:32:05 +00:00
Jakob Bornecrantz ad5a057737 aux/vk: Refactor out swapchain functions to own file (NFC) 2022-02-18 21:32:05 +00:00
Jakob Bornecrantz 4539b74e56 aux/vk: Re-org one function (NFC) 2022-02-18 21:32:05 +00:00
Jakob Bornecrantz 20c7e30304 aux/vk: Remove unnecessary breaks 2022-02-18 18:29:28 +00:00
Jakob Bornecrantz 0126819f21 aux/vk: Use aspect mask that covers both depth and stencil for mixed formats 2022-02-18 18:29:28 +00:00
Jakob Bornecrantz 9a884931bb c/client: Use correct VkImageAspectFlags in barriers 2022-02-17 19:29:57 +00:00
Jakob Bornecrantz 223aa515fd u/device: Add u_device_get_view_poses helper 2022-02-16 23:15:07 +00:00
Jakob Bornecrantz 47ae7c19c3 u/trace_marker: Add driver category 2022-02-16 22:25:55 +00:00
Jakob Bornecrantz 91a2a5d29d c/client: Set correct optimal layout for client swapchains 2022-02-16 18:20:44 +00:00
Mateo de Mayo 83fceec521 t/slam: Add filtering methods to the tracker
Adds three toggleable filters:
- Moving average
- Exponential smoothing
- One euro filter
2022-02-14 10:22:05 -03:00
Mateo de Mayo b90d60a9ce t/slam: Add prediction types that integrate gyro and accel samples 2022-02-14 10:22:05 -03:00
Mateo de Mayo 8820a3e99c a/math: Add m_filter_euro_quat 2022-02-14 10:22:05 -03:00
Mateo de Mayo 06597a0655 a/math: Add math_quat_{len, unrotate} 2022-02-14 10:22:05 -03:00
Mateo de Mayo cf5574a4e9 m/space: Add m_space_relation_interpolate 2022-02-14 10:22:05 -03:00
Moses Turner e553d1993b u/sink: refactor u_sink_combiner
So you can use the enforcing-genlock bit elsewhere
2022-02-10 10:55:06 -06:00
Ryan Pavlik acc9683e0f a/util: Fix copy/move assign of history buf 2022-02-08 17:08:00 -06:00
Ryan Pavlik a904914e6e a/util: Wrap "just enough" of the ring buffer stuff for generic use from C. 2022-02-08 13:18:15 -06:00
Ryan Pavlik 3b0252bda8 a/util: Don't make the RingBufferHelper compile-depend on max size. 2022-02-08 13:18:05 -06:00
Ryan Pavlik c079eabfdf a/util: iterator cleanups to reduce diffs, using a self typedef. 2022-02-08 17:00:11 +00:00
Ryan Pavlik 6908486022 a/util: Add age clamping to history buffer. 2022-02-08 17:00:11 +00:00
Ryan Pavlik 603117a1d1 a/util: Split history buf file up, factor out more generic iterator base 2022-02-08 17:00:11 +00:00
Ryan Pavlik 94e053d0d4 a/math: More relation history cleanup 2022-02-08 17:00:11 +00:00
Ryan Pavlik 1c183a9eeb a/math: Simplify m_history_relation using standard algorithms 2022-02-08 17:00:11 +00:00
Ryan Pavlik 90c74578d1 a/util: Refactor HistoryBuffer to be more like a standard container. 2022-02-08 17:00:11 +00:00
Ryan Pavlik 8030468f95 os: Add a c++ wrapper for our mutex types 2022-02-08 17:00:11 +00:00
Ryan Pavlik 9b6d117970 a/util: Some reorg and renaming in upa to be closer to upc 2022-02-08 10:51:40 -06:00
Ryan Pavlik 78e9acc6c4 a/util: Remove unused member in upc 2022-02-08 10:51:39 -06:00
Ryan Pavlik 0f8565ec71 a/util: Some further internal renames for pacing 2022-02-08 10:51:39 -06:00
Ryan Pavlik 6345962d66 a/util: Rename app_time_* in u_pc to comp_time_* 2022-02-08 10:51:39 -06:00
Ryan Pavlik d176b18598 a/util: Allow upc present offset to be variable. 2022-02-08 10:51:39 -06:00
Ryan Pavlik 2238aff403 a/util: Catch frame_id mismatch in u_pacing_compositor 2022-02-08 10:51:39 -06:00
Ryan Pavlik a2e1eb7e75 a/util: Have all timestamps be injected into pacing.
No more calling os_monotonic_get_ns() inside the pacing helpers.
Much better testability.
2022-02-08 10:51:39 -06:00
Ryan Pavlik d969bc334f a/util: More pacing documentation 2022-02-07 13:11:00 -06:00
Jakob Bornecrantz 309c45f4c4 aux/bindings: Tidy 2022-01-31 22:43:09 +00:00
Jakob Bornecrantz 037b161fb4 aux/binding: Rename function 2022-01-31 22:43:09 +00:00
Jakob Bornecrantz f0a5f1977c aux/bindings: Add OpenXR Identifier 2022-01-31 22:43:09 +00:00
Ryan Pavlik 9b9e23be62 a/util: Add a new constructor and a new method to u_string_list 2022-01-24 16:34:45 -06:00
Ryan Pavlik d057f00b54 doc: Fix broken link 2022-01-24 14:08:06 -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
Moses Turner 7b3378b28a aux/tracking; st/gui: save/load calibration gui state to file 2022-01-18 17:18:43 +00:00
Moses Turner 254c233c76 util/u_config_json: add functions to save/load gui state to file 2022-01-18 17:18:43 +00:00
Ryan Pavlik 6677d42642 a/util: Frame pacing docs and some error handling 2022-01-15 01:06:48 +00:00
Ryan Pavlik a7c22fd185 a/util: Rename u_render_timing to u_pacing_app and u_frame_timing to u_pacing_compositor.
They both control pacing, but for different uses. Neither actually performs any timing.
2022-01-15 01:06:48 +00:00
Ryan Pavlik 365b3ca8d4 a/util: Make display timing helper more configurable.
Also comment some display timing interfaces better.
2022-01-15 01:06:48 +00:00
Christoph Haag f978f2691d aux/vk: Don't leak VkExtensionProperties 2022-01-13 23:48:44 +01:00
Christoph Haag 147851ffdc aux/ft: Add some documentation comments 2022-01-13 23:07:57 +01:00
Christoph Haag 3eecb0f991 aux/vk: Add vkGetPhysicalDeviceSurfaceCapabilities2EXT function 2022-01-13 23:07:16 +01:00
Christoph Haag 693aceb755 aux/vk: Add VK_EXT_display_control functions 2022-01-13 23:07:16 +01:00
Christoph Haag ec64a856b4 aux/vk: Use VK_DEBUG instead of U_LOG for vk device ext selection 2022-01-13 23:07:01 +01:00
Christoph Haag 8e020fac2d c/main: Add and enable VK_EXT_display_control optional device ext 2022-01-13 23:06:40 +01:00
Christoph Haag b7d179b1b3 c/main: Add display surface counter optional vk instance ext 2022-01-13 23:06:15 +01:00
Christoph Haag ce6339e237 c/main: Make more use of string list for device ext 2022-01-13 23:05:06 +01:00
Christoph Haag 171a3830b9 u/string_list: Add constructor from existing list 2022-01-13 23:04:17 +01:00
Christoph Haag 13e3db6128 aux/vk: Add vkEnumerateInstanceExtensionProperties 2022-01-13 23:03:38 +01:00
Christoph Haag 7174545ee8 aux/vk: remove duplication of vk_get_loader_functions functionality 2022-01-13 23:03:38 +01:00
Christoph Haag 20f265d9ae u/string_list: Add contains function 2022-01-13 22:37:25 +01:00
Christoph Haag 07ddac523c build: Build u_string_list with meson too 2022-01-13 22:37:25 +01:00
Christoph Haag 77f19161fb aux/binding: extract monado_binding earlier from list 2022-01-13 14:16:20 +01:00
Jakob Bornecrantz d8cce715da u/bindings: Remove duplicate paths in by_length 2022-01-13 14:01:44 +01:00
Christoph Haag 435503f2c4 aux/bindings: Further cleanup, use object members for Component
instead of passing json data around
2022-01-13 14:01:44 +01:00
Christoph Haag 450eb182d0 aux/bindings: Minor refactor of generator scripts 2022-01-13 14:01:44 +01:00
Christoph Haag 7917110e1c aux/bindings: Remove unnecessary pathgroup parameter 2022-01-12 23:03:30 +01:00
Christoph Haag 595ca11c68 aux/bindings: Don't generate invalid code for missing monado_binding
The closing } for a binding template was not written.
2022-01-12 23:03:30 +01:00
Christoph Haag 47801859e7 aux/bindings: Replace "feature" with "component" 2022-01-12 23:02:53 +01:00
Christoph Haag a3cd52ae8f aux/bindings: Actually generate code to convert xrt_input_name enum 2022-01-12 23:02:53 +01:00
Christoph Haag 153280607f aux/bindings: Split function to convert input/output enums into two
xrt_input_name and xrt_output_name are actual different types.
2022-01-12 23:02:53 +01:00
Jarvis Huang 97100821d2 ipc/android: Add shutdown mechanism back 2022-01-05 14:59:39 +00:00
Jarvis Huang 6a61ed5695 ipc/android: Stop runtime service when no clients connected 2022-01-05 14:59:39 +00:00
Moses Turner 683dc4ea56 gui: add SLAM Stereo option to calibrate gui 2022-01-04 18:19:17 +00:00
Moses Turner 17034f0283 aux/tracking: assert on fisheye mat size for fisheye path 2022-01-04 18:19:17 +00:00
Mateo de Mayo 7e0d93e3fb tests: Add tests for quatexpmap interface functions and minor changes in their docs 2021-12-22 12:16:27 -03:00
Mateo de Mayo 70576c2f02 t/slam: Implement basic prediction from last tracked poses 2021-12-21 11:43:17 +00:00
Mateo de Mayo 090e465dda external: Add semver to slam_tracker (1.0.0) and pose timestamps 2021-12-21 11:43:17 +00:00
Mateo de Mayo 74e149159b t/slam: Add SLAM_SUBMIT_FROM_START envvar
Useful for setups that need some tuning to their sensors before sending
data to a SLAM system.
Removes the submit_frames property from wmr_camera as this replaces it.
2021-12-21 11:43:17 +00:00
Mateo de Mayo 76d7729e4d m/vec3: Add operator/ for scalar division 2021-12-21 11:43:17 +00:00
Mateo de Mayo bcb4cd82cd aux/math: Use dt in calculation of ang vel between quat diference 2021-12-21 11:43:17 +00:00
Mateo de Mayo 3e8a070e93 u/var: Add u_var_combo 2021-12-21 11:43:17 +00:00
Christoph Haag 8bbaf2a05b a/tracking: Use #pragma message instead of #warning
Avoids warning
../src/xrt/auxiliary/tracking/t_tracker_slam.cpp:66:2: warning: #warning is a GCC extension
2021-12-14 13:51:16 +01:00
Mateo de Mayo fe4f6c6eb0 misc: Improve wmr and euroc docs, fix ht memory leak, stride for cv::Mats 2021-12-12 13:13:18 -03:00
Mateo de Mayo cd0342c8dc aux/util: Add u_frame_create_roi 2021-12-12 13:12:42 -03:00
Mateo de Mayo fa88ce5f3f u/var: Add u16 var kind 2021-12-12 13:06:04 -03:00
Mateo de Mayo 471ca9530b m/3dof: Add reset functionality 2021-12-12 13:06:04 -03: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 26e5f6eee7 a/math: Bring the C++ wrapper for relation_history up to parity.
Also add tests for it too.
2021-12-10 21:06:04 +00:00
Ryan Pavlik ef4550c268 a/math: Add a "get latest" to relation history as well. 2021-12-10 21:06:04 +00:00
Ryan Pavlik aff7079dca a/math: Let relation history report its size 2021-12-10 21:06:04 +00:00
timongentzsch ba353e276d Bugfix in solving quadratic equation for FoV calculation 2021-12-10 18:08:50 +00:00
Ryan Pavlik e5e8451a81 a/math: Update relation history to return something from push. 2021-12-09 13:44:12 -06:00
Mateo de Mayo b29c4ee78f u/json: Update macro signatures to fix MSVC builds 2021-12-08 15:35:54 +00:00
Ryan Pavlik 0b11ce3a27 a/vk: Add timeline semaphore to the list of optional features. 2021-12-08 00:54:12 +00:00
Ryan Pavlik 2af3798e44 a/vk: Fix typo in physical device feature chain 2021-12-08 00:54:12 +00:00
Jakob Bornecrantz 98982bd25b a/math: Fix warning in math_matrix_2x2_multiply 2021-12-07 13:30:45 +00:00
Jakob Bornecrantz 6598217a01 u/vive: Correct Vive Pro model_name
Fixes #106
2021-12-06 19:43:49 +00:00
Jakob Bornecrantz b621955873 a/vk: Put vendor extensions last 2021-12-06 17:25:09 +00:00
Jakob Bornecrantz 5289b081c5 a/vk: Check for VK_KHR_timeline_semaphore 2021-12-06 17:25:09 +00:00
Jakob Bornecrantz 0eca48ec2b a/vk: Add all functions for VK_KHR_timeline_semaphore 2021-12-06 17:25:09 +00:00
Jakob Bornecrantz 7d529a3dfc a/vk: Change script to make it clang-format friendly 2021-12-06 17:25:09 +00:00
Jakob Bornecrantz 94ad966e4d a/vive: Also correctly error on unknown controller warnings 2021-12-06 11:44:33 +00:00
Jakob Bornecrantz aace8ff62d a/vive: Look for model_name correctly 2021-12-06 11:44:33 +00:00
Jakob Bornecrantz a6b4e6a830 m/3dof: Show more in the variable tracker 2021-12-05 15:30:14 +00:00
Jan Schmidt bb5aa35c00 a/math: Add math_matrix_3x3_identity()
Add an initialisation function to set a 3x3 matrix
to the identity matrix.
2021-12-05 00:06:05 +11:00
Jakob Bornecrantz e21e28c455 u/vive: Be more verbose if we fail to parse model_[name|number] 2021-12-03 21:13:57 +00:00
Moses Turner 31f155acbd cmake: make xrt-external-json public for aux_tracking 2021-12-03 19:22:57 +00:00
Jakob Bornecrantz 8c04bf1274 a/math: Add C++ RelationHistory interface class 2021-12-03 14:00:37 +00:00
Jakob Bornecrantz efde7f185c a/math: Put m_relation_history_get out argument last 2021-12-03 14:00:32 +00:00
Jakob Bornecrantz ed48e6d47d a/math: Constify in argument 2021-12-03 13:53:46 +00:00
Ryan Pavlik 2b64e5b965 a/math: Extend m_relation_history to pass the tests. 2021-12-03 13:53:46 +00:00
Ryan Pavlik 217dee2ce3 a/math: Add m_relation_history_result return from m_relation_history_get 2021-12-03 13:45:43 +00:00
Ryan Pavlik 01e3d9871c a/math: Replace RH_DEBUG for relation history with better use of logging macros 2021-12-03 13:45:43 +00:00
Jarvis Huang 27550ffa39 aux/android: Looper trick for NativeActivity with app-glue 2021-12-02 09:40:36 -06:00
Mateo de Mayo 07bd614930 t/file: Extend calibration save/load interfaces with new v2 format 2021-12-02 11:27:42 -03:00
Mateo de Mayo 1483ec32c5 t/file: Implement json save/load for v2 calibration 2021-12-02 11:26:11 -03:00
Mateo de Mayo 31f71251e0 t/util: Add dump function for single camera calibration struct 2021-12-01 18:32:16 +00:00
Mateo de Mayo 1cc80f5476 t/slam: Use euroc recorder in slam tracker 2021-12-01 13:45:18 +00:00
Mateo de Mayo 91ecbdb7fb t/euroc: Add euroc dataset recorder 2021-12-01 13:45:18 +00:00
Mateo de Mayo e245f4e5a9 u/sink: Allow u_sink_queue to queue more than one frame
Passing max_size=1 gives a similar behaviour as before, although instead
of discarding the last enqueued frame, it just ignores the new frame.
2021-12-01 13:45:18 +00:00
Mateo de Mayo 33d360083f external/slam: Update slam_tracker interface to support dynamic features 2021-11-30 10:01:33 -03:00
Moses Turner 8cde257817 aux/math: add vec3 overloads for scalar multiplication 2021-11-29 23:23:57 -06:00
Jakob Bornecrantz 3f98ea5595 xrt: Tidy s/ll/log_level/g
Also make sure all variable logging uses the right type for logging variables.
2021-11-22 14:29:10 -06:00
Ryan Pavlik 27a8ec675b a/util: Add utility for lists of strings, like extension lists. 2021-11-20 17:21:02 +00:00
Jan Schmidt 760e8dd3ad meson: Add GStreamer recording support 2021-11-19 04:05:40 +11:00
Ryan Pavlik 2e323add6f drivers: Migrate num_ to _count 2021-11-13 12:04:38 +00:00
Ryan Pavlik dfa0aba496 aux: Migrate num_ to _count 2021-11-13 12:04:38 +00:00
Ryan Pavlik 469b9d907d st/oxr: Rename all num_ in the state tracker, too. 2021-11-13 12:04:38 +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
Mateo de Mayo b94b7d1f52 u/json: Implement C++ wrapper for cJSON 2021-11-12 15:33:06 -03:00
Mateo de Mayo 87a1198b0a misc: Address compilation warnings and fix u_json_get_bool 2021-11-12 15:33:06 -03: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
Jakob Bornecrantz 62ca16c70e a/math: Make sure it's safe to pass in the result as either left or right 2021-11-12 10:27:54 +00:00
Jakob Bornecrantz e8b0ab3b35 aux/vk: Add many more helper functions 2021-11-10 14:22:28 +00:00
Ryan Pavlik 35d7e85266 a/vk: Return of the justification and function rename 2021-11-09 15:36:24 -06:00
Ryan Pavlik b816c08141 a/vk: Add to the file comments mentioning the script. 2021-11-09 11:05:15 -06:00
Ryan Pavlik 8a56046c1d a/vk: Also generate the extension list/checking 2021-11-09 11:05:15 -06:00
Ryan Pavlik 9fc992d540 a/vk: Normalize member names in extensions 2021-11-09 11:05:15 -06:00
Ryan Pavlik 01c02897dc a/vk: Update vulkan files: generate from script 2021-11-09 11:05:15 -06:00
Jakob Bornecrantz a081bacc5d aux/vk: Guard vkSignalSemaphore with VK_KHR_timeline_semaphore 2021-11-08 17:36:58 +00:00
Jakob Bornecrantz 4c4e30d875 aux/vk: Add more functions 2021-11-08 17:21:31 +00:00
Ryan Pavlik 15c8414155 cmake: Un-nest a conditional 2021-11-04 15:36:58 +00:00
Ryan Pavlik 85dab57936 a/util: Fix some it's vs its 2021-11-03 17:28:41 -05:00
Ryan Pavlik 334bd83619 a/tracking: Fix some it's vs its and other minor doc tweaks 2021-11-03 17:27:36 -05:00
Ryan Pavlik f4b61d9e41 a/os: Fix some it's vs its. 2021-11-03 17:24:17 -05:00
Ryan Pavlik a6ae6eb095 a/math: Fix some it's vs its. 2021-11-03 17:23:51 -05:00
Ryan Pavlik 86c7a27156 a/tracking: Fix doxygen warnings about invalid link requests 2021-11-03 17:13:38 -05:00
Mateo de Mayo 773eccad6c docs: Move some driver entities into @addtogroup and other NFC 2021-10-28 11:40:49 +00:00
Mateo de Mayo 891842cb51 os: Change os_nanosleep parameter to int64_t 2021-10-28 11:40:49 +00:00
Jarvis Huang c635375dc7 aux/android: Remove unused header file 2021-10-27 13:44:20 +00:00
Jarvis Huang 210a6908cd ipc/android: Avoid deadlock on Android 2021-10-27 13:44:20 +00:00
Moses Turner 0dee9094b3 aux/math: encourage people to use normalized inputs to math_quat_from_plus_x_z 2021-10-26 10:56:41 +00:00
Ryan Pavlik 4ae1a1753c util: Fix typo 2021-10-19 16:11:34 -05:00
Ryan Pavlik d4d6a1a73f util: Fix some truncation warnings, mostly by explicitly casting 2021-10-19 16:11:34 -05:00
Ryan Pavlik 5f8cb4e227 a/math: Fix some truncation warnings. 2021-10-19 15:31:29 -05:00
Ryan Pavlik c47463b4eb aux/util: Fix log message formatting on Windows. 2021-10-15 15:05:34 -05:00
Ryan Pavlik c40553580d util: Fix copyright typo. 2021-10-15 14:55:12 -05:00
Ryan Pavlik d6177777e5 os: Fix os_nanosleep on Windows. 2021-10-15 13:05:18 -05:00
Ryan Pavlik 3351ef5396 os: Add new thread helper methods 2021-10-15 13:05:18 -05:00
Ryan Pavlik 793a7d659d os: Improve docs for thread helper. 2021-10-15 11:57:44 -05:00
Jakob Bornecrantz 580a2f6fff u/sink: Add u_sink_combiner helper to combine frames to stereo frames 2021-10-09 22:28:11 +01:00
Jakob Bornecrantz e8f7f2de0a t/util: Add function to dump a stereo camera calibration 2021-10-09 22:28:11 +01:00
Mateo de Mayo 9b21b7d36c t/slam: Use debug assertions and ensure timestamps come in order 2021-10-06 16:41:18 -03:00
Mateo de Mayo 67a5946778 xrt: Add units to xrt_imu_sample fields
After using the structure a bit more, and realizing that while different components
sometimes use different units, it is easier to force them to send the imu_samples
in a standardized unit.
2021-10-06 16:41:18 -03:00
Mateo de Mayo 5845155229 xrt: Use doubles in xrt_vec3_f64 2021-10-06 15:23:28 -03:00
Moses Turner e134b24f8f u/var: Add u_var_draggable_f32 2021-10-02 23:05:35 +01:00
Moses Turner 5efdea78da aux/gst: Expose function to get offset from global time to video timestamp 2021-10-02 23:05:26 +01:00
Ryan Pavlik 37c5eee02a a/math: Refactor one euro filter code 2021-10-02 23:05:22 +01:00
Moses Turner 52f1ce14ca aux/math: Add m_vec2_lerp 2021-10-02 23:05:19 +01:00
Jakob Bornecrantz 73d631c775 cmake: Make math depend on util
This fixes the build when tracing is enabled.
2021-09-29 21:38:33 +00:00
Jakob Bornecrantz 6f66ada6d9 u/vive: Remove old code and tidy camera calibration extraction 2021-09-29 20:48:54 +00:00
Jakob Bornecrantz 08721858dc u/vive: Compare calibration solutions 2021-09-29 20:48:54 +00:00
Jakob Bornecrantz 4430dbe5d5 u/vive: Rework how calibration is extracted 2021-09-29 20:48:54 +00:00
Jakob Bornecrantz a15e37587b u/vive: Add more camera fields 2021-09-29 20:48:54 +00:00
Mateo de Mayo f88befbdbc t/slam: Replace assertion with return -1 if SLAM_CONFIG is not provided 2021-09-28 16:06:52 -03:00
Mateo de Mayo debdb11e02 t/slam: Miscelaneous NFC changes
- Use @todo instead of TODO for doxygen
- Improve the slam_tracker interface documentation
- Move euroc functions declared by macros into extern C
2021-09-28 12:49:36 +00:00
Mateo de Mayo 1a5af03111 t/slam: Move pose corrections into the tracked devices
This discards the pose correction logic used that was for the D455 not for
an euroc dataset. It will be reintroduced in a later commit with an
appropriate device.
2021-09-28 12:49:36 +00:00
Moses Turner 1c99e8edb5 meson: add option for tracing; align messages 2021-09-28 12:41:01 +00:00
Mateo de Mayo d61a695f13 meson: Allow percetto to be used with meson
You may need to specify --libdir=$installdir/lib when installing percetto,
otherwise it gets installed on $installdir/lib/x86_64-linux-gnu by default and
meson might not look for the appropriate pkgconfig in there.
2021-09-28 12:41:01 +00:00
quic_zhibinw f9d0bfb80a aux/vk: Apply the protected content flag if app pass it when create swapchain 2021-09-28 15:33:15 +08:00
Ryan Pavlik 995866a576 cmake: Improve use of percetto 2021-09-27 09:26:15 -05:00
Jakob Bornecrantz de283a8b0c t/calibration: Add support for findChessboardCornersSB 2021-09-20 15:54:00 +00:00
Jakob Bornecrantz d86adce39d u/historybuf: Tidy code and work around clang-format CI troubles 2021-09-20 15:54:00 +00:00
Ryan Pavlik a10a4ab123 a/math: Fix truncation warning due to double literal in float parameter. 2021-09-20 10:06:33 -05:00
Ryan Pavlik 967efb4a12 a/os: SetWaitableTimer wants durations in hundreds of ns. 2021-09-20 09:25:31 -05:00
Jakob Bornecrantz b4ce66a5dc u/var: Remove sink variable tracking 2021-09-17 15:27:23 +01:00
Jakob Bornecrantz 0157b2d4b0 t/debug: Update HelperDebugSink to use new u_debug_sink 2021-09-17 13:39:50 +01:00
Jakob Bornecrantz 2404257077 t/hsv: Switch to u_sink_debug 2021-09-17 13:39:50 +01:00
Jakob Bornecrantz b8055eba6a u/var: Add u_sink_debug 2021-09-17 13:01:02 +01:00
Jakob Bornecrantz da628514d8 u/sink: Add u_sink_debug struct helper 2021-09-17 13:01:02 +01:00
Christoph Haag a3b453dae7 t/slam: Print an error when SLAM_CONFIG is not set
Fixes crash

terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
2021-09-16 23:33:05 +02:00
Christoph Haag ec5b5f9e1d t/slam: Only warn for incompatible OpenCV 2021-09-16 23:33:05 +02:00
Mateo de Mayo 549c59a493 t/slam: Add SLAM tracking module 2021-09-15 19:03:55 +00:00
Simon Zeni 26c684d42f aux/vk: Add VK_EXT_acquire_drm_display functions 2021-09-15 18:44:18 +00:00
Moses Turner 947bac9e54 aux/math: Implement m_relation_history
to keep track of past poses of HMDs, controllers, etc.
2021-09-15 12:13:14 -05:00
Moses Turner 7f69dc795f d/ht; aux/util: Move ringbuffer implementation into aux/util 2021-09-15 12:13:00 -05:00
Moses Turner 9960f0ab22 aux/math: Add tracing for m_predict 2021-09-15 12:13:00 -05:00
Jakob Bornecrantz cb7563ecd6 m/predict: Add C++ extern guards 2021-09-14 13:42:20 +01:00
Jakob Bornecrantz 608bb987d9 u/[rt|ft]: Adjust margins
This commit adds more margins to both the app and the compositor, with the
compute work this yeilds basically no frame misses for the compositor.
2021-09-13 21:50:20 +01:00
Jakob Bornecrantz dda80836c6 u/ft: Rename min_margin_ns to margin_ns 2021-09-13 21:49:31 +01:00
Mateo de Mayo d9482d0b76 u/var: Add f64 kind 2021-09-13 18:59:03 +01:00
Jakob Bornecrantz 129902750d u/sink: Add conversion from L8 to R8G8B8 2021-09-03 22:16:21 +01:00
Moses Turner cef922946a aux/vive: Parse camera calibration 2021-09-03 21:06:18 +00:00
Moses Turner a1b683385f aux/util: Add u_frame_clone 2021-09-03 21:06:18 +00:00
Christoph Haag 2609502150 aux/vk: Add and document tegra specific dedicated allocation workaround 2021-09-03 15:32:35 +00:00
Christoph Haag 4982a14541 aux/vk: Add Tegra detection 2021-09-03 15:32:35 +00:00
Christoph Haag e7d047f956 aux/vk: debug print preferred/required dedicated allocation 2021-09-03 15:32:35 +00:00
Christoph Haag 7dcd420df8 aux/vk: Add VK_FORMAT_R16G16B16A16_UNORM to vk_color_format_string 2021-09-03 15:32:35 +00:00
Jakob Bornecrantz 3bab14fa3b t/psmv: Fix misconception with disparity transform 2021-09-01 22:00:46 +01:00
Mateo de Mayo de3bfc193d u/var: Add button and u64 var kinds
Also: fix on_ff_vec3_var
2021-08-27 13:02:18 +00:00
Jakob Bornecrantz 8b8891f60f u/sink: Make sure to add deinterleaver sink to context 2021-08-23 20:25:52 +01:00
Jakob Bornecrantz c83dc7b323 u/sink: Make sure to add split sink to context 2021-08-23 20:25:08 +01:00
Jakob Bornecrantz a8251815af t/framemat: Update confusing comments, sorry. 2021-08-23 19:42:45 +01:00
Christoph Haag 602ce70a0a aux/vk: Only use dedicated allocation when it is required
On tegra, when VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT is set for color image usage
with VK_FORMAT_R16G16B16A16_SFLOAT, dedicated allocation is preferred, but not required.

When using dedicated allocation in this case, we get only a black texture,
and when blitting from that texture, we get a kernel driver error:
gk20a_fifo_handle_mmu_fault_locked:1721 [ERR]  fake mmu fault on engine 0, engine subid 1 (hub), client 1 (ce0), addr 0x46cd8aa000, type 15 (poisoned), access_type 0x00000000,inst_ptr 0x212ef3000

Only using dedicated allocation when it is required works around this issue.
2021-08-23 13:01:05 +00:00
Jakob Bornecrantz 49e6514a3d u/sink: Make sure to free frame when we fail to decode 2021-08-20 18:55:21 +01:00
Jakob Bornecrantz 022bf18200 u/sink: Make sure to add quirk sink to context 2021-08-20 17:14:43 +01:00
Jakob Bornecrantz a89c8309c7 u/vive: Pass in logging level to parse function 2021-08-20 13:42:11 +01:00
Jakob Bornecrantz 00aca14832 u/vive: Add vive_config_teardown function to free any pointers that needs freeing. 2021-08-20 13:42:11 +01:00
Moses Turner 6e5efc850e aux/math: Add euro filtering 2021-08-18 18:56:10 +00:00
Jakob Bornecrantz 05c61511ab m/vec2: Add a few more scalar functions 2021-08-17 12:04:49 +01:00
Jakob Bornecrantz 70ceabb56e m/mat4: Add Matrix 4x4 f64 functions 2021-08-17 12:04:49 +01:00
Moses Turner 13f2b3b7c4 aux/util: Add get_vec3_f64_array 2021-08-16 21:02:27 +01:00
Moses Turner 0b2dd35b60 aux/os: Add os_mutex_trylock 2021-08-16 21:02:27 +01:00
Moses Turner 7356100696 aux/math: Add m_vec3_project, m_vec3_orthonormalize, m_vec3_lerp, m_vec2_normalize, math_lerp 2021-08-16 21:02:27 +01:00
Christoph Haag 32d09aadc3 aux/vk: Add vkGetFenceStatus function 2021-08-16 15:37:29 +02:00
Christoph Haag 1b179306dc comp: Only use dedicated allocation when supported/preferred
Fixes OpenGL depth formats on Tegra
2021-08-09 15:17:25 +02:00
Christoph Haag b4145a1543 aux/vk: Print all used device extensions in XRT_LOG=trace 2021-08-09 15:15:57 +02:00
Moses Turner e8e977faa2 inc/xrt, aux/bindings: fix typo XRT_OUTPUT_NAME_XBOX_HAPTIC_RIGHTT -> XRT_OUTPUT_NAME_XBOX_HAPTIC_RIGHT 2021-07-29 20:45:05 +00:00
humbletim 0b36586fe7 add 'Vive MV.' model_number variant 2021-07-27 20:02:33 -04:00
Christoph Haag c6b5c5322c aux/vk: Print info for setting CAP_SYS_NICE 2021-07-15 16:35:06 +00:00
Christoph Haag c676020bdb aux/vk: Add VK_ERROR_NOT_PERMITTED_EXT error code string 2021-07-15 16:35:06 +00:00
Christoph Haag 82140ea83b aux/vk: Print vkCreateDevice error num too 2021-07-15 16:35:06 +00:00
Jakob Bornecrantz cb9ce8b34e t/calibration: Add support for RGB images 2021-07-13 15:01:00 +00:00
Jakob Bornecrantz dbb6b1f43c t/calibration: Make it possible to select number distortion parameters 2021-07-13 15:01:00 +00:00
Jakob Bornecrantz 9aff6fb9b3 u/sink: Add special converter sink that passes through YUV, L8 and RGB 2021-07-13 15:01:00 +00:00
Jakob Bornecrantz c278618ec1 t/hsv: Add tracing support 2021-07-09 21:38:02 +01:00
Jakob Bornecrantz cdf30b00e1 u/sink: Add tracing support 2021-07-09 21:36:57 +01:00
Jakob Bornecrantz e04decbe64 u/trace_marker: Add sink category 2021-07-09 19:19:50 +01:00
Jakob Bornecrantz 5838d737b3 u/sink: Tidy and add some comments to queue sink (NFC) 2021-06-27 00:59:24 +00:00
Dan Weatherford fabf01ff39 aux/math: Add math_quat_slerp() 2021-06-25 17:40:07 +01:00
Jan Schmidt 4581a7a9a6 aux/math: Implement math_matrix_3x3_inverse.
Add a function to invert 3x3 matrices, to reverse 2D
affine transforms.
2021-06-25 17:40:07 +01:00
Moses Turner 93ec678110 aux/util: Add North Star "VIPD" and "polynomial 2D" distortion methods 2021-06-21 12:29:31 -05:00
Moses Turner 017997fba3 aux/math: Add math_map_ranges function 2021-06-21 12:29:31 -05:00
Moses Turner 01bfed1694 aux/util: Make new u_extents_2d as alternative to u_device_simple_info 2021-06-21 14:49:35 +00:00
Ryan Pavlik ad44f42b24 aux/vk: Add fence import for windows 2021-06-15 17:37:14 -05:00
Jakob Bornecrantz 8a7d857dde aux/vk: Add the option to handle optional device features 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 4bbc13f5d4 aux/vk: Add support for VK_EXT_robustness2 and tidy 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz bf27691280 aux/vk: Refactor out optional extension handling 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 57d24ecdbb aux/vk: Make it possible to get a compute only queue 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz c42d681db0 aux/vk: Add vkCmdCopyBufferToImage and vkCmdCopyImageToBuffer 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 8899b267a6 aux/vk: Add vkCmdDispatch, vkCreateComputePipelines and vkResetDescriptorPool functions 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz aa3f071d2b u/trace_marker: Refactor init to fix bug 2021-06-14 19:12:14 +01:00
Jakob Bornecrantz c2c49cb6d3 u/trace_marker: Make sure to include headers outside of extern block 2021-06-14 19:12:12 +01:00
Jakob Bornecrantz b7b469089c t/fm: Add simple FrameMat that wraps a cv::Mat 2021-05-31 13:43:19 +00:00
Jakob Bornecrantz 855cdb4c29 aux/vk: Tidy code (NFC) 2021-05-18 03:48:50 +01:00
Moses Turner 36bc45b686 util: make sure u_config_json.file_loaded is false if we didn't load the file 2021-05-18 01:22:39 +00:00
Christoph Haag 82d9ed75c2 aux/vk: Check that native handles are importable 2021-05-18 03:01:44 +02:00
zhibinw 92565b7f21 ipc/android: support create surface from runtime. 2021-05-17 16:20:29 +00:00
Moses Turner 4ff7fb74ff aux/util: only do tracing things if XRT_FEATURE_TRACING is enabled 2021-05-10 10:10:18 -05:00
Jakob Bornecrantz b3455555c2 u/trace_marker: Use Percetto/Perfetto for tracing 2021-05-05 17:00:35 +01:00
Ryan Pavlik b6f440fa26 aux/tracking: Move general docs to a separate header. 2021-05-04 11:21:46 -05:00
Ryan Pavlik 77baa8b7e6 aux/android: Move code into official namespaces 2021-05-04 11:21:46 -05:00
Ryan Pavlik 265c49d337 a/math: Move functionality into official namespaces. 2021-05-04 11:04:32 -05:00
Ryan Pavlik 2ae3ce883d a/util: Namespace documentation 2021-05-04 11:04:32 -05:00
Ryan Pavlik d88aefafbc a/tracking: Migrate C++ APIs to the official namespaces now that we have some. 2021-05-04 10:34:43 -05:00
Ryan Pavlik a66f567392 aux/android: Remove unused include 2021-04-30 17:57:50 -05:00
Ryan Pavlik cf2abe7d88 u/process: Fix a warning by marking a function as maybe unused. 2021-04-30 17:57:50 -05:00
Ryan Pavlik 125b0799a3 aux/android: Update wrappers 2021-04-30 17:57:50 -05:00
Ryan Pavlik 45c0ca2ef9 aux/android: Expose native pointer from MonadoView 2021-04-30 17:34:21 -05:00
Ryan Pavlik faa753c667 android: Annotation, docs, and formatting improvements for MonadoView 2021-04-30 17:34:21 -05:00
Ryan Pavlik e4f2ac3286 android: Revise MonadoView so it doesn't require an Activity. 2021-04-30 17:34:21 -05:00
Ryan Pavlik 417de87cb2 a/util: Add a generic callbacks collection.
Based on the work for the Android surface callbacks,
just finished being made generic since we'll need to reuse it.
2021-04-30 17:34:21 -05:00
Ryan Pavlik e82fafb186 cmake: Allow C++17 mode on all platforms, all modules.
Remove per-module C++17 settings.
2021-04-30 15:37:04 -05:00
Ryan Pavlik 23c73e145b a/util: Make JSON reading more robust.
We were missing some null checks.
2021-04-28 21:13:34 +00:00
Ryan Pavlik cfbb81cb71 a/util: Add schema directive to json before writing. 2021-04-28 21:13:34 +00:00
Jakob Bornecrantz 5befa76f42 m/3dof: Add manual way to set the gyro bias 2021-04-28 12:25:53 +00:00
Ryan Pavlik 8af1bfbf8c a/u_logging: Docs for logging. 2021-04-27 22:05:00 +00:00
Ryan Pavlik 2c382734ca a/bindings: Clean up formatting of script 2021-04-27 16:43:38 -05:00
Ryan Pavlik d8cf72f6d9 a/bindings: Simplify as suggested by IDE 2021-04-27 16:43:38 -05:00
Ryan Pavlik 5a7412e86d a/bindings: Fix typos 2021-04-27 16:43:38 -05:00
Ryan Pavlik 4dd96a666b u/ht: Const-correctness 2021-04-26 22:38:42 +00:00
Ryan Pavlik bc279076b8 u/ht: Port to new unit-vector defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik a80d159b07 t/ht: Port to using unit-vector defines. 2021-04-26 22:38:42 +00:00
Ryan Pavlik 6f46fcc251 aux/vive: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik 20053252aa m/space: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik cb8925ae04 u/ht: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik edc6490d74 a/math: Port to using the new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik 2adbde4673 a/util: Add u_device_get_view_pose helper function.
I saw many, many exact copies of this function in the code: good to de-duplicate them.
2021-04-26 22:38:42 +00:00
Jakob Bornecrantz 8c26be37ae u/ft: Warn when missing frames 2021-04-26 22:55:41 +01:00
Boris-Chengbiao Zhou d05aa9a458 aux/vk: Extend the correct structure for VK_EXT_global_priority 2021-04-24 17:50:18 +02:00
Jakob Bornecrantz 0058525457 util: Depend on bindings 2021-04-19 14:26:51 +01:00
Christoph Haag 471b876725 u_config_json: Load tracking override pose input name 2021-04-19 12:53:47 +02:00
Christoph Haag 664c103a3e u_config_json: Store tracking override pose input name 2021-04-19 12:53:47 +02:00
Christoph Haag fa79451858 build/cmake: link generated bindings to aux_util 2021-04-19 12:53:47 +02:00
Christoph Haag e9eba9a2b4 aux/bindings: Generate char* <-> enum for all used inputs 2021-04-19 12:53:14 +02:00
Christoph Haag 4ea68b89a4 xrt: Add u_process, backed by libbsd's pidfile
Delete stale ipc files in ipc server when not already running.

If built without libbsd, fall back to previous behavior of complaining about existing ipc files and exit.
2021-04-15 21:42:06 +00:00
Christoph Haag c92bc0a704 xrt: Add u_file_get_runtime_dir() and u_file_get_path_in_runtime_dir()
Analog to u_file_get_path_in_config_dir.
2021-04-15 21:42:06 +00:00
Jakob Bornecrantz 26756cc52d aux/vk: Fix use free of stack variable and use correct return 2021-04-15 17:38:03 +01:00
Jakob Bornecrantz 05f14461a3 t/psvr: Fix warning 2021-04-15 17:38:01 +01:00
Jakob Bornecrantz 898bf15a08 u/tf: Use new trace marker helpers 2021-04-14 01:55:59 +00:00
Jakob Bornecrantz c750447add u/trace_marker: Add render timing support 2021-04-14 01:55:59 +00:00
Jakob Bornecrantz 52d1c4d834 u/trace_marker: Add json writing helpers 2021-04-14 01:55:59 +00:00
Jakob Bornecrantz f82f289907 u/rt: Also print what kind of point we are marking when tracing 2021-04-13 16:56:17 +00:00
Ryan Pavlik 701ea290d0 os: Fix comment typo. 2021-04-13 11:46:53 -05:00
Ryan Pavlik 65a7b490a8 android: Add support for casting Context to Activity 2021-04-13 11:46:53 -05:00
Jakob Bornecrantz 1b51cbd1a7 aux/vk: Add support for VK_EXT_global_priority 2021-04-12 22:16:31 +00:00
iVRy VR 0064989e8b t/psvr: Various fixes and changes
- Fix out of array bounds crash, curr_y can be out of bounds.
- Set tracked bits appropriately.
- Use m_imu_3dof for orientation.
2021-04-12 15:02:16 +00:00
Moses Turner 36a48bd62b aux/util: switch blend mode to array 2021-04-11 04:08:49 -05:00
Ryan Pavlik c906151fb1 util: Fix doxygen warnings 2021-04-09 18:22:42 -05:00
Ryan Pavlik cf08cbba78 aux/vk: Docs for Vulkan native import helpers. 2021-04-09 18:11:52 +01:00
Ryan Pavlik 322f6d473a util: Don't try to use $HOME or $XDG_CONFIG_HOME on Android. 2021-04-09 18:11:52 +01:00
Jakob Bornecrantz 736b9abdbe u/rt: Print frame period and tidy 2021-04-07 15:41:47 +01:00
Jakob Bornecrantz b68041fb93 u/rt: Tweak IIR alpha numbers 2021-04-07 15:41:47 +01:00
Jakob Bornecrantz 8606eb9d11 u/rt: Adjust app period depending on app time 2021-04-07 01:05:38 +01:00
Jakob Bornecrantz 1b0a9acb56 u/rt: Adjust app time during runtime 2021-04-07 01:04:20 +01:00
Jakob Bornecrantz 8215af5e5c u/rt: Refactor render timing 2021-04-07 01:04:20 +01:00
Jakob Bornecrantz 670906ea0e u/ft: Spelling 2021-04-07 01:04:20 +01:00
Jakob Bornecrantz 971f88f34f u/ft: Rename frame timing functions 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 5dbcca65c5 u/tr: Refactor rendering timing code 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz d745396396 u/ft: Tweak frame timing numbers 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 07fb9941b3 aux/vk: Add fence import function 2021-04-07 00:50:10 +01:00
Ryan Pavlik 61c1044089 u/handles: Add graphics sync handle helpers. 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz c876087ee7 u/time: Add helper comparising functions 2021-04-07 00:50:10 +01:00
Christoph Haag 2b962a5bfb u_config_json: Create root node on save if no config file loaded
If no config file is loaded, json->root can be uninitialized instead of NULL.

Fixes #117
2021-04-04 21:02:41 +02:00
Jakob Bornecrantz 30573fb90f a/gst: Add GStreamer helper code
Co-authored-by: Aaron Boxer <aaron.boxer@collabora.com>
2021-04-03 03:07:21 +01:00
Ryan Pavlik 607eae4fdd aux/vk: Fix creation of Windows external memory backed image. 2021-04-02 17:29:55 -05:00
Moses Turner a027852767 aux/math: implement math_pose_identity. 2021-04-01 02:02:26 +02:00
Moses Turner c776a19e15 aux/math: Implement math_matrix_3x3_multiply. 2021-04-01 02:02:26 +02:00
Christoph Haag 4061bf7707 d/multi: Add "attached" tracking override type
Example usage: Leap Motion attached to a Northstar headset.
2021-04-01 02:02:26 +02:00
Ryan Pavlik f65635f378 aux/vk: Fix doxygen warning 2021-03-31 12:02:41 -05:00
Ryan Pavlik b3280c5bc1 os/time: Small cleanup. 2021-03-31 12:02:41 -05:00
Ryan Pavlik aa3d1c1f6a os: Add os_precise_sleeper.
Mostly to be able to use a timer on Windows.
2021-03-31 12:02:41 -05:00
Ryan Pavlik 47bf17a0cc os: Improve comment and prototype for os_nanosleep 2021-03-31 12:02:41 -05:00
Ryan Pavlik 0717975853 os: Improve timestamp retrieval on Windows. 2021-03-31 12:02:41 -05:00
Ryan Pavlik 00915cab0f os: Add caveats to some timespec conversion functions. 2021-03-31 12:02:41 -05:00
Ryan Pavlik ddc9b00d14 os: Adjust how we compute the timeout for a semaphore.
Preparation for overhaul of timing on Windows.
2021-03-31 12:02:36 -05:00
Ryan Pavlik 4e11abc06b aux/vk: Fix warning about narrowing conversion. 2021-03-30 20:46:00 +00:00
Ryan Pavlik adb5eefb86 aux/vk: Add functions to initialize and clean up mutexes in the vk_bundle 2021-03-30 20:46:00 +00:00
Jakob Bornecrantz 6ba27de305 m/mathinclude: Apperently _USE_MATH_DEFINES was not enough 2021-03-30 21:27:29 +01:00
Jakob Bornecrantz 6f10f474fa t/psvr: Ensure that m_mathinclude.h is included 2021-03-30 21:27:29 +01:00
Jakob Bornecrantz 083e4f5108 u/logging: Fix first global log message not getting correct level, add comments 2021-03-30 19:23:41 +01:00
Ryan Pavlik b93b082bd3 aux: Fix doxygen warnings 2021-03-26 17:10:53 -05:00
Ryan Pavlik 4004402c40 aux/vk: Wrap statement defines in do {} while (0) 2021-03-26 17:10:53 -05:00
Ryan Pavlik 3414f62ccf aux: fix or silence warnings 2021-03-26 17:06:17 -05:00
Ryan Pavlik b147f2ecd4 a/util: Non-linux implementation of u_file 2021-03-26 17:06:17 -05:00
Ryan Pavlik c00884e827 cmake: aux/vk depends on aux/os 2021-03-26 17:06:17 -05:00
Ryan Pavlik 4ed3d21b09 a/util: Stub out trace marker on non-Linux for now. 2021-03-26 17:06:17 -05:00
Ryan Pavlik e5c193bcd0 aux/util: Silence warnings on MSVC 2021-03-26 17:05:56 -05:00
Christoph Haag a991e66b85 u_vive: Fix debug level of printing acc_bias 2021-03-24 18:45:00 +00:00
Christoph Haag 08db19beca u_config_json: Change node not found error->info
As our config grows it will happen more often that users won't have all possible nodes.
2021-03-24 18:45:00 +00:00
Christoph Haag 8f16118020 u_config_json: Remove bogus "No tracking node" messages
* open_tracking_settings() already reports missing tracking nodes.
* open_tracking_settings() can also fail for other reasons
2021-03-24 18:45:00 +00:00
Christoph Haag 45d889e390 u_config_json: Make missing tracking node messages friendlier 2021-03-24 18:45:00 +00:00
Christoph Haag 054850de76 u_config_json: Remove duplicated is_json_ok code 2021-03-24 18:45:00 +00:00
Christoph Haag 2959747221 u_config_json: clarify json not parsed error message 2021-03-24 18:45:00 +00:00
Christoph Haag f0132eb997 u_config_json: change no config file warning->info
Running without a config file is fully supported, no reason to warn users.
2021-03-24 18:45:00 +00:00
Christoph Haag dad5c6d5d8 u_config_json: Fix saving when no config file exists
If json->root was null, it would write a config file containing only (null).
2021-03-24 17:33:46 +01:00
Christoph Haag 2ac4ff84ec aux/util: Fix comment for u_device_setup_tracking_origins 2021-03-23 19:05:35 +00:00
Jakob Bornecrantz a71b3d35d1 m/3dof: Add assert for timestamp paranoia 2021-03-17 01:10:02 +00:00
Jakob Bornecrantz dac5bc0ea5 u/timing: Deal slightly better when timing info appears to time travel 2021-03-10 17:53:36 +00:00
Jakob Bornecrantz d71ccc39ce u/timing: Add when_predict_ns on first frame 2021-03-10 17:53:36 +00:00
Christoph Haag 0adcc179c0 xrt: Fix typo in u_file 2021-03-10 01:56:07 +01:00
Jakob Bornecrantz a40c2e7d50 aux/vk: Load VK_GOOGLE_display_timing functions 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz 049f6be351 u/timing: Add frame timing code 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz 3077660f1d u/tracing: Add trace marker code 2021-03-08 11:20:52 +00:00
Mateo de Mayo 75e908552f doc: Fix missing entities from modules documentation 2021-03-06 20:34:35 -03:00
Christoph Haag 44e375dd8a aux/util: Save tracking override config 2021-03-02 19:43:19 +01:00
Christoph Haag c077788436 aux/util: Store calibration config non-destructively
On save
* delete only nodes pertaining to calibration
* add new calibration nodes
* write config file
2021-03-02 19:43:19 +01:00
Christoph Haag 5e4c62c8aa aux/util: Move json config parsing to aux/util 2021-03-02 19:43:19 +01:00
Christoph Haag aa9298f70d aux/util: Move read_content to u_file 2021-03-02 19:43:19 +01:00
Jakob Bornecrantz 77baa0c6ca u/ht: Sort build files 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz 7460ae54f4 u/timing: Rename files 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz b810c2df0a u/timing: Improve render code, predict when frame should be delivered 2021-02-24 14:33:30 +00:00
Jakob Bornecrantz 55c7690185 u/time: Make defines more readable and add more defines 2021-02-24 13:55:07 +00:00
Jakob Bornecrantz 69eebb49e2 u/time: Use double for time conversion 2021-02-24 04:14:51 +00:00
Ryan Pavlik b7cc966cb0 aux/vk: Add docs to helpers 2021-02-22 16:50:00 -06:00
Christoph Haag def0bef533 build/meson: Explicitly depend on generated binding header
fixes header not being generated on alpine
2021-02-15 22:04:38 +01:00
Christoph Haag 42996d6b1c os/hid: Add get_physical_address() 2021-02-12 02:44:00 +01:00
Christoph Haag 2d814dab57 aux/vive: Parse hmd variant and add various model strings
Model strings collected from libsurvive, survive_default_devices.c
2021-02-11 20:54:31 +01:00
Christoph Haag cc81174b70 comp: Fix VkDisplayKHR direct mode build without libx11-xcb 2021-02-10 22:02:30 +01:00
Ryan Pavlik 51704bc2e5 math: Fix doc warnings 2021-02-10 16:09:12 +00:00
Christoph Haag cfab11355d u/hand_tracking: Hand Joint flags can only be as valid as hand flags 2021-02-10 02:58:00 +01:00
zhibinw a5913c7b4f aux/android:add blank line between functions 2021-02-09 22:44:07 +00:00
zhibinw 14532aceae aux/android: Make MonadoView focusable optional 2021-02-09 22:44:07 +00:00
zhibinw 6e6a729123 aux/android: Make MonadoView not focusable/touchable 2021-02-09 22:44:07 +00:00
Christoph Haag 00ef724392 aux/vk: Add trace info when memory type is unsupported 2021-02-03 01:44:46 +01:00
Jakob Bornecrantz 5853103820 d/vive: Refactor out vive config code into auxiliary library
fix vive_config.h include for survive
2021-02-01 19:56:52 +01:00
Jakob Bornecrantz eec3446e5b u/sink: Add Bayer format converter 2021-01-27 16:09:07 +00:00
Jakob Bornecrantz 5b6e6bf6a6 xrt: Add XRT_FORMAT_BAYER_GR8 format 2021-01-27 16:09:07 +00:00
Jakob Bornecrantz 666caaa7ae u/timing: Fix typo 2021-01-27 14:04:29 +00:00
Jakob Bornecrantz b1e18af21e u/distortion: Tidy Vive & Index distortion code 2021-01-25 00:12:03 +00:00
Dan Weatherford 5948e439e9 u/distortion: Fix DPOLY3_SCALED 4th coefficient application 2021-01-25 00:12:03 +00:00
Jakob Bornecrantz 17beaf8aa9 u/distortion: A stab in the dark to try and improve Index chromatic aberration 2021-01-25 00:12:03 +00:00
Jakob Bornecrantz 7d755427e3 u/distortion: Filp order of array access in distortion for Vive & Index 2021-01-25 00:12:03 +00:00
Jakob Bornecrantz 0c2d07808c u/distortion: Make Vive & Index distortion center per channel 2021-01-25 00:12:03 +00:00
Dan Weatherford b2569907b5 u/distortion: Fix math error in u_compute_distortion_vive 2021-01-23 14:02:31 -06:00
Jakob Bornecrantz 026fa2cebb math: Add quat valdiate that only checks within 1% of unit length 2021-01-21 00:33:32 +00:00
Jakob Bornecrantz 797fa5459c u/rt: Tidy and documment render timing code 2021-01-21 00:32:36 +00:00
Jakob Bornecrantz 3856ae4540 bindings: Fix double slash error 2021-01-21 00:13:42 +00:00
Jakob Bornecrantz 00b71aabd4 bindings: Update copyrights 2021-01-21 00:13:40 +00:00
Christoph Haag f9c37d51bc aux/bindings: Add "features" to inputs in bindings.json
In our model we have a "subpath" for each hardware input like "/input/trackpad".
Each of these hardware inputs has "features" like "click", "touch", "position", "force".

Ideally each of these "features" is bound to some monado input in the "monado_bindings" dict
but this is not required. bindings.json will know about hardware features even if we don't bind them (yet).

For each of these features bindings.py generates a group of related paths for a single monado binding:
For a monado input XRT_INPUT_???_TRACKPAD these paths would be generated:
/user/hand/left/input/trackpad/x
/user/hand/left/input/trackpad/y
/user/hand/left/input/trackpad
2021-01-20 18:23:09 +01:00
Christoph Haag 46ec938f8a build: Move bindings build to bindings/subdir
The generated files should be in auxiliary/bindings/*.{c,h}. For this to work
meson.build has to be in the bindings/ subdir:
https://github.com/mesonbuild/meson/issues/2320

Move CMakeLists.txt there too for some consistency.
Also fixes the previous include hack.
2021-01-20 18:23:09 +01:00
Christoph Haag 07218c9878 aux: generate b_generated_bindings.{c,h} instead of xrt_generated_bindings.{c,h}
Follow up to 543804e53cafa83c52b61f70894696bc4d95fa7c
2021-01-20 18:23:09 +01:00
Christoph Haag 85d3e8bdc3 build/cmake: generate steamvr input profiles 2021-01-20 18:23:09 +01:00
Christoph Haag 334864de7f build/meson: Generate SteamVR input profiles 2021-01-20 18:23:09 +01:00
Christoph Haag 672c81e809 aux/bindings: Add script to generate steamvr input profiles 2021-01-20 18:23:09 +01:00
Christoph Haag edd6a4cf70 xrt: Move oxr_binding_data.h to json profile generator
Move json profile generator to auxiliary/bindings and make generated_bindings static library.

aux/bindings: Add hardware type

aux/bindings: Add various steamvr specific things to bindings
Paths like "/input/menu/click" are used in SteamVR input profiles.
2021-01-20 18:23:09 +01:00
Jakob Bornecrantz ae6ac5fc0e math: Work-around clang-format stuff 2021-01-15 16:38:52 +00:00
Jakob Bornecrantz 2b996f30c4 xrt: Reflow after column change 2021-01-15 13:50:32 +00:00
Lubosz Sarnecki 621a4bbe59 aux/vk: Add formats used in CTS to format string function. 2021-01-14 13:54:19 +01:00
Lubosz Sarnecki a786401bec aux/vk: Lock vkCmdPipelineBarrier with pool mutex. 2021-01-14 13:54:19 +01:00
Lubosz Sarnecki b005f4e2fa comp/vk: Guard VkCommandBuffer usage with command pool mutex.
Lock all queue submits with 2 mutexes using a new vk_locked_submit
function.
2021-01-13 12:42:26 +01:00
Lubosz Sarnecki fc3b7fef25 comp/vk: Lock command pool calls with a mutex.
This patch resolves multithreading issues as detected by the Vulkan
validation when running the OpenXR CTS using OpenGL.
2021-01-13 12:33:15 +01:00
Lubosz Sarnecki 9a9d46b85a comp/vk: Lock our only VkQueue with a mutex.
This resolved mutlithreading issues as seen in the `multithreading` test
of the OpenXR CTS.

This patch fixes the test on Vulkan Android and resolves Vulkan
validation errors when running on Linux with OpenGL.
2021-01-13 12:33:15 +01:00
Christoph Haag e785053c0a aux/math: special case delta_s == 0 in m_predic
Rather than asserting in the underlying math functions we return the
trivial values for prediction with 0s.
2021-01-11 23:50:01 +00:00
Jakob Bornecrantz 1e4a540bb9 aux/math: Add prediction module
For the time being all angular velocities are relative to the space a xrt_space_relation is in.
2021-01-11 23:50:01 +00:00
Christoph Haag 8f3816a5fc u_time: Make time_s_to_ns take double, not floa 2021-01-11 23:50:01 +00:00
Christoph Haag 726c752db2 comp: Add support for list of optional device extensions
If one of the supplied optional extensions is VK_GOOGLE_display_timing and it is
supported by the driver, vk_bundle::has_GOOGLE_display_timing will be set to true.
2021-01-07 19:12:41 +01:00
Christoph Haag 3085e29c97 u/hand_tracking: Curl fingers based on joint, increase total curl angle
When making a fist, different joints curl at different angles, reflect
this more directly in the code.

Also increase total curl to make it easier to hold ingame objects.
2021-01-06 13:34:31 +00:00
Christoph Haag e2c1bc1d16 xrt: Rename hand_origin to hand_pose
hand_origin is confusing because it implies it is the origin of the coordinate system the hand is in.
It actually is the hand pose in the "global" coordinate system.
2021-01-06 13:29:36 +00:00
Christoph Haag c84dbad03e u/device: Add U_DEVICE_ALLOC_NO_FLAGS
Allows using U_DEVICE_ALLOCATE without flags without a cast.
2021-01-06 13:29:36 +00:00
Christoph Haag 7831e38c02 u/device: Assign left/right hand trackers if no controllers are available
Previously the left/right role assignment considered only device types
* XRT_DEVICE_TYPE_LEFT_HAND_CONTROLLER
* XRT_DEVICE_TYPE_RIGHT_HAND_CONTROLLER
* XRT_DEVICE_TYPE_ANY_HAND_CONTROLLER

This adds XRT_DEVICE_TYPE_HAND_TRACKER for consideration, but only if none
of the above are present.
2021-01-06 13:29:36 +00:00
Christoph Haag 3848d2be3f st/oxr: Add env vars for global tracking origin offset
This commit is a band aid until a more proper room setup is implemented.
It allows moving the tracking offset for the device roles head, left and right by a fixed value.

A y tracking offset OXR_TRACKING_ORIGIN_OFFSET_Y=1.0 would tell monado that the current tracking
origin is 1 meter above the desired tracking origin, e.g. when the headset was calibrated to a
(0,0,0) position while sitting on table 1 meter above the floor.

This environment variable affects STAGE space, but not LOCAL space.
2021-01-06 13:03:47 +00:00
Lubosz Sarnecki 55d6d57392 aux/math: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki ba1d966f9f aux/vk: Port to u_logging.
Fix log calls where no valid state struct was provided.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 58ecf67515 aux/tracking: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki e350e42ca9 aux/os/ble_dbus: Use printf padding. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 79dde59f7e aux/os/ble_dbus: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 853458ed37 xrt: Port commented printfs to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki adcd0aff1a u/logging: Implement global log level.
Adds a `XRT_LOG` environemnt option.

Example:
```
XRT_LOG=debug
```
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 8bdff9a61a u/logging: Implement optional color logging.
Check if stderr is a tty.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 9ce9fa9238 u/logging: Align log level prefixes. 2020-12-28 13:04:11 +00:00
Jakob Bornecrantz a5bf14502c t/hand: Remove per frame printing 2020-12-09 21:03:50 +00:00
Christoph Haag 7b4ac89a8f t/hand: warn when rectification matrix doesn't match image matrix 2020-12-07 12:30:26 +00:00
Christoph Haag 693cd77ca3 t/hand: Add comment that rectification is expensive 2020-12-07 12:30:26 +00:00
Christoph Haag e480352cee t/hand: Add hand tracking module 2020-12-07 12:30:26 +00:00
Ryan Pavlik 90e307bf8a util: Port logging to OutputDebugString on Windows 2020-12-06 23:07:05 +00:00
Lubosz Sarnecki 37e87d1942 android/MonadoView: Make native pointer optional. 2020-12-01 18:05:32 +01:00
Lubosz Sarnecki 0a6bfe6d96 aux/android_globals: Provide API to store a native window globally. 2020-12-01 18:05:32 +01:00
Lubosz Sarnecki 020df327fa MonadoView: Don't be a Hilt view. Resolve exception.
Resolves:

java.lang.IllegalStateException: class org.freedesktop.monado.auxiliary.MonadoView, Hilt view must be attached to an @AndroidEntryPoint Fragment or Activity.
2020-12-01 18:05:32 +01:00
Ryan Pavlik 94d747cac9 aux/android: Create an interface for handling foreground service notification 2020-12-01 18:05:32 +01:00
Ryan Pavlik 2fe699d7c1 xrt/android: Actually start using dependency injection in Java/Kotlin code. 2020-12-01 18:05:32 +01:00
Ryan Pavlik 885dd1d4d5 gradle: Handle kotlin in multiple parts of the build 2020-12-01 18:05:32 +01:00
Ryan Pavlik b2f751ae99 aux/android: More null checks 2020-12-01 18:05:31 +01:00
Ryan Pavlik 635542f905 gradle: Break release build on a // STOPSHIP comment 2020-12-01 18:05:31 +01:00
Ryan Pavlik 23e01fc656 gradle: Factor out the dependency versions to a build-wide variable 2020-12-01 18:05:31 +01:00
Lubosz Sarnecki 4d45bfeb1b cmake: Fix Android linking error 2020-12-01 18:05:31 +01:00
Lubosz Sarnecki c0ab34a355 aux/android: Implement display metrics acquisition. 2020-12-01 17:36:15 +01:00
Jakob Bornecrantz 6fc0e1cda5 u/sink_converter: Silence warning 2020-11-30 17:52:58 +00:00
Jakob Bornecrantz 242faf9b60 u/sink_converter: Refactor allocation function a bit more 2020-11-30 17:52:58 +00:00
Christoph Haag 3b992a4508 u/sink_converter: Remove u_sink_converter::frame 2020-11-30 15:38:21 +00:00
Christoph Haag 5a4df61885 u/sink_converter: Clarify dst frame of format conversions 2020-11-30 15:38:19 +00:00
Christoph Haag 49587412bd u/sink_converter: clarify ensure_data() 2020-11-30 15:38:15 +00:00
Christoph Haag 3d3361706c os/threading: Fix typo in comment 2020-11-30 15:38:07 +00:00
Lubosz Sarnecki bd68c0e5f5 aux/math: Implement math_matrix_2x2_multiply. 2020-11-27 16:50:55 +01:00
Christoph Haag f7cbe37c2d u/hand_tracking: Tweak hand model parameters
* shortened way too long bones
* tweaked offset positions
2020-11-23 20:42:54 +00:00
Christoph Haag 006971ae7a u/hand_tracking: Calculate joint velocities
And return them in the state tracker
2020-11-23 20:42:54 +00:00
Christoph Haag aa6e5f7fdf u_hand_tracking: Fix typo in u_hand_tracking_model 2020-11-23 20:42:54 +00:00
Christoph Haag f5ef3985ba xrt: Add support for locating hand joints in action spaces 2020-11-23 20:42:54 +00:00
Christoph Haag 95af586654 aux: Add m_space_graph_add_inverted_relation 2020-11-23 20:42:54 +00:00
Christoph Haag d6b072805a aux: Add m_space_relation_invert 2020-11-23 20:42:54 +00:00
Ryan Pavlik 66811b436a xrt: Have the vk_helper vk_create_device take in a list of device extensions, and fix usages. 2020-11-23 14:27:21 -06:00
Jakob Bornecrantz ef6c8430d2 m/space: Make sure to not drop positions 2020-11-18 18:05:07 +00:00
Christoph Haag 9e788df463 xrt: Remove lens center from xrt_view
It's only used internally in drivers now.
2020-11-12 16:04:00 +01:00
Ryan Pavlik 86a19e6697 gradle: Remove unused dependencies. 2020-11-10 18:44:03 +00:00
Ryan Pavlik 5115124bb3 aux/android: Factor out a "native counterpart" class. 2020-11-10 18:44:03 +00:00
Ryan Pavlik a792b08ed7 aux/vk: Minimal, untested implementations of these for Windows - fixes build 2020-11-10 03:09:07 +00:00
Ryan Pavlik cc15bfa7ed a/util: FIx ambiguity of directories for docs. 2020-11-10 03:09:07 +00:00
Ryan Pavlik 8f10d9c2b8 u_hand_tracking: Fix usage of M_PI 2020-11-10 03:09:07 +00:00
Ryan Pavlik d2955a3967 aux/util: Adjust conditional log macros to handle msvc correctly 2020-11-10 03:09:07 +00:00
Jakob Bornecrantz aa7f922e35 os/time: Add a Linux specific way to get the realtime clock (for RealSense) 2020-11-09 23:42:13 +00:00
Jakob Bornecrantz 4bbe25148b os/time: Make timespec argument const 2020-11-09 23:42:11 +00:00
Ryan Pavlik 7cebdb4763 aux/os: More defines to calm clang-tidy. 2020-11-09 16:18:00 -06:00
Ryan Pavlik b855fd1ae2 a/util: Appease clang-tidy with a define for ns per second 2020-11-09 16:18:00 -06:00
Ryan Pavlik ab82c5b8e2 u_debug: Remove duplicate declaration 2020-11-09 16:18:00 -06:00
Christoph Haag 9d894ab5ff xrt: Move tracking origin setup code to u_device 2020-11-09 00:32:33 +01:00
Christoph Haag c60b7412e5 xrt: Move device assignment code to u_device 2020-11-09 00:32:33 +01:00
Christoph Haag 803e9531ec aux: Use time since time_state creation for time_state timestamps
Easy to read timestamps and somewhat meaningful.
2020-11-05 23:11:03 +00:00
Ryan Pavlik ce3750bfe1 a/android: Store a native pointer in the MonadoView. 2020-10-30 18:20:35 -05:00
Ryan Pavlik 3bc84cca9e a/android: Migrate to using the MonadoView generated wrapper. 2020-10-30 18:20:35 -05:00
Ryan Pavlik b6a12f8522 a/android: Add some partially-generated wrappers for our own Java code. 2020-10-30 18:20:35 -05:00
Ryan Pavlik fc78b5de86 a/android: Use android_custom_surface constructor/destructor 2020-10-30 18:20:34 -05:00
Ryan Pavlik 66d6281a7f a/android: Monitor whether MonadoView is still being used by native code. 2020-10-30 18:20:34 -05:00
Ryan Pavlik 26cd22b232 a/android: Move class name to a constant. 2020-10-28 12:12:31 -05:00
Ryan Pavlik da3959e642 a/android: C++ headers use .hpp as the extension 2020-10-28 12:12:31 -05:00
Ryan Pavlik 8301c9d1b4 a/android: Fix some file comments. 2020-10-28 12:12:31 -05:00
Ryan Pavlik 1acadb8a18 a/android: Make MonadoView fullscreen. 2020-10-28 12:12:31 -05:00
Lubosz Sarnecki d61faff421 aux/android/ahardwarebuffer_allocator: Use Vulkan enums in format switch. 2020-10-28 12:12:31 -05:00
Lubosz Sarnecki 633b7839c2 aux/vk+comp/sc: Initialize extra structs for hardware buffer extension.
Fix sRGB format for Android hardware buffers.
2020-10-28 12:12:31 -05:00
Lubosz Sarnecki 3cc8793d7d aux+comp: Add Android hardware buffer device extension. 2020-10-28 12:12:31 -05:00
Lubosz Sarnecki 2cc8252c05 aux/vk: Add vkGetAndroidHardwareBufferPropertiesANDROID. 2020-10-28 12:12:31 -05:00
Lubosz Sarnecki 2df2daa00c aux/android/ahardwarebuffer_allocator: Add function to allocate a single buffer. 2020-10-28 12:12:31 -05:00
Ryan Pavlik 436886852d a/android: Improve monadoview, including fixing deleted ref problem. 2020-10-28 12:12:31 -05:00
Ryan Pavlik dfd771f768 aux/android: Enhance custom surface
Includes fixes to my mistakes by Lubosz.

Co-authored-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
2020-10-28 09:41:03 -05:00
Lubosz Sarnecki e78ad12634 aux/android/custom_surface: Make JNI happy.
Keep android_load_class methods in C++, since
casting the class handle to void results in:

```
JNI DETECTED ERROR IN APPLICATION: use of deleted global reference.
```

Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>
2020-10-28 09:33:47 -05:00
Lubosz Sarnecki 2a8db3d780 aux/android/load_class: Use pkgClassLoader.loadClass to load MonadoView class. 2020-10-28 09:33:46 -05:00
Lubosz Sarnecki dbe0338956 android/MonadoView: Register surface callback and fix imports.
Run UI things on UI thread.
2020-10-28 09:33:46 -05:00
Ryan Pavlik 43d724b6bf aux/vk: Fix a place where we were missing an android ifdef 2020-10-28 09:33:46 -05:00
Ryan Pavlik d4b19f3d47 aux/android: Add custom surface code. 2020-10-28 09:33:46 -05:00
Ryan Pavlik 9b67c0a09f aux/android: Add code to load Java from a package 2020-10-28 09:33:46 -05:00
Ryan Pavlik d0187cee9a aux/android: Add Java code 2020-10-28 09:33:26 -05:00
Ryan Pavlik 06f75e03b4 a/android: Fix typo in comment 2020-10-28 09:32:49 -05:00
Ryan Pavlik 59d2285c8e aux/util: Port logging for Android.
Now if u_logging is used, it goes to logcat.
2020-10-28 09:32:49 -05:00
Jakob Bornecrantz 463330d5d5 u/distortion: Set blend mode incase it is zero 2020-10-27 21:34:29 +00:00
Jakob Bornecrantz ecbde55752 m/space: Normalize orientation when returning result 2020-10-27 16:20:12 +00:00
Jakob Bornecrantz bd6ea43de5 m/headers: Fix doxygen warnings 2020-10-26 22:55:22 +00:00
Jakob Bornecrantz 8730ff479a u/hand_tracking: Tidy header 2020-10-26 22:50:54 +00:00
Jakob Bornecrantz 75153a7066 u/distortion: Add simple cardboard distortion code 2020-10-26 21:53:55 +00:00