Commit graph

4987 commits

Author SHA1 Message Date
Jakob Bornecrantz 200f1b11ca u/truncate_printf: Add truncating helpers 2023-06-21 22:05:14 +00:00
Linus Lüssing 5340e1fa6b d/wmr: reduce Original/Odyssey controller drift by applying biases
Similar to the HP Reverb G2 controllers apply the biases
provided by their calibration data.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2023-06-18 12:42:14 +02:00
Linus Lüssing 8a239623d7 d/wmr: reduce drifting by applying calibration biases to G2 controllers
For one thing this applies the calibrated gyro and acceleromater bias
provided by the Reverb G2 controllers via the WMR protocol to
to the according sensor values of the controller. For another,
this applies the temperature mixing matrix in the same, partial way as
it is applied to the HMD. That is it currently disregards the polynomial
coefficiency nature - which is okay for the Reverb G2 as any temperature
dependant, non-constant coefficients in the mixing matrix seem to always
be 0 in the calibration data for it.

All this is, in theory, to reduce drifting. However for the Reverb G2 it
did not eliminate it completly, seemingly like for the HMD the
controllers were never temperature calibrated (controllers and HMD use
the same TDK/InvenSense ICM-20602 chip).

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2023-06-18 12:42:14 +02:00
Jakob Bornecrantz f5eaecc690 t/ctl: Use common IPC connection code 2023-06-17 22:25:16 +01:00
Ryan Pavlik 2c2aa92889 ipc: Factor out client connection setup and teardown for reuse. 2023-06-17 22:23:33 +01:00
Linus Lüssing c5fa0e02e8 d/wmr: fix Original/Odyssey controller orientation
Similar to the HP Reverb G2 controllers apply the rotations
provided by their calibration data.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2023-06-17 18:08:46 +01:00
Linus Lüssing 57fb867514 d/wmr: fix Reverb G2 controller orientation
We can't take the IMU values of the Reverb G2 controller as is.
We need to compensate for how the IMU chip is oriented on the
hardware.

Similar to the WMR HMD the WMR controllers' firmware configuration
provides us with the transformations necessary to adjust the
controller orientations. So apply them to fix the orientation
issues.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2023-06-17 18:08:46 +01:00
Linus Lüssing c95be33072 d/wmr: make sensor transform precomputations reuseable
Not only the sensor values from the HMD need to be transformed from WMR
to OpenXR but also the sensor values from the controllers. Therefore
restructuring the according code to be useable by both the WMR HMD and
WMR controller code.

No functional changes.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2023-06-17 18:08:46 +01:00
Fernando Velazquez Innella 62dff3401c c/client: Wait till D3D12 images aren't in use before releasing the swapchain
This adds a fence signal + CPU wait on the compositor queue before destroying
the swapchain. It fixes a crash in the OpenXR CTS automated tests for D3D12.
2023-06-17 14:15:00 +01:00
utzcoz 0224e97532 st/oxr: Fix simple typo for comments [NFC]
grahpics->graphics

Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-06-17 12:51:33 +01:00
Ryan Pavlik 3f644f9f88 st/oxr: clang-tidy fixes 2023-06-17 11:46:14 +01:00
Ryan Pavlik fe6e87b4a7 c/util: Clang tidy fixes 2023-06-17 11:46:14 +01:00
Ryan Pavlik b88aa34017 a/util: Fix doxygen warning 2023-06-17 11:46:14 +01:00
Ryan Pavlik 684a3f22e4 ipc/client: Warning fix 2023-06-17 11:46:14 +01:00
Ryan Pavlik 12eaebfa6a t/common: Warning fix 2023-06-17 11:46:14 +01:00
Ryan Pavlik a97b9a5990 st/oxr: Less obvious warning fixes
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-06-17 11:46:01 +01:00
Ryan Pavlik ae16cb4f13 st/oxr: Obvious warning fixes 2023-06-17 11:46:01 +01:00
Ryan Pavlik c7fcf59866 d/steamvr_lh: Fix warnings 2023-06-17 11:46:01 +01:00
Ryan Pavlik bc9624617a d/opengloves: Fix warnings 2023-06-17 11:46:01 +01:00
Ryan Pavlik 3609f9149e comp/{main,util}: Fix warnings 2023-06-17 11:46:01 +01:00
Ryan Pavlik 1f3eba0428 a/util: Add missing includes
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-06-17 11:46:01 +01:00
Jakob Bornecrantz 6176db87e1 st/oxr: Add EXT_eye_gaze_interaction to generation script [NFC]
Missed this in 9f1cf952c6 / !1836, closes #269.
2023-06-15 17:32:52 +01:00
Jakob Bornecrantz 2c080454e2 d/vive: Use correct enum for Tundra tracker 2023-06-14 21:34:20 +01:00
Shawn Wallace a3c2b89067 t/common: Integrate SteamVR Lighthouse driver into builder
Replaced VIVE_OVER_SURVIVE env var with LH_DRIVER, which takes a string and
allows choosing one of the three lighthouse tracking implementations.
2023-06-14 15:43:00 +01:00
Shawn Wallace 4a9f92e151 d/steamvr_lh: Add SteamVR Lighthouse driver wrapper
Implement support for SteamVR's Lighthouse driver (on Linux).
Only tested/works with the OG Vive and Vive wands, but adding new
device support should be simple.
2023-06-14 15:43:00 +01:00
Sarah dc5b398405 [a|d]/[sur]vive: Implement 3.0/Tundra tracker support
Co-authored-by: BabbleBones <BabbleBones@protonmail.com>
2023-06-14 01:02:07 +00:00
Christoph Haag 2b2a944507 a/bindings: Generate bindings for vive tracker interaction profile 2023-06-14 01:02:07 +00:00
Christoph Haag d89deb2d95 xrt: Add vive tracker interaction profile enum values
Introduces a generic device name only used for bindings.
2023-06-14 01:02:07 +00:00
BabbleBones 5787fd260f xrt: Add XRT_DEVICE_VIVE_TRACKER_{GEN3,TUNDRA} defines
Tundra enumeration changes
2023-06-14 01:02:07 +00:00
Christoph Haag 6a01170b23 ipc: Transfer xdev serial over ipc 2023-06-14 01:02:07 +00:00
Robbie Bridgewater 28dc5747e2 ipc: Add more diagnostic info for first instance service failure 2023-06-14 01:01:49 +00:00
Jakob Bornecrantz 315861501c a/vive: Move VIDs and PIDs to helper library [NFC] 2023-06-14 00:23:26 +01:00
Jakob Bornecrantz 205d82ce9c a/vive: Add common header with documentation [NFC] 2023-06-14 00:23:26 +01:00
utzcoz 287102d256 t/android: Declare INTERNET permission for remote driver
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-06-13 21:08:01 +00:00
utzcoz 58193ad1c4 d/remote: Support r_hub for Windows
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-06-13 21:08:01 +00:00
Linus Lüssing d7468d22da d/wmr: fix squeeze trigger in SteamVR
While in the Monado debug GUI the squeeze trigger is detected fine and
it is also listed in the SteamVR "Test Controller" page, pushing the
squeeze trigger would not be detected in SteamVR.

Fixing this by not just populating the xrt_inputs squeeze click but also
the squeeze value.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2023-06-13 20:28:05 +00:00
Linus Lüssing fca4ac41e5 d/wmr: avoid using non-self-explanatory numbers for input allocations
By using an extra, final entry in the according inputs enum instead
of using a hard coded number it should be slightly safer and easier
to verify that the to be allocated inputs array is of correct size.

No functional change.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2023-06-13 20:28:05 +00:00
Drew Chien (Te-Ju) 9f1cf952c6 st/oxr: Add eye gaze support 2023-06-13 01:37:50 +01:00
Drew Chien (Te-Ju) aefeeb1403 a/bindings: Add eye gaze support 2023-06-13 01:37:45 +01:00
Drew Chien (Te-Ju) 96c88f488e xrt: Add eye gaze defines and role 2023-06-13 01:31:11 +01:00
Jan Schmidt 9966c16cdd d/wmr: Publish Reverb G2 tunnelled controllers
If there are HMD-tunnelled controllers present,
publish them in the prober and builder so they
can be used.
2023-06-08 16:12:18 +00:00
Jan Schmidt e356d57a6a d/wmr: Initial tunnelled controller handling.
Create controller devices when a presence
message indicates one is paired and online.

Pass controller IMU/button reports to the
controller device.
2023-06-08 16:12:18 +00:00
Jan Schmidt 89407f8de8 d/wmr: Infrastructure for tunnelled controller connections
Add a connection object for controllers that are tunnnelled
through the HMD, and calls to allow send/receive of packets
as needed.
2023-06-08 16:12:18 +00:00
Christoph Haag 351dd9b9de c/util: Implement wait_image in comp_swapchain 2023-06-08 17:01:12 +01:00
Christoph Haag cd37974c04 xrt: Add swapchain_[dec|inc]_image_count functions 2023-06-08 17:01:12 +01:00
Andrei Aristarkhov eace6e310d c/util: prevent sporadic xrAcquireSwapchainImage failure under high GPU load 2023-06-08 17:01:12 +01:00
Christoph Haag 1451bd9993 os/time: Add windows impl of os_realtime_get_ns 2023-06-08 17:01:12 +01:00
Robbie Bridgewater c91928f39e st/oxr: Use CMake-derived version constants for OpenXR runtime version 2023-06-07 15:22:32 -05:00
Robbie Bridgewater 44d7b8489c a/util: Set version constants from CMake 2023-06-07 15:22:22 -05:00
Robbie Bridgewater 03780e9ced a/util: Set colors for various zones when supported by TRACY 2023-06-07 15:20:52 -05:00