Jakob Bornecrantz
062dec59b7
cmake: Sort print list and general tidy [NFC]
...
* Sort lists
* Add all entries to exposed cmakedefines list
* Remove duplicate hand-tracking entry
* Move SLAM entry to feature list as it's called feature
2023-03-08 01:03:21 +00:00
Moshi Turner
03546e0b99
h/mercury: Add wrist pose initialization guesser
2023-03-07 17:41:49 -06:00
Moshi Turner
3f2b71a9d5
h/mercury: Use post-rotation residual that'll handle big rotations
...
Fixes a long-standing bug
2023-03-07 17:41:49 -06:00
Moshi Turner
cdd0a6df67
h/mercury: Have a post-translation as well as post-rotation
...
For better numerical stability. Shouldn't significantly affect tracking besides slight jitter reduction and very slightly higher accuracy.
2023-03-07 17:41:49 -06:00
Moshi Turner
7c93b1ccfd
h/mercury: Move all defines to lm_defines.hpp
2023-03-07 17:40:45 -06:00
Moshi Turner
4ccc133ac5
h/mercury: Split lm_rotations into two files to make copyright ownership clear
2023-03-07 17:40:45 -06:00
Moshi Turner
7485afbeaa
xrt: Refactor oxr_sdl2_hack to u_debug_gui
...
And OXR_DEBUG_GUI to XRT_DEBUG_GUI
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-03-06 16:39:52 -06:00
Jakob Bornecrantz
e338d57945
st/gui: Remove unused pointer [NFC]
2023-03-06 14:38:36 +00:00
Moshi Turner
c0af2327fd
h/mercury: Push frame timestamp back before predicting next frame ROIs
...
Fixes minor logic error and stops crash if hands are detected on the very first frame
2023-03-05 22:41:10 -06:00
Moshi Turner
bc152f6983
h/mercury: Dynamically allocate arrays for stereographic projection
...
Also factor out stereographic_unprojection into its own file because we're gonna need it elsewhere
2023-03-04 17:52:15 -06:00
Moshi Turner
0931cbaf0f
h/mercury: Add option to run hand detection model in all views
2023-03-03 20:27:39 -06:00
Moshi Turner
7f5562c765
h/mercury: Don't show hands until tracked for 10 frames
2023-03-03 20:27:39 -06:00
Moshi Turner
84bae0b8ca
h/mercury: Add debug instrumentation header
...
So that we can run automated tests on our hand tracking
2023-03-03 20:27:39 -06:00
Moses Turner
a934bf4ae3
h/mercury: Bump the hand detection threshold up
2023-03-03 20:27:39 -06:00
Jakob Bornecrantz
006bdbc400
u/pp: Add new xrt input enums to printing function
2023-03-03 21:38:54 +00:00
Jakob Bornecrantz
3ab34071be
st/oxr: Extract space type conversions
2023-03-03 21:38:54 +00:00
Jakob Bornecrantz
a980392b9e
st/oxr: Refactor out conversion helper to own header
2023-03-03 21:38:54 +00:00
Jakob Bornecrantz
b15ac35e76
st/oxr: Refactor some things into oxr_defines.h
2023-03-03 21:38:54 +00:00
Jakob Bornecrantz
d84a679eb9
u/builders: Move setup tracking origin function here
2023-03-03 21:38:54 +00:00
Jakob Bornecrantz
05de788168
d/multi: Remove all uses of tracking_origin offsets
2023-03-03 21:38:54 +00:00
Moshi Turner
5519aecd2c
cmake: Don't build t_euroc_recorder on Windows
2023-03-03 15:13:23 -06:00
Moshi Turner
8d2d90432a
cmake: Add XRT_MODULE_MONADO_GUI
2023-03-03 15:13:23 -06:00
Moshi Turner
ed086ea423
cmake: Add XRT_MODULE_MONADO_CLI
2023-03-03 15:13:23 -06:00
Moshi Turner
ae7167dbab
cmake: Add XRT_MODULE_AUX_VIVE
2023-03-03 15:13:23 -06:00
Moshi Turner
85a701a4a0
cmake: Add XRT_MODULE_MERCURY_HANDTRACKING
2023-03-03 15:13:23 -06:00
Moses Turner
58399cd993
h/mercury: Remove duplicate include
2023-03-03 15:13:23 -06:00
Moshi Turner
54bd4b844f
a/math: Fix m_filter_f32_run -> m_filter_euro_f32_run
...
This is currently used in the delay filter in the Mercury SteamVR driver
2023-03-03 15:13:23 -06:00
Moses Turner
c596b31327
h/mercury: Add interface header define
2023-03-03 15:07:45 -06:00
Moshi Turner
c750d714a9
d/ht_ctrl_emu: Fix pinch detection
2023-03-03 15:07:45 -06:00
Jakob Bornecrantz
4b6491aa16
cmake: Introduce a new module category
2023-03-03 20:56:59 +00:00
Ryan Pavlik
2a3157b087
cmake: Do not install a test binary
2023-03-03 01:06:11 +00:00
Ryan Pavlik
fd77b84938
st/oxr: Suppress clang-tidy removing a forward declaration.
2023-03-03 01:05:14 +00:00
Ryan Pavlik
ae61287f4c
a/vk: Enlarge buffer to fix warning
2023-03-03 01:05:14 +00:00
Ryan Pavlik
124c9ecf3f
st/oxr: Suppress a warning.
...
It looks more serious than it actually is, this is normal usage.
2023-03-03 01:05:14 +00:00
Ryan Pavlik
9348130fe7
a/util: Fix bitwise operation on signed integer warnings
2023-03-03 01:05:14 +00:00
Ryan Pavlik
bdc526b77d
xrt: Fix bitwise operation on signed integer warnings
2023-03-03 01:05:14 +00:00
Ryan Pavlik
cff131da36
st/oxr: Fix bitwise operation on signed int warnings.
2023-03-03 01:05:14 +00:00
Ryan Pavlik
f43ac4841b
d/wmr: Fix warnings/issues, mostly related to 32-bit builds
2023-03-03 01:05:14 +00:00
Ryan Pavlik
f230446cec
c/util: Fix printf on 32-bit
2023-03-03 01:05:14 +00:00
Ryan Pavlik
06b91dabc8
c/main: Fix printf formatting on 32bit
2023-03-03 01:05:14 +00:00
Ryan Pavlik
43ac5d44cf
d/euroc: Fix printf formatting on 32bit
2023-03-03 01:05:14 +00:00
Ryan Pavlik
fd2c7c6a98
a/util: Fix printf formatting on 32-bit
2023-03-03 01:05:14 +00:00
Ryan Pavlik
44d6755814
external: Fix typo in DearImGui demo.
2023-03-02 17:49:26 -06:00
Ryan Pavlik
172a5baf23
st/oxr: Add missing calling convention macros for entry points.
...
Fixes 32-bit Windows build.
2023-03-02 13:48:25 -06:00
Moshi Turner
3c1880448e
a/vive: Remove unused zlib linkage
2023-03-02 04:35:44 +00:00
Moshi Turner
e26a272c17
d/dai, st/gui, t/common: Make DepthAI frameserver work with multicam sinks
2023-03-01 14:37:26 -06:00
Ryan Pavlik
9cf124254e
c/main: Constify target factories
2023-03-01 19:54:36 +00:00
Ryan Pavlik
3058f1c149
c/main: Fix typo
2023-03-01 19:54:11 +00:00
Mateo de Mayo
59c3c911e6
d/rift_s: Add initial multicamera support
...
Tested-by: Nova <technobaboo@gmail.com>
2023-03-01 19:47:10 +00:00
Mateo de Mayo
813cb31cc6
t/euroc: Support euroc recording for multiple cameras
2023-03-01 19:43:06 +00:00
Mateo de Mayo
c39dc977c4
d/euroc: Support datasets with more than two cameras
2023-03-01 19:43:06 +00:00
Mateo de Mayo
186ca8258e
t/slam: Adapt camera calibration data for multiple cameras
2023-03-01 19:43:06 +00:00
Mateo de Mayo
d8e1b7d921
t/slam: Handle multiple camera sinks
2023-03-01 19:43:06 +00:00
Mateo de Mayo
09d7aac89e
external/slam: Update interface to support multiple cameras
2023-03-01 19:43:06 +00:00
Mateo de Mayo
52cac31d3a
xrt: Support more than two cameras in a SLAM sink
2023-03-01 19:43:06 +00:00
Mateo de Mayo
a93dc650a1
u/debug: Export debug_to_num function
2023-03-01 19:43:06 +00:00
Jakob Bornecrantz
84ccf3a78e
a/math: Tidy m_filter_one_euro.[h|c]
2023-03-01 19:34:50 +00:00
Ryan Pavlik
534d2e9f66
a/math: Improve comments for one euro filter
2023-03-01 19:33:48 +00:00
Ryan Pavlik
8f02541c27
a/math: Add a zeroing in the generic init for one euro
2023-03-01 19:31:59 +00:00
Ryan Pavlik
0c8d78fe49
a/bindings: JSON schema for bindings
2023-03-01 17:10:48 +00:00
Ryan Pavlik
2d056e6606
a/math: Add comment for searching in the lever arm math.
2023-03-01 17:08:39 +00:00
Ryan Pavlik
66a303f809
st/oxr: Internal docs
2023-03-01 17:08:39 +00:00
Jan Schmidt
699a92d9f8
rift_s: Ignore the first 100 samples for the clock
...
After turning on the display, the Rift S
sends a burst of stale data and it can lead to
wildly incorrect clock estimates that then
recover really slowly and cause SLAM tracking to
lag horribly.
Throw away the first 100 samples, which seems to be
enough (only the first 20 or so seem to be bad).
Also reduce the clock a2b cutoff frequency, for
faster adaptation to changes.
Tested-By: Nova <technobaboo@gmail.com>
2023-03-01 17:08:09 +00:00
Ryan Pavlik
f6ab734b2e
a/math: Add floating point conversion methods to Rational
2023-03-01 10:53:18 -06:00
Jakob Bornecrantz
9a19a91f2d
ipc: Refactor out common ipc_client_xdev
2023-02-28 21:27:56 +00:00
Jakob Bornecrantz
a86cb86c80
st/oxr: Remove unused out_xdev argument
2023-02-28 21:27:53 +00:00
Jakob Bornecrantz
78f069a10d
a/math: Make argument const
2023-02-28 21:27:19 +00:00
Ryan Pavlik
f66d60cb2c
aux/android: The Android XINA already always adds "sampled"
2023-02-28 13:56:58 -06:00
Jarvis Huang
9b2384f1fb
t/android: Fix unable to connet to runtime if process is still alive
2023-02-28 19:38:41 +00:00
Jakob Bornecrantz
494e17e173
c/util: Filter Vulkan formats for AHardwareBuffer formats
...
Some drivers says that they can export/import Vulkan formats that doesn't
have a direct mapping to a AHardwareBuffer format. Our import/export code
doesn't handle that case so make sure to filter out those formats.
2023-02-28 16:05:39 +00:00
Jarvis Huang
5380b6c149
st/oxr: Use xrt_device_is_form_factor_available
2023-02-22 23:52:21 +00:00
Jarvis Huang
693641b70b
ipc: Add support for xrt_device::is_form_factor_available
2023-02-22 23:52:21 +00:00
Jarvis Huang
b93d1ea8b8
xrt: Add xrt_device::is_form_factor_available
2023-02-22 23:52:21 +00:00
Simon Zeni
fdec80cd99
d/survive: add hand tracking pose offsets to controller
2023-02-22 23:51:50 +00:00
Simon Zeni
0402a1e1a0
aux/vive: add hand tracking values to vive_poses transforms
2023-02-22 23:51:50 +00:00
Fernando Innella
80a8048c39
c/render: Fix handling of alpha channel in compute layer renderer
2023-02-21 11:10:10 -05:00
Mateo de Mayo
e9e0cf9f2c
t/slam: Recover fallback measurements for systems without timing extension
...
Fixes #235
2023-02-18 13:49:56 +00:00
Mateo de Mayo
b666b8b017
t/slam: Use accel for prediction by default
...
Before we were not doing this because we have a hardcoded gravity vector.
Due to this, if the IMU gravity is too different, it causes the prediction to
bounce around slightly.
In practice the difference seems to be sufficiently small so as to be almost
not noticeable and we get the latency improvements we get are probably worth it.
2023-02-17 15:31:59 -06:00
Mateo de Mayo
4ac9d985e5
st/steamvr_drv: Silence warning
2023-02-17 15:31:53 -06:00
Mateo de Mayo
5ba9efd522
t/euroc: Implement trajectory recording
2023-02-17 21:03:08 +00:00
Connor Smith
8b8358f0c9
Fix typo in Magic Leap 2 controller shoulder button path.
2023-02-17 15:05:41 -05:00
Moses Turner
3bfc87f76d
(NFC) h/mercury: Fix typo
2023-02-16 17:03:17 -06:00
Moses Turner
8621acd899
d/ht, h/mercury: Use u_file_get_hand_tracking_models_dir
...
Needed for Windows SteamVR driver
2023-02-16 17:03:17 -06:00
Moses Turner
8b2d62cf57
a/util: Add u_file_get_hand_tracking_models_dir
...
Needed for Windows SteamVR driver
2023-02-16 17:03:15 -06:00
Moses Turner
266aec20e1
(NFC) h/mercury: Random nit in if case
2023-02-16 17:01:12 -06:00
Moses Turner
79701d8567
h/mercury: Remove __builtin_expect on MSVC
2023-02-16 17:01:12 -06:00
Moses Turner
3155765aed
h/mercury: IWYU hg_image_distorter
2023-02-16 17:00:48 -06:00
Moses Turner
b32ee5bbfb
a/vive: Add extern "C" so we can use from C++
...
Needed for Windows SteamVR driver
2023-02-16 17:00:48 -06:00
Moses Turner
2835b597be
a/tracking: Support JPEG output in euroc recorder
2023-02-16 16:53:13 -06:00
Moshi Turner
73416db7ba
a/tracking: Remove break statement that broke OPENCV_RADTAN promotion/demotion
2023-02-13 11:30:44 -06:00
Ryan Pavlik
0b7c822007
a/bindings: Fix typos
2023-02-08 17:35:58 -06:00
Ryan Pavlik
f32ed406d8
a/android,ipc/android: Fix typos
2023-02-08 17:35:49 -06:00
Ryan Pavlik
a87fb2be93
a/tracking: Fix typo
2023-02-08 17:35:33 -06:00
Ryan Pavlik
a51c2bcb1a
d/rift_s: Fix typo
2023-02-08 17:35:22 -06:00
Ryan Pavlik
992066ea7e
c/shaders: Fix typos
2023-02-08 17:35:14 -06:00
Christoph Haag
60b8b6e8fc
a/binding: reverb g2 input/menu/click is on both hands
...
Spec:
On both hands
…/input/menu/click
2023-02-07 11:27:39 +00:00
Ryan Pavlik
999c67975a
st/oxr: Fix inconsistent naming related to subaction paths
2023-02-06 17:58:00 -06:00
Ryan Pavlik
b2e65ed08c
st/oxr: Add some const correctness
2023-02-06 17:58:00 -06:00
Ryan Pavlik
573cbb12ee
st/oxr: Fix typo
2023-02-06 17:58:00 -06:00
Daniel Willmott
795de613c1
d/survive: Add aim pose offset to index controllers
2023-02-05 20:19:52 +00:00
Daniel Willmott
ab857e8f74
aux/vive: Add vive_poses
2023-02-05 20:19:52 +00:00
Daniel Willmott
e383609cbc
aux/math: Add math_quat_from_euler_angles()
2023-02-05 20:19:52 +00:00
Moses Turner
e9f79c45bf
h/mercury: Update hand tracking with new half-artificial model
2023-02-04 15:23:04 -06:00
Moses Turner
bfdeaa7d8f
a/tracking: Introduce t_camera_models.h
2023-02-04 15:23:04 -06:00
Mateo de Mayo
3cdc02c1bb
a/vk: Small improvements
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-02-04 18:52:59 +00:00
Jakob Bornecrantz
a8c4d1299e
a/vk: Fix crash caused by different signedness comparisons
...
Closes #234 .
All credit for debugging and figuring out what the problem is goes to Mateo, I
made a different fix for it.
Co-authored-by: Mateo de Mayo <mateo.demayo@collabora.com>
2023-02-04 18:52:35 +00:00
Mateo de Mayo
5b431152e1
t/common: Remove invalid parameter
2023-02-03 10:13:41 -03:00
Jakob Bornecrantz
c7e3a358b3
c/main: Prettier print of VkSurfaceFormats
2023-02-02 20:50:42 +00:00
Jakob Bornecrantz
e5b28c491a
c/main: Refactor instance extension selection
...
Add also add VK_EXT_swapchain_colorspace
2023-02-02 20:50:42 +00:00
Jakob Bornecrantz
a7f7023570
c/main: Add optional VK_KHR_format_feature_flags2
2023-02-02 20:40:20 +00:00
Jakob Bornecrantz
3a143cadd1
a/vk: Print more color space formats
2023-02-02 20:40:20 +00:00
Jakob Bornecrantz
7576ce0960
a/vk: Track VK_EXT_swapchain_colorspace
2023-02-02 20:40:20 +00:00
Jakob Bornecrantz
b7addee249
a/vk: Track VK_KHR_format_feature_flags2
2023-02-02 20:40:20 +00:00
Jakob Bornecrantz
3dc0415374
ipc: Tidy client includes (NFC)
...
Fixes some clang-tidy warnings about duplicated includes.
2023-02-02 20:05:06 +00:00
Jakob Bornecrantz
0938a1a02b
xrt: Fix missing function declaration without a prototype warnings
...
Found by clang-15.
src/xrt/auxiliary/math/m_permutation.c:133:15: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
m_do_the_thing()
^
void
2023-02-02 13:03:08 +00:00
Patrick Nicolas
559e145934
c/main: Record pose used in compositor
2023-01-31 09:30:47 +00:00
Patrick Nicolas
7a0d87db25
c/main: Allow providing comp_target_factory in constructor
2023-01-31 09:30:47 +00:00
Guillaume Meunier
76dff0b42f
ipc: make the pid filename, the socket filename, and the client library suffix customizable
2023-01-31 09:30:47 +00:00
Moses Turner
86e31f54f3
xrt: Refactor t_camera_calibration to use a tagged union instead of a bare array
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-01-30 17:09:27 -06:00
Jakob Bornecrantz
3b0f938028
d/simulated: Add builder
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
d1b7e3e557
d/simulated: Add controllers
...
Supports simulating Simple, WinMR and ML2 controllers
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
c562930cdc
d/simulated: Export logging level
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
0494777d1a
d/simulated: Make hmd center be pose and make it possible to pass it in at start
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
121bcf028a
d/simulated: Make it possible to pass in movement mode
...
And a little bit of tidy.
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
06806cc6ef
t/common: Tidy builder list
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
9b8de2f155
t/common: Sort builder definitions alphabetically
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
84ebd4d687
t/common: Add comment to NorthStar builder create function
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
17a14d5b10
t/cli: Add calib-dump command
2023-01-29 01:38:01 +00:00
Moses Turner
7d72b74a68
c/main: Make peek window struct private, and fix build with old SDL2
2023-01-28 12:47:57 -06:00
Jakob Bornecrantz
9bd63cb37d
d/dai: It's using aux_util so depend on it
2023-01-27 20:17:27 +00:00
Moses Turner
1bba34e944
xrt: Remove old_rgb hand tracking
2023-01-27 12:37:33 -06:00
Moses
10cdde859a
a/math, comp/main, comp/render: Change math_matrix_2x2_* to m_mat2x2_*
2023-01-27 12:37:22 -06:00
Moses Turner
7d8d1ad8e7
a/math: Add m_matrix_2x2_invert
2023-01-27 12:37:22 -06:00
Moses Turner
da16e64982
a/math: Move m_matrix_2x2 functions into their own header
2023-01-27 12:37:22 -06:00
Moses Turner
2c73485ecd
d/ht: Tidy header
2023-01-26 19:10:57 -06:00
Mateo de Mayo
da50a2499f
d/wmr: Adjust exposure and gain individually for each camera
2023-01-26 18:07:10 +00:00
Mateo de Mayo
60b996239c
u/aeg: Add optional prefix for having multiple aeg UIs
2023-01-26 18:07:10 +00:00
Mateo de Mayo
d22f58bee4
u/var: Add nested headers
2023-01-26 18:07:10 +00:00
Christoph Haag
6f263dbda4
a/vk: allow VkImageViewUsageCreateInfo in Vulkan 1.1
...
Some drivers do not advertise support for VK_KHR_maintenance2 in
Vulkan 1.1, because it has been promoted to core.
This caused a validation error on compositors that use Vulkan 1.1
because the scratch image is allocated with unorm format and STORAGE
usage: an image view with srgb format can not be created with STORAGE
usage on many GPUs.
2023-01-26 12:30:13 +00:00
Christoph Haag
a188ef219c
a/vk: Store vulkan version in vk_bundle
...
Also adds code in c/util's Vulkan code to store it.
2023-01-26 12:30:13 +00:00
Christoph Haag
e7fff3e435
d/hdk: handle 0 bytes read
2023-01-26 00:23:18 +01:00
Christoph Haag
bc1d355e26
d/hdk: Zero initialize buffer
2023-01-26 00:17:37 +01:00
Christoph Haag
4030b474ad
d/hdk: Use 100 ms hid read timeout
...
Avoids burning cpu cycles with busy looping
2023-01-26 00:17:37 +01:00
Moses Turner
c9405e946f
t/common: Add environment variable for replacing RiftS controllers with hand tracking
2023-01-25 22:24:53 +00:00
Jakob Bornecrantz
c21a8ef0cc
st/oxr: Add controller extensions
...
Extensions enabled:
* XR_EXT_hp_mixed_reality_controller
* XR_EXT_samsung_odyssey_controller
* XR_ML_ml2_controller_interaction
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
6ce2978648
xrt: Add ML2 controller
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
d231850771
xrt: Add Samsung Odyssey Controller
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
958911fd0b
xrt: Add HP Reverb G2 Controller
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
ed1f18bb74
xrt: More space in xrt_input_name enum list
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
213cc271f6
xrt: Sort xrt_device_name enums
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
da5323642d
m/space: Correct comments
2023-01-24 16:11:56 +00:00
Jakob Bornecrantz
c7fdaacd02
m/space: Make sure to use valid poses in linear and angular calculations
2023-01-24 16:11:56 +00:00
Jakob Bornecrantz
f7118d7a93
m/space: Refactor pose part first
2023-01-24 16:11:56 +00:00
Jakob Bornecrantz
02aad19c78
m/space: Make pose validity upgrading clearer
2023-01-24 16:11:56 +00:00
Jakob Bornecrantz
2c1d413bf0
m/space: Add missing extern "C"
2023-01-24 16:11:56 +00:00
Jakob Bornecrantz
1c046dc523
m/space: Move functions to correct section
2023-01-24 16:11:56 +00:00
Robbie Bridgewater
17560d0618
a/util,st/gui: Add i64 as a debug GUI type
2023-01-24 15:35:39 +00:00
Fernando Velazquez Innella
e035d060d1
c/render: implement render_resources_get_duration
...
Useful for systems that don't support calibrated timestamps and caseas where only execution time measuring is needed.
2023-01-24 15:35:31 +00:00
Ryan Pavlik
85a897a0b5
a/d3d,a/vk,c/client,ipc: D3D Depth texture / DXGI handle support
...
a/d3d: Improve allocation
Enable D3D11 and D3D112 depth images using DXGI handles
Allow D3D depth by default
D3D: only use DXGI handles
NT handles don't support depth formats and may fail to properly interop with Vulkan with some image dimensions.
Removed D3D_COMPOSITOR_ALLOW_DEPTH env.
D3D now always imports depth.
Added authorship.
Format pass
Fix D3D compositor tests
ipc: Fix HANDLE bit twiddling code
Merge into commits related to D3D depth changes. Makes the code compile
as C++, useful for Windows traceing
Co-authored-by: Robbie Bridgewater <ebridgewater@magicleap.com>
Co-authored-by: Fernando Velazquez Innella <finnella@magicleap.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-01-24 15:35:22 +00:00
Robbie Bridgewater
3802e737bb
a/d3d,a/vk: Add R32_SFLOAT formats
...
Co-authored-by: Catalin Slobodeanu <cslobodeanu@magicleap.com>
2023-01-24 15:35:01 +00:00
SJakab
e4a40a6e4e
st/oxr: Skip oxr_session_end if connected to Unreal 4.
2023-01-24 11:42:46 +00:00
Moses Turner
4709ab85ca
d/wmr: Fix grammar
2023-01-23 14:24:28 -06:00
Christoph Haag
87680c69d4
d/ohmd: Get rid of enum alias
...
The last enum index was used to determine the size of the inputs array.
The "clever" solution of aliasing enum values saved a minor amount of space
when allocating the xrt_device, while still allowing to dynamically assign
any input profile.
It also has drawbacks of being confusing and making it impossible to
validate that inputs from the correct xrt_input_name is requested.
Therefore just get rid of it, the minor space savings is not worth it.
fixes 2be4cbf4c3
2023-01-23 17:46:33 +01:00
Mario Kleiner
887b770f9e
aux/binding: Implement optional "steamvr_controllertypes" for SteamVR input bindings
...
Add an optional switch -s or --steamvr to steamvr_profiles.py, which enables
a different naming scheme for the "controller_type" field in the generated
SteamVR profile json files.
If the switch is provided and an interaction profile in bindings.json
provides the optional new property "steamvr_controllertype", that property
will be used for the "controller_type" field of the written out .json,
instead of the regular auto-generated name.
This allows to generate json files which use controller_type names normally
used by SteamVR, so Monado provided controllers are mapped to the same
OpenXR interaction profiles that SteamVR would normally map them to.
E.g., the standard controller_type for Oculus touch controllers used by
SteamVR is "oculus_touch" instead of Monado's "monado_oculus_touch_controller".
That in turn allows OpenXR clients to use the SteamVR/OpenXR runtime to
access controllers provided by Monado's SteamVR driver plugin. Without such
compatible json files, only standard OpenVR clients can use controllers
exposed by Monado's SteamVR driver by default, but not OpenXR clients.
Tested with an Oculus Rift CV-1, and shown to now enable OpenXR clients
to make full use of the Oculus touch controllers.
The mappings for controllers other than Oculus Touch are derived from
SteamVR log output, but not actually tested due to lack of suitable hw.
Per discussion for the merge request, we enable this '-s' flag by
default in the make file for SteamVR style naming scheme.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-01-23 16:30:27 +00:00
Mario Kleiner
d3893c229f
aux/binding: Implement optional "steamvr_path" for SteamVR input bindings
...
When using the Monado SteamVR driver plugin together with an Oculus
Rift CV-1 and Oculus touch controllers, the grip / squeeze sensors
(e.g., /user/hand/left/input/squeeze/value) and the thumbsticks did not
work.
This because SteamVR expects those controls to be exposed under a
different path than what one would use for OpenXR, e.g.,
OpenXR /input/squeeze --> SteamVR /input/grip and
OpenXR /input/thumbstick --> SteamVR /input/joystick
The same is true for some other controller types.
To fix this, add some new code for input subpath substitution, to perform
this remapping, depending on binding type:
For type "trigger": Substitute squeeze with grip
For type "joystick": Substitute thumbstick with joystick
For rare controller types where this would be the wrong thing to do,
e.g., Valve Index (for type "joystick", needs the path to remain
"thumbstick" as before), and for special cases not covered, we add
a new optional parameter 'steamvr_path' which can be used in bindings.json
to handle such mismatches in path flexibly to allow a dedicated path
name for SteamVR, overriding the regular "OpenXR style" input path or
auto-substituted path is if the parameter is omitted.
This makes the Oculus Rift CV-1 touch controllers fully work under SteamVR.
I haven't tested this with other controllers, as I only have Oculus
controllers for testing atm. But after reading about the HTC Vive controllers,
i did add a "steamvr_path" override for /input/menu -> /input/application_menu.
Cfe. https://github.com/ValveSoftware/openvr/wiki/IVRDriverInput-Overview
Also, a minor typo fix in steamvr_profiles.py as a bonus.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-01-23 16:30:27 +00:00
Mario Kleiner
50f7b5ba5f
d/ohmd: Fix input from controls_mapping[0].
...
Use INPUT_INDICES_LAST instead of 0 for checking if control_mapping[i]
is unassigned for index i, ie. for skipping input.
As 0 is a valid mapping assignment defined in "enum input_indices", this
lead to dead input for SIMPLE_SELECT_CLICK and OCULUS_TOUCH_X_CLICK, both
assigned to 0.
This commit makes the Oculus Rift CV-1 left touch controllers X-Button
work in Monado OpenXR native and SteamVR via. Monado driver plugin.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-01-23 16:30:27 +00:00
Jakob Bornecrantz
cb94bc2df0
t/common: Fix warning in lighthouse builder (NFC)
2023-01-23 13:42:20 +00:00
Christoph Haag
694baebd07
d/ohmd: Fix build
...
fixes 2be4cbf4c3
2023-01-22 22:04:47 +01:00
Christoph Haag
2be4cbf4c3
d/ohmd: Support generic trackers and clean up
2023-01-21 19:21:59 +00:00
Moses Turner
dcbdcede5a
a/util: Fix edge cases in Moses's distortion method
...
Before this, we read out of bounds at the bottom of the display. Unsure why nothing but Valgrind caught it.
2023-01-21 03:50:20 +00:00
Christoph Haag
bb75281907
ext/tracy: Link dl
2023-01-19 20:00:30 +00:00
Jarvis Huang
503dae2883
ipc/android: Early reject if server failed to start
2023-01-19 19:50:28 +00:00
Moses Turner
8d8b0d03b0
a/util: Constify u_box_iou's Box constructor
2023-01-17 23:46:46 -06:00
Moses Turner
1ef49b92f2
d/dai: Control floodlight brightness with an env var
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-01-15 09:54:54 -05:00
Jakob Bornecrantz
4643d4f089
st/gui: Add small hand-tracking demo scene
2023-01-14 20:11:49 -05:00
Christoph Haag
01dd02dc83
d/hdk: initialized thread helper
...
Fixes assert in debug mode.
2023-01-08 23:42:31 +01:00
Mateo de Mayo
6bd921b390
d/wmr: Fix unused corrected IMU timestamp
2023-01-02 16:21:08 -03:00
Jarvis Huang
aa6b8cd88d
ipc: Change init order to avoid assertion
2023-01-01 17:00:43 +00:00
Moses Turner
cd163e366b
c/main: Add another string for Reverb G2 to the nvidia direct mode allowlist
2022-12-31 03:11:41 -06:00
Moses Turner
946141ce40
h/mercury: Remove kine_ccdik optimizer
...
Goodbye, sweet prince.
This was my first attempt at the "optimizer" piece of our optical hand tracking, and it *did work* dammit! It just wasn't anywhere near as flexible or efficient as Levenberg-Marquardt.
It's worse in every way to the `kine_lm` optimizer, and getting hard to maintain, so we're getting rid of it. Gone, but never forgotten.
2022-12-29 20:03:05 +00:00
Jakob Bornecrantz
7da72f4697
external/nanopb: Generate monado_metrics with same version as files
2022-12-22 22:06:39 +00:00
Ryan Pavlik
a7b9c7b69c
external/nanopb: Update nanopb from upstream nanopb-0.4.7
...
GitOrigin-RevId: b97aa657a706d3ba4a9a6ccca7043c9d6fe41cba
2022-12-21 21:24:14 +00:00
Jakob Bornecrantz
966878b1db
t/sdl_test: Make sure to include inttypes.h for PRIu64 define
2022-12-21 00:49:06 +00:00
Ryan Pavlik
9705b1e763
external/cjson: Update cJSON from upstream v1.7.15
...
GitOrigin-RevId: d348621ca93571343a56862df7de4ff3bc9b5667
2022-12-20 18:51:08 +00:00
Ryan Pavlik
00b1c9531d
external/stb: Update stb libraries from upstream
...
GitOrigin-RevId: 1ee679ca2ef753a528db5ba6801e1067b40481b8
2022-12-20 11:54:28 -06:00
Jakob Bornecrantz
814170469a
t/sdl_test: Include m_mathinclude to fix compile on Windows
2022-12-20 16:02:18 +00:00
Jakob Bornecrantz
1472bdf6b6
c/client: Create a share context instead of using context directly
2022-12-19 16:38:51 +00:00
Jakob Bornecrantz
0cf18ae044
c/client: Refactor context mutex locking to helper function
2022-12-19 16:38:51 +00:00
Jakob Bornecrantz
b87239e7d8
d/wmr: Increase display init sleep and also add debug variable to control it
2022-12-14 12:20:10 +00:00
Malek
5c013bcecd
a/math: Add stdbool include to m_lowpass_integer.h
2022-12-12 00:45:05 -08:00
Christoph Haag
2abcc17178
c/main: Add XRT_COMPOSITOR_DISABLE_DEFERRED env var
2022-12-09 16:38:06 +00:00
SeungHoon Han
a594d6d86e
a/android: fixed forced applied alpha=0.8 window after Android S
2022-12-08 21:41:16 +00:00
SeungHoon Han
a2f5e5f1b9
a/android: hide display cutout to use full screen
2022-12-08 20:24:53 +00:00
Jakob Bornecrantz
040764c4f1
ipc: Trace around ipc_dispatch
2022-12-08 00:24:42 +00:00
Jakob Bornecrantz
50783a4c35
u/trace_marker: Add U_TRACE_[BEGIN|END] for greater control of zones/tracks
2022-12-08 00:24:42 +00:00
Jakob Bornecrantz
f8d2c095ee
u/trace_marker: Ensure ENABLE_TRACE is set before including Tracy headers
2022-12-08 00:24:42 +00:00
Jakob Bornecrantz
b7748691b7
ext/tracy: Do not define ENABLE_TRACY globally
2022-12-08 00:24:42 +00:00
Jakob Bornecrantz
87f7b3426a
t/sdl_test: Fix build on Windows
2022-12-08 00:24:42 +00:00
Jakob Bornecrantz
a29a3c5ef3
c/mutli: Error log on failing semaphore wait
2022-12-06 15:26:40 +00:00
Jakob Bornecrantz
ebb7c3cac2
d/wmr: Tidy prober code
2022-12-05 15:21:20 +00:00
zhibin wang
828dacc10b
c/client: Fix eglDestroyImageKHR error and add AHB buffer release
2022-12-05 14:44:53 +00:00
Jakob Bornecrantz
9b3f9baff3
ipc: Properly cast assignment
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
6450cba854
ipc: Clarify code around xrt_comp_begin_session call
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
bc83130354
ipc: Use correct cast
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
2ffaf7fd46
ipc: Add C++ guards to generated headers
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
09975b0d24
ipc: Use XRT_STRUCT_INIT
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
4a8448fcc3
c/multi: Clarify code around xrt_comp_layer_begin call
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
840febfb57
c/multi: Do not declare variable in switch statement
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
f343bb709c
c/multi: Use XRT_STRUCT_INIT
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
f0021c359f
xrt: Add XRT_STRUCT_INIT define
...
This helps with code that needs to be compiled with both C and C++.
2022-12-04 18:07:53 +00:00
Moses Turner
8c0735feec
d/rift_s: Link to hand tracking driver if necessary
2022-12-04 18:05:02 +00:00
Mateo de Mayo
dad7957fb2
a/math: Add clock_offset.h
...
For now it only has our simple exponential smoothing clock offset estimator.
But more advanced ones can go here too.
2022-12-02 16:10:09 +00:00
Bailey Morgan
35061c1d80
a/vk: Select graphics device based on prefered device type
2022-12-02 14:05:34 +00:00
Maxim Kizub
e600cdaabf
c/main,ipc/android: Deferred render target initialization for Android.
2022-11-30 09:32:18 -06:00
Maxim Kizub
f6e1ea7aa9
t/oxr_android: fixed libmonado-service.so not found UnsatisfiedLinkError in inProcess build variant
...
Co-authored-by: SeungHoon Han <senicy.han@samsung.com>
2022-11-30 09:30:02 -06:00
Maxim Kizub
950f6cc506
a/android: Improve waiting for surface holder
2022-11-30 09:26:38 -06:00
Maxim Kizub
0ee891e7d6
c/main: Deferred render target initialization for windows
2022-11-30 09:25:43 -06:00
Jakob Bornecrantz
f28f3a27e6
c/main: Fix crash on debug print
2022-11-30 13:31:36 +00:00
Moses Turner
85c0c78ac6
a/math: Fix m_vec3_angle function
...
Dot product is equivalent to a.length*b.length*cos(theta), not a.length_squared*b.length_squared*cos(theta)
2022-11-29 03:11:53 -06:00
Jakob Bornecrantz
fec8e13f73
ext/openxr: Update headers to 1.0.26
2022-11-26 14:29:16 +00:00
Jakob Bornecrantz
69238be306
ext/openxr: Update XR_MNDX_force_feedback_curl
2022-11-26 14:26:58 +00:00
Jakob Bornecrantz
2a12f7d661
os/time: Use timePeriod[Begin|End] when sleeping in precise sleeper
...
One alternative to this is to use the CreateWaitableTimerExW function
with the CREATE_WAITABLE_TIMER_HIGH_RESOLUTION flag. On my systems the
function/flag was either as good or worse then timePeriod[Begin|End].
Setting the state globally or just just around the wait didn't seem to
have an impact on the precision.
2022-11-25 17:02:00 +00:00
Jakob Bornecrantz
96552a6caa
t/common: Fix leak of calibration data in RGB-Tracker builder
2022-11-25 16:44:24 +00:00
Jakob Bornecrantz
c195608602
a/tracing: Do more tracing in PSMV tracking code
2022-11-25 16:44:24 +00:00
Jakob Bornecrantz
f552aacb87
a/tracking: Fix data waiting logic in PSMV tracking
2022-11-25 16:44:24 +00:00
Jakob Bornecrantz
fb15e8aa50
ipc: Tidy Windows mainloop code
2022-11-25 16:04:20 +00:00
Jakob Bornecrantz
8271d213f5
ipc: Use u_winerror helper
2022-11-25 16:04:20 +00:00
Jakob Bornecrantz
6fc6968387
t/service: Try to raise priority and privilege on Windows
2022-11-25 16:04:20 +00:00
Jakob Bornecrantz
3b465b4241
u/windows: Add helper for trying priority or privilege from args
2022-11-25 16:04:20 +00:00
Jakob Bornecrantz
9e57a745b2
u/windows: Add function to raise CPU priority
2022-11-25 16:00:49 +00:00
Jakob Bornecrantz
ef77cb08d0
u/windows: Add function to enable privileges on processes
...
Also add a small helper to add the privilege
SeIncreaseBasePriorityPrivilege, which is needed on
NVIDIA for HIGH and REALTIME priority Vulkan queues.
2022-11-25 15:54:45 +00:00
Jakob Bornecrantz
57820394f4
u/windows: Add files and u_winerror string format helper
2022-11-24 16:17:26 +00:00
Jakob Bornecrantz
ad4c6a7215
u/pacing: More Tracy plots
2022-11-24 15:34:59 +00:00
Jakob Bornecrantz
8d817b773e
st/prober: Print the deviecs we got when looping throught the builders
2022-11-24 12:08:17 +00:00
Jakob Bornecrantz
d1db1dabfd
u/pacing: Work around asserts on slow compositors
...
This isn't the most ideal solution but a proper fix will take longer.
2022-11-24 12:03:53 +00:00
Jakob Bornecrantz
ad045fd271
t/sdl: Increase FPS
2022-11-24 12:03:53 +00:00
Jakob Bornecrantz
37da46b709
u/pacing: Add metrics output
2022-11-24 00:34:50 +00:00
Jakob Bornecrantz
87fdedeb68
u/pacing: Track more variables in app pacer
2022-11-24 00:34:50 +00:00
Jakob Bornecrantz
f0cbb8a7aa
t/service: Add metrics support
2022-11-24 00:34:50 +00:00
Jakob Bornecrantz
7fa20a8b46
u/metrics: Add functions to write a metrics file
2022-11-24 00:34:50 +00:00
Jakob Bornecrantz
57a31fde7c
external: Dealing with MSVC in NanoPD
2022-11-24 00:34:50 +00:00
Jakob Bornecrantz
2a7c411798
external: Add monado_metrics protocol
2022-11-24 00:34:50 +00:00
Jakob Bornecrantz
58186cc63a
external: Add NanoPB
2022-11-24 00:34:50 +00:00
Moses Turner
f580271291
d/wmr: Guess camera orientation for Reverb G2 based on HT0 twist value
2022-11-23 13:02:35 -06:00
Moses Turner
f5d4d49607
a/math: Add math_quat_to_swing_twist
2022-11-23 13:02:35 -06:00
Moses Turner
b3c277196e
a/math: Add faster (and correct!) math_quat_from_swing_twist
2022-11-23 13:02:35 -06:00
Moses Turner
9af195fea3
h/mercury: Add faster SwingTwistToQuaternion
2022-11-23 13:02:35 -06:00
Moses Turner
e06dc0dda1
a/math: Correct documentation for math_quat_ln and math_quat_exp
2022-11-23 13:02:35 -06:00
Jakob Bornecrantz
6fe06068e8
c/main: Make XCB window deferred
2022-11-23 16:03:15 +00:00
Jakob Bornecrantz
3e1760fd04
c/main: Introduce comp_target_factory
2022-11-23 16:03:15 +00:00
Jakob Bornecrantz
93fdf0bd74
a/vk: Expose vk_select_physical_device function
2022-11-23 14:53:26 +00:00
Jakob Bornecrantz
d8eb6865da
c/render: Don't include comp_compositor.h
2022-11-23 14:53:26 +00:00
Maxim Kizub
f5a06f9c46
c/main: Add code to defer render target initialization
2022-11-23 14:44:51 +00:00
Jakob Bornecrantz
8efb55403c
d/psvr: Switch to reading sensors from its own thread
...
Tested-by: number-g <g@imagination.eu.org>
2022-11-22 17:58:07 +00:00
Jakob Bornecrantz
58596a5830
u/pacing: Add Tracy plots
2022-11-21 16:46:12 +00:00
Jakob Bornecrantz
7bc145d184
cmake: Add XRT_HAVE_TRACY variable
2022-11-21 16:46:12 +00:00
Jakob Bornecrantz
65e76e1277
u/trace_marker: Tracy support
2022-11-21 16:46:12 +00:00
Jakob Bornecrantz
4cecb768b1
external: Add Tracy client code
2022-11-21 16:46:12 +00:00
Jakob Bornecrantz
b1b63a9397
d/vive: Do more tracing during packet handling
2022-11-21 13:47:58 +00:00
Jakob Bornecrantz
60099fdd71
t/common: Do more tracing during init and fini
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
8637617833
c/main: Do more tracing during init
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
44599a7de7
c/main: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
432bf03981
c/multi: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
3a2dfd850c
t/hand: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
c9bbeac70a
d/v4l2: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
36d1734377
d/vive: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
5142fa7e88
d/psmv: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
0691ed9b89
d/wmr: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
386aa510bd
ipc: Use U_TRACE_SET_THREAD_NAME
2022-11-20 13:52:38 +00:00
Jakob Bornecrantz
d48de0d832
u/worker: Use U_TRACE_SET_THREAD_NAME
2022-11-20 13:52:38 +00:00
Jakob Bornecrantz
8b0e7675e4
u/sink: Use U_TRACE_SET_THREAD_NAME
2022-11-20 13:52:38 +00:00
Jakob Bornecrantz
b49dc593b8
u/pacing: Use U_TRACE_PERFETTO define
2022-11-20 13:52:37 +00:00
Jakob Bornecrantz
469a79493c
u/trace_marker: Add U_TRACE_SET_THREAD_NAME
2022-11-20 11:24:27 +00:00
Jakob Bornecrantz
d1e116cb58
u/trace_marker: Check for both tracing and percetto
2022-11-20 00:31:24 +00:00
Jakob Bornecrantz
f4a5e599ef
u/trace_marker: Add convenience U_TRACE_PERCETTO define
2022-11-20 00:31:24 +00:00
Jakob Bornecrantz
648f91d35c
u/trace_marker: Refactor define names and split idents from func
2022-11-19 17:38:48 +00:00
Jakob Bornecrantz
4ee8aa4054
u/trace_marker: Reorg file (NFC)
2022-11-19 17:38:48 +00:00
Jakob Bornecrantz
7d2bd5b3e0
u/trace_marker: Fix copy paste error (NFC)
...
Define was unused till now.
2022-11-19 17:38:48 +00:00
Simon Zeni
9293c628d7
a/vk: add VK_FENCE_IMPORT_TEMPORARY_BIT to vk_create_fence_sync_from_native
2022-11-18 16:43:07 -05:00
Simon Zeni
278aa4cd41
c/main: use swapchain semaphores for peek window rendering
2022-11-18 11:14:41 -05:00
Jakob Bornecrantz
98b7f7d1c6
xrt: Remove xrt_gfx_native
2022-11-15 23:24:20 +00:00
Jakob Bornecrantz
8d6b794878
c/main: Add own interface for creating the main compositor
2022-11-15 23:24:20 +00:00
Moses Turner
cb2c355ba6
t/hand: fix 90 degree rotation for hand detection
2022-11-15 01:58:41 +00:00
Moses Turner
a9d04045e6
c/main: Add Reverb G2's display to nvidia direct allowlist
2022-11-14 19:50:03 -06:00
Jakob Bornecrantz
89aee1892b
d/remote: Update protocol to allow per view data
2022-11-14 16:07:15 +00:00
Patrick Nicolas
a8dc902468
a/vk Add extentions for DMA-buf
2022-11-13 22:56:06 +00:00
Ryan Pavlik
58e4cb6e15
st/steamvr: can not -> cannot
2022-11-09 14:52:03 -06:00
Ryan Pavlik
eac703a106
st/prober: can not -> cannot
2022-11-09 14:52:03 -06:00
Ryan Pavlik
aa01868d0f
xrt: can not -> cannot (comments)
2022-11-09 14:52:03 -06:00
Ryan Pavlik
678b27145a
ipc/client: can not -> cannot
2022-11-09 14:52:03 -06:00
Ryan Pavlik
11bdba7e64
drivers: can not -> cannot
2022-11-09 14:52:03 -06:00
Ryan Pavlik
73f48d12ec
comp/util: can not -> cannot
2022-11-09 14:51:58 -06:00
Ryan Pavlik
2eb259f26a
aux: can not -> cannot
2022-11-09 14:48:38 -06:00
Ryan Pavlik
724b2288f9
st/oxr: can not -> cannot
2022-11-09 14:48:17 -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
Ryan Pavlik
a072af398c
t/hand: Fix doxygen warnings
2022-11-09 03:47:44 +00:00
LeGrandToto
987d4ebecb
ext: Updated Catch to v2.13.10
2022-11-08 23:54:05 +00:00
Moses Turner
00bf669e61
t/common: Disable SLAM by default for Valve Index
2022-11-08 12:32:23 -06: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
Mateo de Mayo
0ebc7e042f
d/vive: Improve readability of precompute_sensor_transforms (NFC)
2022-11-08 17:41:43 +00:00
Jakob Bornecrantz
ca83275671
ipc: Move struct declaration into same place
2022-11-07 23:48:59 +00:00
Jakob Bornecrantz
f9cd474156
ipc: Use XRT_MAX_IPC_HANDLES and also validate input from client
2022-11-07 23:48:59 +00:00
Jakob Bornecrantz
26c4771bfb
ipc: Make _sync struct have the right indentation
2022-11-07 23:48:59 +00:00
Jakob Bornecrantz
86a6b4b3e3
ipc: Generated code doesn't need to care about line length
2022-11-07 23:48:59 +00:00
Jakob Bornecrantz
8601499a5a
xrt: Add XRT_MAX_IPC_HANDLES
2022-11-07 23:48:59 +00:00
Jakob Bornecrantz
736f1fd671
c/util: Slightly improve device and queue creation
2022-11-04 10:46:42 +00:00
Jakob Bornecrantz
3f3e19299f
c/null: Use VK_KHR_global_priority if available
2022-11-04 10:46:42 +00:00
Jakob Bornecrantz
04f930d99a
c/main: Use VK_KHR_global_priority if available
2022-11-04 10:46:42 +00:00
Jakob Bornecrantz
1253d58717
t/sdl: Use VK_KHR_global_priority if available
2022-11-04 10:46:42 +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
Jakob Bornecrantz
04ab47ef3b
st/oxr: Use xrt limits for number of swapchain images max
2022-11-03 17:43:06 +00:00
Jakob Bornecrantz
cf2dbb9334
ipc: Use xrt limits for number of swapchain handles max
2022-11-03 17:43:06 +00:00
Jakob Bornecrantz
589a898c74
xrt: Start collection of limits in one place
2022-11-03 17:43:06 +00:00
Moses Turner
f41596f176
h/mercury: Replace old detection model, and discard overlapping hands
2022-11-03 16:46:33 +00:00
Moses Turner
b8a586175d
a/util: Add header for box intersection over union
2022-11-03 16:46:33 +00:00
Mateo de Mayo
8f14c572ee
d/vive: Apply IMU pose correction for SLAM tracking
...
The offset between IMU and middle-of-eyes for the Index is quite noticeable and
tracking felt very off before this.
2022-11-03 13:08:02 +00:00
Gustavo Alvarez
21788f8650
t/cli: Link with aux_os_ble
...
Fixes build on certain configurations.
2022-11-03 10:03:25 +00:00
Moses Turner
0cd2f4f081
h/mercury: Fix data home
2022-11-02 22:35:27 +00:00
Moses Turner
32da562bc5
h/mercury: Remove really old keypoint estimator and NCNN stuff
2022-11-02 22:35:27 +00:00
Jakob Bornecrantz
ede2292690
d/psvr: Paranoia
2022-11-02 17:55:58 +00:00
Jakob Bornecrantz
200bbc9da0
d/psvr: Protect sensore reads with device_mutex
...
Fixes asserts by the fusion code where samples where pushed in the wrong
order to the fusion code.
2022-11-02 17:55:58 +00:00
Jakob Bornecrantz
fdac0b5137
d/psvr: Make sure to init the device_mutex before teardown can be called
2022-11-02 17:55:58 +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
f32eb0d662
c/main: Refactor comp_renderer init/fini slightly
2022-11-02 15:24:26 +00:00
Jakob Bornecrantz
f6d7bfbe0a
c/main: Init render shaders and resources earlier
2022-11-02 15:24:26 +00:00
Jakob Bornecrantz
e76b382bc9
c/main: Destroy target before render resources
2022-11-02 15:24:26 +00:00
Jakob Bornecrantz
f6fb9f715e
c/main: Reorder fields to make dependency slightly clearer (NFC)
2022-11-02 15:24:26 +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
a5f10e7aa2
c/multi: Rework logging with session transition a bit
2022-11-02 00:21:31 +00:00
Jakob Bornecrantz
01d195808d
st/oxr: Use snprintf to safely write strings to app
2022-10-31 12:12:35 +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
Boris-Chengbiao Zhou
cd2f204414
st/oxr: Check if user has already enabled timeline semaphores
...
We aren't allowed to add a second struct of the same type to the pNext
chain during Vulkan device creation.
2022-10-28 23:19:50 +02:00
Jakob Bornecrantz
35b941812a
c/client: Merge have EGL conditional file adding
2022-10-27 17:19:57 +00: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
Jakob Bornecrantz
c9ef44dd28
t/common: Remove stale comment
2022-10-27 17:19:57 +00:00
Bailey Morgan
67c47fbcb3
st/oxr: Change result code for invalid OpenGL context to match spec
2022-10-25 18:18:15 +00:00
Christoph Haag
9054dc01ca
d/ht_ctrl_emu: Stub set_output
2022-10-24 17:20:59 +00:00
Christoph Haag
7dd0a6e473
st/oxr: Disable XR_KHR_convert_timespec_time on windows
...
This avoids a current CTS issue.
2022-10-20 12:33:02 +02: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
Julian Petrov
fb28f940b5
Fix an IPC protocol issue on windows when receiving zero HANDLEs
2022-10-14 10:49:50 -04:00
Julian Petrov
d0f713c4c4
ipc: Add Windows support
2022-10-13 17:07:27 +00:00
Julian Petrov
7669d2c545
t/ctl: Don't build on Windows
2022-10-13 17:07:27 +00:00
Julian Petrov
5f4f7530d4
xrt: Introduce a new xrt_ipc_handle_t for IPC connections
2022-10-13 17:07:27 +00:00
Ryan Pavlik
6bb976e47f
external: Add some headers from my util-headers project.
2022-10-13 11:43:31 +01: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
Jan Schmidt
fc3fbd6093
d/ht: Fix rotation/flipping of right hands
...
When dealing with rotated cameras, rotate them backward
to vertical, and then flip the right hand image in
the affine transform to get correct orientation of hands
for the keypoint estimator. Before, the left hand images
were being fed in upside down.
2022-10-10 23:50:58 +00:00
Jakob Bornecrantz
9077261ada
d/dai: Set fields after nullptr check
2022-10-10 22:39:38 +00:00
Jakob Bornecrantz
00c3cc4c2f
d/dai: With the latest depthai-core we can support color OV9782 sensors
2022-10-10 22:39:38 +00:00
Jakob Bornecrantz
4814f627c6
d/dai: Fix conversion warnings
2022-10-10 22:39:38 +00:00
Jakob Bornecrantz
504a2a288e
d/dai: Fix typo
2022-10-10 22:39:38 +00:00
Jakob Bornecrantz
52d225ae3b
t/north_star: Fix build when we have depthai but no hand-tracking
2022-10-10 22:39:38 +00:00
Christoph Haag
751c8034bc
c/main: Remove useless base_space from get_view_poses
...
The compositor doesn't know the concept of requesting view poses in
respect to a "space", so remove this vestigial code.
2022-10-10 15:47:19 +02: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
Robbie Bridgewater
cc2e7b6da3
ipc: Allow IPC path to be set dynamically
...
Uses cache for XRT_IPC_MSG_SOCK_FILE
2022-10-09 15:21:11 +01:00
Christoph Haag
74d82ff37f
d/ht_ctrl_emu: Set xdev serial
2022-10-03 19:23:24 +02:00
Jan Schmidt
e409264ba7
d/wmr: Fix Reverb G2 detection
...
196bf24276
broke Reverb G2
detection. Use the right PID to match the Reverb G2 headset
again.
2022-10-02 03:57:19 +11:00
Jakob Bornecrantz
5fc30a4e22
c/multi: Make sure to retire delivered frames once the session goes invisible or non-active
...
Launching two instances of hello_xr will cause an assert in the app pacer.
2022-10-01 13:10:42 +01:00
Jakob Bornecrantz
88ce42dbf9
c/multi: Paranioa
2022-10-01 13:10:42 +01:00
Christoph Haag
f6821402fd
c/main: Hook up layer squasher in main compositor
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Fernando Velazquez Innella <finnella@magicleap.com>
2022-10-01 13:10:42 +01:00
Christoph Haag
95fb034b92
c/render: Implement layer squashing for compute shader
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Fernando Velazquez Innella <finnella@magicleap.com>
2022-09-30 22:43:58 +01:00
Christoph Haag
fa71462d86
c/render: Move COMP_MAX_LAYERS to render_interfaces.h
2022-09-30 22:38:54 +01:00
Jakob Bornecrantz
13124f019e
d/opengloves: Fix left/right typos
2022-09-29 21:12:44 +00:00
Jakob Bornecrantz
2673787429
d/opengloves: Fix leak of config JSON
2022-09-29 21:12:44 +00:00
Jakob Bornecrantz
1e639fc2f3
d/opengloves: Fix leaks of udev objects
2022-09-29 21:12:44 +00:00
Moses Turner
034099211f
d/dai: Initialize mutex and thread helper
2022-09-28 18:37:49 -05:00
Jakob Bornecrantz
127a467efc
h/mercury: Add missing break statement
2022-09-28 22:56:01 +00:00
Jakob Bornecrantz
da571275c2
st/oxr: Fix enum comparison warning
2022-09-28 22:56:01 +00:00
Jakob Bornecrantz
676e071aca
c/main: Pass GPU info to pacer
2022-09-28 21:46:56 +00: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
Ryan Pavlik
109e373e0c
c/main: Move ownership of present/render semaphores to comp_target
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-09-28 21:34:06 +00:00
Jan Schmidt
3b7f95b39e
d/rift_s: Rework hw2mono clock tracking
...
Use the common hw2mono/a2b clock code from vive_source
2022-09-26 00:32:28 +10:00
Jan Schmidt
942df72c26
d/rift_s: Reduce camera frame delay to 2
2022-09-26 00:32:28 +10:00
Jan Schmidt
32cc6e05da
d/rift_s: Move builder to targets/common
...
Move the builder into the common area.
2022-09-26 00:32:28 +10:00
Jan Schmidt
5c573152a8
d/rift_s: Set camera orientation in calibration
...
Put the right rotation of the front cameras
into the camera calibration struct
2022-09-26 00:32:28 +10:00
Jan Schmidt
495eecb65f
d/rift_s: Add 6DOF SLAM tracking and hand tracking
...
Find and capture input from cameras, and split according to
frame type. Send long exposure tracking frames through
the AEG module, and SLAM and hand tracking trackers.
Add controller emulated hand devices.
The native "fisheye62" camera distortion model is
dynamically converted to OpenCV Kannala-Brandt
parameters using a TinyCeres solver.
2022-09-26 00:32:28 +10:00
Jan Schmidt
9fbe81e494
d/rift_s: Port OpenHMD Oculus Rift S driver
...
Port across the Oculus Rift S driver from OpenHMD as a native
Monado driver.
This is mostly the same as the OpenHMD 3DOF driver, with
slightly better HMD distortion correction, various small
fixes, some capsense touch detection support.
Controller poses are rotated 40° to match grip pose.
2022-09-25 02:17:44 +10:00