Mateo de Mayo
36ca9260cf
d/vive: Update tracking status to fix segfault
...
Co-authored-by: Moses Turner <moses@collabora.com>
2022-07-25 19:08:46 +00:00
Mateo de Mayo
6e16959098
d/vive: Add vive_source to convert v4l2 timestamps into monotonic clock
...
Use a sink in the middle of the stream to correct for v4l2 timestamps with
hardware timestamps to monotonic clock.
This sink, together with other utilities related to data streaming, lives in a
new vive_source entity, with similar functionality to wmr_source or rs_source.
The vive_source lifetime is managed by the builder xfctx, which prevents
deallocation dependencies between vive_device and the v4l2_fs to cause segfaults.
2022-07-25 19:08:46 +00:00
Mateo de Mayo
13d90bff77
d/vive: Implement 3DoF/SLAM switching button and pose offset
2022-07-25 19:08:46 +00:00
Mateo de Mayo
f0ceb40f6a
d/vive: Prepare data streaming and SLAM tracker
2022-07-25 19:08:46 +00:00
Mateo de Mayo
3cbb7f6b9f
d/vive: Pass status of visual tracking into the driver
2022-07-25 19:08:46 +00:00
Mateo de Mayo
aaf5fe1b7b
d/vive: Improve ticks-to-nanoseconds conversion
2022-07-22 16:19:49 +00:00
Mateo de Mayo
aa617a9d8b
d/vive: Group 3dof IMU fusion fields and add a mutex
2022-07-22 16:19:49 +00:00
Jakob Bornecrantz
0d055bb740
d/vive: Fix threading primitive initialization
2022-05-23 13:54:42 +00: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
Christoph Haag
996a5d3e9a
xrt: Move fov from xrt_view to xrt_hmd_parts::distortion
2022-02-19 13:04:32 +00:00
Jakob Bornecrantz
9b656cde77
xrt: Remove xrt_device::get_view_pose
...
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2022-02-16 23:15:24 +00:00
Jakob Bornecrantz
0511b319ba
drivers: Implement xrt_device::get_view_poses
...
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2022-02-16 23:15:08 +00:00
Moses Turner
749723f0ba
xrt: Remove xrt_view::display::{w|h}_meters
...
It is not used anywhere.
2021-12-10 21:27:15 -06:00
Jakob Bornecrantz
efde7f185c
a/math: Put m_relation_history_get out argument last
2021-12-03 14:00:32 +00:00
Moses Turner
0214937aa0
d/vive: use controller emulation for hand-tracking
2021-11-30 05:56:57 -06:00
Jakob Bornecrantz
3f98ea5595
xrt: Tidy s/ll/log_level/g
...
Also make sure all variable logging uses the right type for logging variables.
2021-11-22 14:29:10 -06:00
Ryan Pavlik
33c0287f8b
xrt: Rename all "num" parameters and fields to "count" (or "capacity" as appropriate)
...
This matches the OpenXR usage: the array is the plural of the element type,
and the count is the singular element type plus "count" (usually CountOutput
because of the two-call idiom)
Includes fixes to other code to match API changes.
2021-11-13 12:04:38 +00:00
Jakob Bornecrantz
c8d57a4ff3
d/vive: Add some more tracing
2021-09-29 21:38:33 +00:00
Jakob Bornecrantz
98c1cb5358
d/vive: Add tracing support focusing on device message processing
2021-09-29 21:38:33 +00:00
Moses Turner
56f34d23b9
d/vive: Use m_relation history for HMD
2021-09-15 12:13:14 -05:00
Jakob Bornecrantz
992642bdf8
d/vive: Tidy warning
2021-09-01 22:00:46 +01:00
Jakob Bornecrantz
407461fd4f
d/vive: Silence warnings from when the camera is running
2021-09-01 22:00:46 +01:00
Jakob Bornecrantz
601a6832b8
d/vive: Use u_device_free to free distortion mesh data
2021-08-20 17:09:05 +01:00
Jakob Bornecrantz
a89c8309c7
u/vive: Pass in logging level to parse function
2021-08-20 13:42:11 +01:00
Jakob Bornecrantz
00aca14832
u/vive: Add vive_config_teardown function to free any pointers that needs freeing.
2021-08-20 13:42:11 +01:00
Jakob Bornecrantz
a6b908f3ce
d/vive: Add comment and assert to get_view_pose (NFC)
2021-04-27 16:51:56 +01:00
Jakob Bornecrantz
8277df418d
xrt: Make eye_relation argument to xrt_device_get_view_pose const (NFC)
2021-04-27 01:44:13 +01:00
Ryan Pavlik
48d043796c
d/vive: Port to using new zero/identity defines
2021-04-26 22:38:42 +00:00
Ryan Pavlik
3b0a6a558c
d/vive: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Moses Turner
7cd2a33737
drivers: switch blend mode to array
2021-04-11 04:08:49 -05:00
Jakob Bornecrantz
9695e90d95
d/vive: Setup the variable tracking for imu fusion
2021-04-02 16:00:42 +01:00
Christoph Haag
aa65480607
d/vive: Use a mutex for get_tracked_pose
2021-03-09 12:39:12 +00:00
Christoph Haag
9ea02ac032
d/vive: Give consistent name to HMD
2021-03-02 17:50:19 +00:00
Christoph Haag
ab70115a89
d/vive: Add HMD rotation pose prediction
2021-02-17 19:59:52 +01:00
Christoph Haag
c67a6ccd34
xrt: Add xrt_device::serial for uniquely identifying devices if possible
...
d: Make controller serials unique by appending number
For drivers that do not (yet) know a persistent unique id per device.
2021-02-12 00:38:51 +01:00
Christoph Haag
f93209a1ed
d/vive: Remove vive_device::variant and use variant from config
2021-02-11 20:54:31 +01:00
Christoph Haag
b87c7d5e61
d/survive: Port to vive_config parsing
2021-02-01 15:23:19 +00:00
Christoph Haag
e4b0e6282d
d/vive: Factor out config into separate struct
2021-02-01 15:23:19 +00:00
Jakob Bornecrantz
2b996f30c4
xrt: Reflow after column change
2021-01-15 13:50:32 +00:00
Christoph Haag
9e788df463
xrt: Remove lens center from xrt_view
...
It's only used internally in drivers now.
2020-11-12 16:04:00 +01:00
Jakob Bornecrantz
9a675cc7f3
xrt: Rename xrt_uv_triplet
2020-09-30 15:35:57 +01:00
Christoph Haag
f6c3998d29
xrt: Use struct vive_values for u_compute_distortion_vive
2020-09-30 02:05:05 +02:00
Christoph Haag
29188d681c
xrt: Remove all but mesh distortion values from xrt_hmd_parts::distortion
...
Move vive values to struct u_vive_values in u_distortion_mesh.
Move openhmd values to private struct inside ohmd driver.
2020-09-30 02:05:05 +02:00
Christoph Haag
2e7451ca5e
comp: Support only mesh and no istortion, remove pano and vive shaders
...
Also changes hardcoded binding indices into variables to make following the code easier
e.g. when adding new UBOs.
2020-09-30 02:05:04 +02:00
Christoph Haag
fb71c71a8c
xrt: Replace mesh generator with xdev->compute_distortion()
...
Each HMD driver now has to implement compute_distortion() which will be called
by the compositor implementation to generate a mesh (usually).
u_distortion_mesh contains implementations for the defaults (panotools, OpenHMD, vive).
Also adds compute_distortion function for Vive distortion
There are differences between OpenHMD and Panotools values, main differences for now:
* psvr has 5 pano coefficients, ohmd has 3
* psvr uses viewport size and lens center in pixels for distortion calculation, ohmd in meter
* psvr uses different distortion scaling than ohmd
2020-09-28 17:04:15 +01:00
Jakob Bornecrantz
8e24dda794
xrt: Remove out_timestamp argument to xrt_device::get_tracked_pose
2020-09-07 23:37:09 +01:00
Christoph Haag
08ed44b22c
d/vive,survive: Manually improve values for Valve Index display
...
These values are hand picked to provide a less stretchy image.
2020-08-17 22:07:22 +02:00
Christoph Haag
ae07036324
d/vive: Demote watchman timeout error message to trace
...
It's desirable to support running without basestations without spamming messages.
2020-08-05 21:11:24 +00:00
Christoph Haag
3a68f60d47
d/vive: Run watchman poll in separate thread
...
Watchman polling times out after 1 second when basestations are not present/off.
This should not block reading the IMU.
2020-08-05 21:11:24 +00:00
Christoph Haag
12c0f5d75a
d/vive: Destroy watchman hid device on shutdown
2020-08-05 20:32:51 +00:00