Commit graph

1335 commits

Author SHA1 Message Date
Patrick Nicolas a8dc902468 a/vk Add extentions for DMA-buf 2022-11-13 22:56:06 +00:00
Ryan Pavlik 2eb259f26a aux: can not -> cannot 2022-11-09 14:48:38 -06:00
Ryan Pavlik 1fb6270194 a/util: Resolve a bothersome clang-tidy complaint in iterators. 2022-11-09 08:26:16 -05:00
Ryan Pavlik 290fafa4f7 a/util: Fix missing pragma once 2022-11-09 08:26:16 -05:00
Mateo de Mayo 77f8972f36 d/vive: Add hardcoded quaternions for SLAM extrinsics
These come from my own calibration and are hopefully better than the wrong ones
reported by the factory data.
2022-11-08 12:02:34 -06:00
Mateo de Mayo c3757792d7 d/vive: Generate SLAM calibration automatically from factory data
Use factory data for SLAM calibration. Sensor rotations are off in most calib
files we saw (or at least we can't figure something better) so this won't work
very well. It's still necessary to properly calibrate the headset for good
results but at least now something works without that step.
2022-11-08 17:41:43 +00:00
Jakob Bornecrantz 6ba07d564c a/vk: If global priority is not available, only allow medium queues 2022-11-04 10:46:42 +00:00
Jakob Bornecrantz 379bf36860 a/vk: Also try to use VK_KHR_global_priority when creating device 2022-11-04 10:46:42 +00:00
Jakob Bornecrantz b6803b4bf8 a/vk: Add VK_KHR_global_priority 2022-11-04 10:46:42 +00:00
Mateo de Mayo 9d6c29397f misc: Fix multiple compile warnings in gcc and clang 2022-11-03 20:08:52 +00:00
Jakob Bornecrantz 45937312bd a/vk: Print out error on too many images to allocate 2022-11-03 17:43:06 +00:00
Jakob Bornecrantz a41ccb0467 a/vk: Use xrt limits for number of collection images max 2022-11-03 17:43:06 +00:00
Moses Turner b8a586175d a/util: Add header for box intersection over union 2022-11-03 16:46:33 +00:00
Jakob Bornecrantz c4a734e546 a/tracking: Do not push empty frames to debug sink 2022-11-02 17:55:58 +00:00
Jakob Bornecrantz 0f17fa0f5f a/tracking: Fix data waiting logic in PSVR tracking 2022-11-02 17:55:58 +00:00
Jakob Bornecrantz 7b1c18255a u/pacing: Work around issues with frame reuse
The code creates a frame with the timing information, and keeps track of the
times the applications does various things during the frame loop. Like
starting to render and finished rendering and so on. It keeps track of that
frame until it has determined that the application or the system compositor
will never do anything thing with that frame.

Now the allocation side of thing is very simple, just a long array of
FRAME_COUNT size that is reused with frame_id % FRAME_COUNT. So if the
application or the compositor keeps a frame along for too long it will try to
reuse that frame. The code has asserts to catch this. Making FRAME_COUNT makes
that re-use more unlikely.
2022-11-02 00:22:19 +00:00
Jakob Bornecrantz 51730d2db1 a/vk: Improve the VkResult to string printing (NFC) 2022-10-30 20:17:09 +00:00
Mateo de Mayo bf66a9595c build: Fix undefined reference to u_sink_create_queue
When XRT_FEATURE_SLAM is on, t_euroc_recorder.cpp is linked.
This depends on u_sink_queue.c.
2022-10-30 11:34:57 -03:00
Jakob Bornecrantz f9c6c0d016 a/ogl: Only link to EGL on Android 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz d33b2b136f a/os: Add comments about DSOs 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz 637c49c1ea a/os: Refactor out BLE functions into own library 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz 96eabd1347 a/os: Add BLE stub functions 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz d4a77da827 a/util: Add comments about DSOs 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz e629bbbe2b a/util: Split out process functions into own library 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz 8ca60f4304 a/util: Split out sink functions into own library 2022-10-27 17:19:57 +00:00
Mateo de Mayo 80fdf7317f t/slam: Add SLAM_UI option to enable the external system UI 2022-10-17 21:33:17 +00:00
Jakob Bornecrantz 12bb18a34c u/file: Fix define checks being erroneous 2022-10-12 13:05:39 +01:00
Jakob Bornecrantz 1cafa92c3b u/pacing: Refactor out tracing writing to own function 2022-10-11 20:33:56 +01:00
Jakob Bornecrantz 5ed13c6cc2 u/pacing: Account for present slop in assert 2022-10-11 20:33:56 +01:00
Julian Petrov 2e4c857a5a u/process: Make u_process work on non-linux systems 2022-10-09 15:21:37 +01:00
Julian Petrov c7a5a0bc1b u/file: Make more functions work on Windows 2022-10-09 15:21:37 +01:00
Jakob Bornecrantz 08f6440aa4 u/pacing: Trace GPU info 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz f63c786ac9 u/pacing: Add gpu_info to u_pacing_compositor 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz da542e3f5e u/pacing: Introduce latched and retired calls on app pacer 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz 7eacf6bd7a u/pacing: Refactor out tracing writing to own function 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz 4ec3512641 u/pacing: Track session_id on app pacer 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz b6b9004fb2 u/pacing: Tidy 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz d1d845e430 u/pacing: Make sure to set predicted_display_time_ns 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz b5b832f612 u/trace_marker: Silence deprecation from percetto defines 2022-09-22 22:00:32 +01:00
Moses Turner d5dd9a264e a/util: Remove C++ guards and pragma once from C source file 2022-09-22 01:11:33 -05:00
Moses Turner 833787c492 u/tracked: Add u_tracked_imu_3dof 2022-09-21 01:52:15 +01:00
Moses Turner d48792d9a9 u/sink: Ensure that image frames have monotonic timestamps 2022-09-21 01:52:15 +01:00
Moses Turner 17e0c39df2 u/sink: Add u_imu_sink_force_monotonic and u_imu_sink_split 2022-09-21 01:52:15 +01:00
Moses Turner 48e8894b74 u/json: Add u_json_get_pose_permissive
To parse poses from non-Monado configs with non-standard member names.
2022-09-21 01:52:15 +01:00
Moses Turner b31eb76718 u/json: Add u_json_get_pose 2022-09-21 01:52:15 +01:00
Moses Turner d91975299d u/config: Use cJSON_Delete instead of cJSON_Free for gui scene parsing 2022-09-21 01:52:15 +01:00
Moses Turner d2e2c3a988 cmake: Run cmake-format.sh 2022-09-19 21:57:37 +01:00
Mateo de Mayo 3d366b9243 gui: Fix layout file not being created for the first time on Windows
By ensuring imgui.ini exists.
Also enabled u_config_json_open_or_create_file for Windows as this OS has an
implementation of u_file_get_path_in_config_dir available now.
2022-09-19 17:19:12 +00:00
Moses Turner bd265c611d d/ns: update Moses's distortion method 2022-09-19 11:20:04 -05:00
Moses Turner d04139bedd u/file: Add u_file_read_content_from_path
Useful for Simula builder and North Star builder which both read straight from a path
2022-09-19 11:17:34 -05:00
Moses Turner 17acb376f9 xrt: Fix some typos that codespell caught 2022-09-11 23:32:28 -05:00
Jakob Bornecrantz 11a4f776e5 a/vk: Add vk_cmd_buffer_create helper 2022-09-09 10:46:21 +01:00
Jakob Bornecrantz 500d5b9954 a/vk: Rename command buffer helpers 2022-09-09 10:43:49 +01:00
Jakob Bornecrantz eeaaaf398b a/vk: Add helper to get buffer handle types
The image version of it was used for buffers as well.
2022-09-07 20:42:27 +01:00
Jakob Bornecrantz a0d63d2f9c u/wait: Add wait helper 2022-09-07 15:06:57 +00:00
Mateo de Mayo d47d0ce2d9 u/logging: Log to stderr in Windows 2022-09-02 22:43:24 +00:00
Jarvis Huang 7be4163b91 d/android: Fix errors while getting display metrics 2022-09-02 16:25:12 +00:00
Jarvis Huang 52c790d1a9 t/android: Store jvm/context in service-lib 2022-09-02 16:25:12 +00:00
Jarvis Huang 25e96a508c aux/android: Using DexClassLoader to load class 2022-09-02 16:25:12 +00:00
Jakob Bornecrantz 767637abb8 a/vk: Add image view with usage creation helper 2022-08-25 16:57:56 +01:00
Jakob Bornecrantz fa02407726 a/vk: Add mutable R8G8B8A8_[UNORM|SRGB] image creation helper 2022-08-25 16:57:54 +01:00
Jakob Bornecrantz a5efaceba5 a/vk: Add small chain helper 2022-08-25 16:57:36 +01:00
Jakob Bornecrantz e79b23275b a/vk: Remove unused vk_get_access_flags function 2022-08-25 15:06:09 +01:00
Jakob Bornecrantz 90f3adcdd1 a/vk: Group code 2022-08-25 15:06:09 +01:00
Jakob Bornecrantz e7c217cea5 a/vk: Track various limits 2022-08-25 15:06:09 +01:00
Jakob Bornecrantz b0f51acf77 a/vk: Track maintenance extensions 2022-08-25 15:05:44 +01:00
Christoph Haag 3c9ef82060 a/math: Add math_matrix_4x4_transform_vec3 2022-08-25 12:41:07 +01:00
Ryan Pavlik fc0f390a87 aux/ogl: Add WGL wrapper to the build. 2022-08-22 19:53:50 +00:00
Moses Turner 4de631285b u/hand: Fix finger ordering 2022-08-22 13:19:48 +01:00
Jakob Bornecrantz 7e24b1dfe7 u/hand: Move common init into init helper function 2022-08-14 16:16:27 +01:00
Jakob Bornecrantz e6efcd7a02 u/hand: Take xrt_hand enum instead of bool 2022-08-14 16:16:27 +01:00
Jakob Bornecrantz 2b05bfc709 u/hand: Constify arguments 2022-08-14 16:16:27 +01:00
Moses Turner 386117c5ee NFC: a/math: Make math_quat_from_swing prettier 2022-08-13 19:31:58 +00:00
Jan Schmidt f8a486884b u/u_json: Implement u_json_get_int_array() 2022-08-10 18:30:08 +01:00
Jan Schmidt ce13de9484 aux/math: Add math_matrix_3x3_from_quat()
Add a function to get a 3x3 rotation matrix
from a quaternion.
2022-08-10 18:30:08 +01:00
Mateo de Mayo dabf592d59 t/euroc: Add lock for IMU recording queue 2022-08-10 14:28:59 +00:00
Aidan Thornton 4840def448 a/math: add math_matrix_2x2_transform_vec2 2022-08-10 12:39:44 +00:00
Ryan Pavlik 831c2aefaf a/math: Fix doc warning 2022-08-08 16:44:24 +00:00
Ryan Pavlik e6da9b8090 a/d3d: Fix doc warning 2022-08-08 16:44:24 +00:00
Ryan Pavlik 094498dbf3 a/vk: Fix up and factor out external image support check 2022-08-08 16:44:24 +00:00
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
danwillm c4a290aa97 xrt/util: Fix typo with number of joints per finger 2022-08-01 17:33:40 +00:00
danwillm 1dee288459 aux/util: Share joint width hand tracking function 2022-08-01 17:33:40 +00:00
danwillm 9e7f814328 aux/util: Remove old hand tracking code 2022-08-01 17:33:40 +00:00
danwillm 9dc8632b0f aux/util: Add u_hand_simulation
Co-authored-by: Moses Turner <moses@collabora.com>
2022-08-01 17:33:40 +00:00
Moses Turner 0c4b45c6c2 a/util: Add DEBUG_GET_ONCE_TRISTATE_OPTION 2022-07-27 10:49:29 +00:00
Ryan Pavlik 980ad86008 a/vk: Get and show some external buffer data on startup, too. 2022-07-26 14:45:29 +00:00
Ryan Pavlik 576b158a83 a/d3d: Add some d3d12 features 2022-07-26 14:45:29 +00:00
Ryan Pavlik 5c24b8e637 xrt: Define D3D12 interface 2022-07-26 14:45:29 +00:00
Ryan Pavlik ee26b5f575 a/d3d: Split out some d3d11 stuff from generic 2022-07-26 14:45:29 +00:00
Ryan Pavlik 842c160c49 a/util: Guard against bad defs of "max" 2022-07-26 14:45:29 +00:00
Ryan Pavlik 413c8230ff a/d3d: Clean up formats 2022-07-26 14:45:29 +00:00
danwillm 0943ce10be a/util, xrt: u_hand_tracking interface change 2022-07-25 23:57:45 +01:00
Mateo de Mayo ae8305f324 u/deque: Add generic wrapper for std::deque 2022-07-25 19:08:46 +00:00
Mateo de Mayo c181909b0d t/slam: Add debug sinks 2022-07-22 16:19:49 +00:00
Ryan Pavlik f69b6d6320 a/vk: Annotate some must-check-return functions 2022-07-14 14:17:35 +00:00
Ryan Pavlik 107f56b6d9 a/util: Resolve warnings 2022-07-14 14:17:35 +00:00
Ryan Pavlik 88389ae0ca a/math: Resolve warnings. 2022-07-14 14:17:35 +00:00
Mateo de Mayo f55ac05578 t/slam: Implement feature count metric UI and recording 2022-07-12 12:47:05 +00:00
Mateo de Mayo 789111daf8 u/var: Add u_var_curves 2022-07-12 12:47:05 +00:00