Jakob Bornecrantz
4150028cb1
a/vk: Add a lot more formats vk_format_string
2022-06-12 11:09:36 +01:00
Moses Turner
18678786b7
a/gst: Complain if the image size is not divisible by two
2022-06-12 00:45:00 +01:00
Julian Petrov
1debb2e015
u/time: Implement QPC related functions
2022-06-09 14:48:27 -04:00
Julian Petrov
3b1e34ee20
a/os: Add QPC helper for getting win32 ticks
2022-06-09 14:48:27 -04:00
zhibinw
1972fd3758
a/android: Add a flag to enable AHardwareBuffer GPU sampled usage.
2022-06-08 13:02:52 +00:00
Mateo de Mayo
e7c3376612
a/math: Add disabled test to show problem with current quat_exp implementation
2022-06-02 15:47:57 +00:00
Mateo de Mayo
6bc551d004
t/slam: Prioritize SLAM_CONFIG over driver calibration if set
2022-06-02 15:47:57 +00:00
Jakob Bornecrantz
93d92ec6a7
d/remote: Use vive_bindings helper library
2022-06-01 16:50:19 +01:00
Campbell Suter
0f8da1900b
a/math: Fix math_pose_invert breaking on rotated poses, and add a test
...
Previously, math_pose_invert would apply a multiplication in the wrong
order. This lead to the position of the 'original' pose being rotated.
This patch fixes that, and adds a unit test to check this case.
2022-06-01 16:44:03 +01:00
Jakob Bornecrantz
fc469e7d5f
a/tracking: Document and fix cond var loop in psvr
2022-05-31 13:38:56 +00:00
Jakob Bornecrantz
d2a2005212
a/tracking: Document and fix cond var loop in psmv
2022-05-31 13:38:56 +00:00
Charlton Rodda
803d679e11
st/oxr: Add dpad bindings
2022-05-31 13:25:48 +00:00
Jakob Bornecrantz
9b27fb1a2e
WIP: aux/binding: Add dpad_emulation support
2022-05-31 13:25:48 +00:00
Jakob Bornecrantz
2715b0e144
aux/bindings: Fix a few pep8 errors
2022-05-31 13:25:48 +00:00
Jakob Bornecrantz
a8c254a8cf
aux/bindings: Refactor path verify function generation
2022-05-31 13:25:48 +00:00
Jakob Bornecrantz
037c49ce30
aux/bindings: Update generated file copyright
2022-05-31 13:25:48 +00:00
Mateo de Mayo
29aefe2ba8
misc: Use pretty printers and remove stale matrix print functions
...
Use u_pp_matrix_* instead.
2022-05-26 18:35:39 +00:00
Mateo de Mayo
7d80729358
u/pp: Add array and array2d f64 pretty printers
2022-05-26 18:35:39 +00:00
Mateo de Mayo
8adbdc27e5
t/slam: Allow drivers to send calibration info to SLAM tracker
...
There were a couple of properties that didn't fit well in our current
calibration structs and so I created t_slam_calib_extras struct to store them.
2022-05-26 18:35:39 +00:00
Mateo de Mayo
02abc49313
t/calib: Add IMU intrinsics struct
2022-05-26 18:35:39 +00:00
Mateo de Mayo
05b8e320a5
a/math: Add multiple isometry-related matrix functions
...
An isometry is a rigid body transform. In this context I'm using the term to
refer to 4x4 homogeneous matrices in SE(3). I.e., matrices comprised of a
3x3 rotation, a 3x1 translation, and a [0,0,0,1] last row.
This matrix represent both rigid body transforms.
2022-05-26 18:35:39 +00:00
Mateo de Mayo
8b2fa955b9
a/math: Fix matrix identities and use isometry
...
Isometry3f is a 4x4 matrix transform that performs only rotation and translation
(an SE(3) matrix). Its inverse can be computed trivially by Eigen compared to a
regular 4x4 transform.
2022-05-26 18:35:39 +00:00
Mateo de Mayo
2212cf95cf
a/math: Add missing extern C
2022-05-26 18:35:39 +00:00
Jakob Bornecrantz
433915b0bf
u/pp: Add math object printers
2022-05-26 14:10:06 +01:00
Moses Turner
5652ddd718
a/util: Fix function signature for u_builder_find_prober_device
...
Was this ever working?
2022-05-25 20:53:46 +00:00
bjorn
d523001b6e
aux/vk: Use correct image type for 3D images;
2022-05-25 20:24:17 +00:00
Ryan Pavlik
2da547ce66
a/util: Update pretty printing of results
2022-05-25 18:12:22 +00:00
Ryan Pavlik
596d15a50c
a/d3d: Further namespace the d3d11-specific functions
2022-05-25 18:12:22 +00:00
Ryan Pavlik
903fd01272
a/d3d: Add a fence waiting helper
2022-05-24 16:55:45 -05:00
Ryan Pavlik
3f777350e1
a/d3d: Fix docs for fence helper
2022-05-24 16:11:36 -05:00
Ryan Pavlik
bb94363f94
a/d3d: Turn off some swapchain formats that we can't roundtrip properly
2022-05-24 16:11:36 -05:00
Mateo de Mayo
2cf07dedf2
t/euroc: Fix crash when recording euroc dataset by providing UI button
...
Previously, a crash occurred in some situations when the second sample was
written before the first sample was able to create the necessary CSV files.
2022-05-23 17:51:11 -03:00
Jakob Bornecrantz
a4983fa5b1
auxiliary: Break apart CMakeLists.txt file
2022-05-23 09:12:54 -05:00
Jakob Bornecrantz
935de808c0
a/bindings: Do not depend on util
2022-05-23 09:12:54 -05:00
Jakob Bornecrantz
b64660d458
a/util: Include u_time.h in hand tracking helper
2022-05-23 09:12:54 -05:00
Ryan Pavlik
5656de8b72
a/d3d: Fence helpers
2022-05-23 14:11:43 +00:00
Jakob Bornecrantz
658a21a177
a/d3d: Tidy headers
2022-05-23 14:11:43 +00:00
Moses Turner
9386e56c3d
a/util: Paranoia for u_frame_times_widget
2022-05-23 13:19:58 +00:00
Jakob Bornecrantz
490e90b493
a/vk: Also check for d3d12 fence semaphores
2022-05-21 13:37:28 +01:00
Ryan Pavlik
9337ea375c
auxiliary: Add new d3d helper library
2022-05-20 22:37:15 +01:00
Ryan Pavlik
907edf10a3
a/os: Add more docs for correct use of condition variables
2022-05-20 21:30:41 +00:00
Ryan Pavlik
588b4831a2
a/util: Improve docs structure
2022-05-20 15:48:19 -05:00
Ryan Pavlik
fd25fc75bc
a/os: Rearrange time header to get the docs outside of the ifdefs.
...
Easier to read, easure to be sure we don't accidentally miss something
for doxygen.
2022-05-20 15:48:02 -05:00
Ryan Pavlik
ea4c14c3aa
a/os: Rename os_thread_helper_stop to os_thread_helper_stop_and_wait
2022-05-20 18:46:37 +01:00
Ryan Pavlik
14aed90183
a/os: Add "initialized" flags to threading primitives (in debug builds)
...
Failling to init these (other than zero-init) works fine on Linux, but fails on Windows.
So now we at least have an assert on Linux.
2022-05-20 18:40:18 +01:00
Ryan Pavlik
1aba4348dc
a/os: Fix naming convention for function pointer
2022-05-20 18:40:16 +01:00
Jakob Bornecrantz
6de4e4afaa
u/worker: Init mutex and cond var
2022-05-19 23:13:48 +01:00
Mateo de Mayo
3e6fd9ba73
u/aeg: Fix clang warnings
2022-05-19 18:21:36 -03:00
Mateo de Mayo
85bdbc1817
u/aeg: Implement state machine to correct overshooting and avoid oscillations
2022-05-19 14:03:17 +00:00
Mateo de Mayo
bf311f3c2e
u/aeg: Add log functions
2022-05-19 14:03:17 +00:00
Mateo de Mayo
63b477d250
a/math: Add MIN, MAX and CLAMP macros
2022-05-19 14:03:17 +00:00
Mateo de Mayo
77139b02a1
u/aeg: Add utility for automatic exposure and gain computation
2022-05-19 14:03:17 +00:00
Mateo de Mayo
7ea7cce930
u/var: Add u_var_histogram_f32
2022-05-19 14:03:17 +00:00
Mateo de Mayo
7d266c76b5
u/var: Add u_var_draggable_u16
2022-05-19 14:03:17 +00:00
Arkadiusz Drohomirecki
d444412221
a/math: Add a clear() method to RelationHistory/m_relation_history
2022-05-18 14:45:12 +00:00
Ryan Pavlik
3b54152563
auxiliary: Improve word choice/clarity
2022-05-17 17:40:56 -05:00
Ryan Pavlik
6e78ec1127
a/util: Improve word choice/clarity
2022-05-17 17:39:52 -05:00
Ryan Pavlik
276f24c9ad
a/tracking: Improve word choice/clarity
2022-05-17 17:39:52 -05:00
Ryan Pavlik
2a54dcdb19
a/math: Improve word choice/clarity
2022-05-17 17:39:52 -05:00
Ryan Pavlik
9edc6dd0bf
a/util: Doc improvements
2022-05-17 14:42:02 -05:00
Ryan Pavlik
cc8c034556
a/vk: Improve comment
2022-05-17 14:42:02 -05: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
cf9c5b9dc7
u/var: Put in a namespace and add some documentation
2022-05-17 20:09:19 +01:00
Ryan Pavlik
8bd7d199cb
a/os: Improve docs in the threading header.
2022-05-17 12:39:44 -05:00
Ryan Pavlik
1e307e8e9f
a/os: Add a function to set thread name.
2022-05-17 12:39:44 -05:00
Ryan Pavlik
147624348f
a/vk: Add an internal check to ensure graphics buffer ref worked.
2022-05-17 17:38:07 +00:00
Jakob Bornecrantz
9285bee210
u/system_helpers: Use new xrt_prober_create_system function
2022-05-17 11:20:40 +01:00
Jakob Bornecrantz
f91db16dac
u/builders: Add xrt_builder_helpers
2022-05-17 11:20:40 +01:00
Frederic Plourde
2e42373d21
aux/os: Fix os_semaphore_get_realtime_clock()
...
Function was previously using output param 'ts' as
input for computing 'now' internally.
2022-05-16 20:56:53 +00:00
Ryan Pavlik
213f4b6003
a/util: Add a COM guard object.
...
Need COM initialized to do some things (like d3d11) on Windows,
don't know if the app already initialized it, don't have a big preference
for "how" we initialize it.
2022-05-16 11:00:27 -05:00
Jakob Bornecrantz
f4ab51f78b
u/pp: Add xrt_result_t printing
2022-05-15 15:02:08 +01:00
Jakob Bornecrantz
535cb839fa
u/pp: Add stack only sink for printing messages
2022-05-15 14:54:00 +01:00
Moses Turner
bcfd50c839
u/sink: Make sure gen-locked frames have the same timestamp
2022-05-13 14:18:02 +01:00
Jakob Bornecrantz
faca646193
u/logging: Change suffix to _func_t
2022-05-12 11:59:12 +00:00
Jakob Bornecrantz
ceed09d9b5
u/prober: Add helper file for prober functions
2022-05-12 11:59:12 +00:00
Jakob Bornecrantz
1a358d3a92
u/sink: Remove unused downstream2
2022-05-12 12:53:14 +01:00
Jakob Bornecrantz
fc093e2c7b
u/sink: Assert on downstream being null
2022-05-12 12:53:12 +01:00
Jakob Bornecrantz
d84819eee7
u/system_helpers: Add helper code for system devices
2022-05-11 10:14:00 +01:00
Moses Turner
e25ee4058d
xrt: Remove xrt_tracked_hand
2022-05-10 18:53:58 +01:00
Jakob Bornecrantz
e140cfad5c
u/pacing: Add vblank timing function for display control
2022-05-10 11:22:04 +01:00
Jakob Bornecrantz
57070ad620
u/pacing: Make the comp time be at least 2ms in fake pacer
2022-05-10 11:18:52 +01:00
Jakob Bornecrantz
b9b9ced43d
u/pacing: Predict present time and then calculate display time in fake pacer
2022-05-10 11:18:52 +01:00
Jakob Bornecrantz
6c9c1e9249
u/pacing: Make present_to_display_offset_ns more clear
2022-05-10 11:18:51 +01:00
Jakob Bornecrantz
2b042d48ff
a/vk: Add function to print opened device info
2022-05-09 14:01:20 +00:00
Jakob Bornecrantz
6c61965790
a/vk: Tidy vk_print_device_info
2022-05-09 14:01:20 +00:00
Jakob Bornecrantz
e092a3687b
a/vk: Pass external_[fence|samaphore]_fd status to vk_init_from_given
2022-05-09 14:01:20 +00:00
Jakob Bornecrantz
6a8e679f87
a/vk: Check for VK_KHR_external_fence_fd and VK_KHR_external_semaphore_fd
2022-05-09 14:01:20 +00:00
Jakob Bornecrantz
308aeb8e21
a/vk: Sort checked extensions
2022-05-09 14:01:20 +00:00
Jakob Bornecrantz
56b77248c9
a/vive: Add bindings to touch controller
2022-05-09 10:46:44 +00:00
Jakob Bornecrantz
7d4b19766c
a/vive: Add bindings
2022-05-09 10:46:44 +00:00
Mateo de Mayo
e3fadb5364
doc: Fix some doxygen warnings
2022-05-07 15:53:56 +00:00
Ryan Pavlik
e79a13f0ac
a/util: Fix log corruption on Windows.
2022-05-06 00:26:39 +01: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
4ba23faa6b
auxiliary: Deal with clang-format-14 fallout (NFC)
2022-05-04 15:58:01 +01:00
Ryan Pavlik
f9b4af04e4
a/tracking: Fix conversion warnings
2022-05-03 22:44:37 +01:00
Ryan Pavlik
d8970f25f9
a/math: Fix conversion warnings
2022-05-03 22:44:28 +01:00
Jakob Bornecrantz
d1d58c4bce
u/distortion: Fix conversion warning
2022-05-02 17:16:04 +01:00
Jakob Bornecrantz
d8003b4c8f
u/pacing: Fix conversion warning
2022-05-02 17:16:04 +01:00
Jakob Bornecrantz
fa988a7f74
u/time: Fix conversion warning
2022-05-02 17:16:04 +01:00
Jakob Bornecrantz
5981a508d2
u/sink: Fix conversion warnings
2022-05-02 17:16:04 +01:00
Jakob Bornecrantz
1afc18108e
m/3dof: Fix conversion warning
2022-05-02 17:16:04 +01:00
Jakob Bornecrantz
0a0d4a49d5
m/space: Fix function call warning
2022-05-02 17:16:04 +01:00
Jakob Bornecrantz
d1512f0005
m/lowpass: Fix no define parameter warning
2022-05-02 17:16:04 +01:00
Jakob Bornecrantz
6d2011abfd
u/file: Avoid using fopen
2022-05-02 17:16:04 +01:00
Jakob Bornecrantz
42ba279050
u/file: Avoid using getenv
2022-05-02 17:16:04 +01:00
Jakob Bornecrantz
fbc51366e6
u/config: Avoid using strncpy
2022-05-02 17:16:04 +01:00
Antonio Ospite
bd06961188
a/util: Silence percetto warnings also when building with g++
...
Percetto is using designated struct initializers, but those are not
supported in standard C++ before C++20, resulting in some compilation
warnings.
The previous fix for that was using a diagnostic valid for clang but not
for g++ resulting in another warning when building with g++:
-----------------------------------------------------------------------
In file included from ../monado/src/xrt/auxiliary/math/m_relation_history.cpp:19:
../monado/src/xrt/auxiliary/util/u_trace_marker.h:21:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
21 | #pragma GCC diagnostic ignored "-Wc99-designator"
| ^~~~~~~~~~~~~~~~~~
-----------------------------------------------------------------------
For GCC the diagnostics to disable is actually "-Wpedantic", as shown
below:
-----------------------------------------------------------------------
In file included from ../monado/src/xrt/auxiliary/util/u_trace_marker.h:25,
from ../monado/src/xrt/auxiliary/math/m_relation_history.cpp:19:
../external/percetto/src/percetto.h: In function ‘void percetto_event_with_args(percetto_category*, uint32_t, const char*, int32_t, const percetto_track*, int64_t, uint64_t)’:
../external/percetto/src/percetto.h:424:5: warning: C++ designated initializers only available with ‘-std=c++2a’ or ‘-std=gnu++2a’ [-Wpedantic]
424 | .track = track,
| ^
-----------------------------------------------------------------------
And for clang "-Wc++20-designator" should be slightly more accurate:
-----------------------------------------------------------------------
In file included from ../monado/src/xrt/auxiliary/util/u_trace_marker.h:29:
../external/percetto/src/percetto.h:424:5: warning: designated initializers are a C++20 extension [-Wc++20-designator]
.track = track,
^
-----------------------------------------------------------------------
Fix all the warnings by ignoring the right diagnostics depending on the
compiler, taking care of differentiating clang++ from g++ as they both
define __GNUC__.
2022-05-02 17:31:11 +02:00
Jakob Bornecrantz
175ff58f10
build: Remove meson files
2022-04-28 21:36:25 +00:00
Jakob Bornecrantz
0dbe9857c3
a/vk: Add function to check timeline semaphore import/export cap
2022-04-28 10:55:55 +01:00
Ryan Pavlik
a10206dce6
a/vk: Fix MSVC build.
...
Apparently static initializers referring to other statics are not enjoyed
by Microsoft's compiler
2022-04-27 15:23:24 +00:00
Ryan Pavlik
7db9131aab
a/util: Add pop_back to HistoryBuffer
2022-04-27 09:51:12 -05:00
nima01
232b3bade5
aux/math: More double-precision matrix and vector support
2022-04-25 19:14:46 +00:00
Jakob Bornecrantz
27e4577acb
a/vk: Tidy calls to vk_get_memory_type
2022-04-24 22:47:51 +01:00
Jakob Bornecrantz
045fc9c33f
a/vk: Add caller_name argument to vk_alloc_and_bind_image_memory for better debugging
2022-04-24 22:47:51 +01:00
Jakob Bornecrantz
917265d1b2
a/vk: Add vk_convert_timestamps_to_host_ns function
2022-04-24 22:47:51 +01:00
Jakob Bornecrantz
f217046810
a/vk: Get the timestamp valid bits
2022-04-24 11:10:03 +01:00
Jakob Bornecrantz
599527fe01
a/vk: Fill in timestamp feature information
2022-04-24 11:10:03 +01:00
Jakob Bornecrantz
3aa4fdb096
a/vk: Add function to print device features
2022-04-24 11:10:03 +01:00
Jakob Bornecrantz
f65a8b1eda
a/vk: Add VK_EXT_calibrated_timestamps
2022-04-24 00:29:41 +01:00
Jakob Bornecrantz
9e58ab69e0
a/vk: Add VkQueryPool functions
2022-04-24 00:29:41 +01:00
Jakob Bornecrantz
3d35890206
u/pacing: Trace a little bit more to show when the app is late
2022-04-18 23:26:52 +00:00
Jakob Bornecrantz
4f5bcc5c22
u/pacing: Use the correct term for when the GPU work is done
2022-04-18 23:26:52 +00:00
Jakob Bornecrantz
93091157b8
u/pacing: Correct account for the apps full time when predicting
2022-04-18 23:26:52 +00:00
Jakob Bornecrantz
c5fe86ccf9
u/trace_marker: Add env varible to enable/disable tracing
...
Should a application load and unload the OpenXR runtime driver multiple times
the Perfetto code becomes unstable and eventually crashes. This unfortunately
happens with the CTS, to avoid having to recompile Monado and a env variable
to control if tracing should be used.
2022-04-18 22:41:17 +00:00
Jakob Bornecrantz
7ba7f43e83
a/vk: Add specialization_info argument to vk_create_compute_pipeline
2022-04-18 18:48:54 +01:00
Ryan Pavlik
a55a5a54b3
a/math: Normalize argument order of one euro filter initializing functions.
2022-04-13 09:40:40 -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
029fa2496e
a/math: Tell clang-tidy to leave our MSVC-mandated define alone.
...
Also try to avoid redefinition warnings from MSVC.
2022-04-13 01:11:17 +01:00
Ryan Pavlik
4939bc2f59
a/util: Manual fixes to clang-tidy issues.
2022-04-13 01:10:54 +01:00
Ryan Pavlik
ad1961fce7
auxiliary: Fix or disable a number of warnings
...
Both MSVC and doxygen warnings.
2022-04-12 23:06:11 +00:00
Ryan Pavlik
2b5f07c8e4
a/util: Silence warnings if using percetto in C++
2022-04-12 14:38:58 -05:00
Jakob Bornecrantz
e8fb10bd82
u/pretty: Add pretty print helpers
2022-04-11 18:27:39 +01:00
Jakob Bornecrantz
0ee1127431
aux/vk: Rename barrier functions and introduce new variant
2022-04-08 19:17:41 +01:00
Jakob Bornecrantz
9d74e7a8c5
aux/vk: Tidy command buffer related functions
2022-04-08 17:34:30 +00:00
James Hogan
7440e14fb4
aux/ogl: Add GLX API wrapper
...
Add a wrapper for the GLX API around the GLAD header.
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2022-04-07 02:21:34 +02:00
Mateo de Mayo
4c85e3fbb3
t/slam: Refactor tracker to accept a config struct on creation
2022-04-06 11:50:17 -03:00
Mateo de Mayo
a80f88eb00
d/euroc: Refactor player to accept a config struct on creation
2022-04-06 11:50:17 -03:00
Mateo de Mayo
2a4a9aa210
t/slam: Add configuration options to tracker
...
Specifically:
- SLAM_PREDICTION_TYPE
- SLAM_CSV_PATH
2022-04-06 11:50:17 -03:00
Mateo de Mayo
b6cd12a860
misc: Add gui nullcheck and initialize thread running field
2022-04-06 11:50:17 -03:00
Jakob Bornecrantz
716ba4db60
tracking: Predeclare struct instead of including cJSON in header
2022-04-06 15:38:44 +01:00
Jakob Bornecrantz
1a00709186
aux/vk: Add vkEnumerateDeviceLayerProperties to instance functions
2022-04-06 11:45:24 +01:00
Ryan Pavlik
8af498aa20
a/vk: Fix typo
2022-04-05 22:48:24 +00:00
Ryan Pavlik
7952773908
a/vk: Expose get_device_memory_handle as vk_get_native_handle_from_device_memory
2022-04-05 22:48:24 +00:00
Jakob Bornecrantz
0595070132
u/pacing: Split draw into draw and wait, improve pipelining
2022-04-05 22:01:17 +00:00
Jakob Bornecrantz
47649f56b6
u/pacing: Track when the app wants the frame to be displayed
2022-04-05 22:01:17 +00:00
Jakob Bornecrantz
8e8a0b38c6
u/pacing: Add gpu done time tracking to app pacer
2022-04-05 22:01:17 +00:00
Jakob Bornecrantz
04b9602dd1
u/pacing: Allow more then two frames to be alive at the same time
2022-04-05 22:01:17 +00:00
Jakob Bornecrantz
f4b75b3561
u/trace_marker: Add wait pacing track
2022-04-05 22:01:17 +00:00
Jakob Bornecrantz
c317a27a1d
aux/vk: Remove setting of format on out struct
2022-04-04 16:12:08 +00:00
Jakob Bornecrantz
1c67113e20
aux/vk: Tidy vk_image_allocator
2022-04-04 16:12:08 +00:00
Jakob Bornecrantz
15da4636f8
aux/vk: Use VK_CSCI_FORMATS helper for swapchain image flags
2022-04-01 19:53:02 +01:00
Jakob Bornecrantz
aaa2d4e8e6
aux/vk: Move compositor image format list here
2022-04-01 19:44:07 +01:00
Jakob Bornecrantz
d31232c794
aux/vk: Move vk_insert_image_memory_barrier declaration (NFC)
2022-04-01 18:54:18 +01:00
Jakob Bornecrantz
4f1dfa7ae4
aux/vk: Refactor out some printing functions
2022-03-30 20:14:38 +01:00
Jakob Bornecrantz
2f73c7569a
aux/vk: Refactor out init functions
2022-03-30 20:08:35 +01:00
Jakob Bornecrantz
f54894ee0d
aux/vk: Refactor out external handle type for compositor swapchain image
2022-03-29 16:26:34 +01:00
Jakob Bornecrantz
65ced47143
aux/vk: Add more formats to vk_format_string
2022-03-29 16:26:34 +01:00
Jakob Bornecrantz
8cfe941c01
aux/vk: Rename vk_[color_]format_string
2022-03-29 16:26:34 +01:00
Christoph Haag
5d50be0164
aux/vk: Always use dedicated allocation on desktop
...
Fixes CTS on nvidia.
Example code given by the driver devs in the nvidia forums was
VkBool32 dedicatedAllocation = (memDedicatedReq.requiresDedicatedAllocation != VK_FALSE) ||
(memDedicatedReq.prefersDedicatedAllocation != VK_FALSE);
However on GTX 1080, nvidia 470.103 with
./conformance_cli "Timed Pipelined Frame Submission" -G Vulkan2
we are to create a VkImage with
DEBUG [create_image] create_image: Use dedicated allocation: 0 (preferred: 0, required: 0)
doing so causes the VkFence wait in vk_submit_cmd_buffer to fail randomly with
either VK_TIMEOUT or VK_ERROR_DEVICE_LOST.
On AMD radv we are told to use dedicated allocation:
DEBUG [create_image] create_image: Use dedicated allocation: 1 (preferred: 1, required: 1)
2022-03-28 23:16:05 +02:00
Moses Turner
9417fe8d7f
a/tracking: Support different numbers of calib parameters
2022-03-23 20:56:15 +00:00
Jakob Bornecrantz
83c8b1da86
u/sink: Make u_sink_create_format_converter support L8
...
Co-authored-by: Moses Turner <moses@collabora.com>
2022-03-23 20:56:15 +00:00
Moses Turner
e817a18cfd
u/worker: Add #pragma once
2022-03-23 20:56:15 +00:00
Ryan Pavlik
8bfb4b3d09
cmake: Update to handle newer Percetto cmake build details
2022-03-23 11:22:10 -05:00
Christoph Haag
6fdd8ab93a
aux/config_json: Only check version for camera tracking config
...
Only the camera tracking config writes and uses the version field.
Unfortunately the tracking override config is written into the same json
object while not making use of the version field.
2022-03-22 12:35:01 +00:00
korejan
d43c7ffa71
android: Support for using device's set display refresh rate
...
* Adds support for querying the device's currently set display refresh rate to
be used for android driver on creation. Allowing for devices which support
selecting other refresh rate modes beyond 60hz.
* Changes hardcoded sensor polling rate to now match refresh queried from the
device.
2022-03-22 12:33:30 +00:00
Jakob Bornecrantz
e2e65aa241
u/logging: Fix va_copy usage
2022-03-21 22:19:30 +00:00
Moses Turner
09da6e09dc
u/sink: Add u_sink_simple_queue
2022-03-19 14:28:09 +00:00
Moses Turner
662b72e2f6
u/sink: Tiny refactor for queue
2022-03-19 14:28:09 +00:00
Connor Smith
703baa94fe
Make app pacing more robust to variable composition->display times.
...
If the last returned display time shifts backwards slightly with respect to the
last sampled display time from the compositor, the next predicted display time
will not move forward by one frame. Adding half the display period to the
comparison makes the pacing robust to this case.
2022-03-19 00:57:41 +00:00
Jakob Bornecrantz
170fe0e5d9
aux/vk: Refactor out semaphore and native creation into a helper
2022-03-19 00:41:29 +00:00
Moses Turner
b6e5c296f5
comp: Factor frame-timing helper out of comp_compositor
...
So that we can use it for readback and anything else
2022-03-18 19:00:28 -05:00
Jakob Bornecrantz
29acdba23f
aux/vk: Tidy get/import functions for native handles (NFC)
2022-03-18 23:20:20 +00:00
Jakob Bornecrantz
77ba132452
u/logging: Add u_log_set_sink implementation
2022-03-17 15:37:09 +00:00
Ryan Pavlik
81eaf5c28c
gradle: update NDK and build tools versions to be consistent.
2022-03-16 20:29:50 +00:00
Jakob Bornecrantz
e89e3d5276
aux/vk: Add XRT_CHECK_RETURN to sync functions
2022-03-15 00:16:17 +00:00
Mateo de Mayo
2bb0c5cda5
t/slam: Implement CSV writers for trajectories and timing info
...
This CSV files can be used for offline analysis.
2022-03-14 23:42:13 +00:00
Mateo de Mayo
c9f7184d64
t/slam: Implement timing and trajectory error UI graphs
2022-03-14 23:42:13 +00:00
Mateo de Mayo
af2dde11c3
misc: Fix some release build warnings and minor changes
...
- Add CMakeUserPresets.json to .gitignore
- Fix DASSERTs warning for release builds
- Do not use one euro filter with invalid poses
- Other NFC style changes
2022-03-14 23:42:13 +00:00
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