Commit graph

5926 commits

Author SHA1 Message Date
Jakob Bornecrantz 5f6714172b ext/vfd: Rename childs to children 2023-06-14 15:43:00 +01:00
Shawn Wallace 065a6d6863 ext/vfd: Add valve file VFD library
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-06-14 15:43:00 +01:00
Jakob Bornecrantz c3ae06163d doc: Document !1860 2023-06-14 01:02:07 +00: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 92ab8fc7a3 doc: Document !1862 2023-06-14 00:23:26 +01: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 5fc900ac75 d/remote: Enable remote driver building on Windows
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
Jakob Bornecrantz 785e99f115 doc: Document !1836 2023-06-13 19:23:56 +01: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
Linus Lüssing 7e14d7eb76 d/wmr: fix controller activation in SteamVR
SteamVR requires the serial number to be set. Otherwise after creating
the controller it will fail to activate it.

Before:

  ...
  monado: Creating Controller WMR Left Controller
  monado: Using Monado Controller profile
  monado: Render model based on Monado: locator_one_sided
  monado: get controller serial number:
  Driver 'monado' attempted to add tracked device with no serial number
  monado: Added left Controller: WMR Left Controller
  monado: Creating Controller WMR Right Controller
  monado: Using Monado Controller profile
  monado: Render model based on Monado: locator_one_sided
  monado: get controller serial number:
  Driver 'monado' attempted to add tracked device with no serial number
  monado: Added right Controller: WMR Right Controller
  ...

After:

  monado: Creating Controller WMR Left Controller
  monado: Using Monado Controller profile
  monado: Render model based on Monado: locator_one_sided
  monado: get controller serial number: Left Controller
  Driver 'monado' started activation of tracked device with serial number 'Left Controller'
  monado: Added left Controller: WMR Left Controller
  monado: Creating Controller WMR Right Controller
  monado: Using Monado Controller profile
  monado: Render model based on Monado: locator_one_sided
  monado: get controller serial number: Right Controller
  Driver 'monado' started activation of tracked device with serial number 'Right Controller'
  monado: Added right Controller: WMR Right Controller

With this change the HP Reverb G2 controller is recognized and activated
fine in SteamVR for me. "Active Controller" nows says:
"monado_hp_mixed_reality_controller". The SteamVR controller test page
now works and recognizes button presses. The controllers can also
(kind of) be used in the home environment.

Several issues still exist to be fully useable:

* middle finger button not recognized in the SteamVR test page
  (all other buttons seem to work)
* high gyro drift
* no positional tracking

The serial is set to "Left Controller" and "Right Controller" for now,
just like for the Rift S controller. This should probably be updated to
a proper serial number once read_controller_config() can parse it from
the firmware.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2023-06-07 20:20:12 +00:00
Jan Schmidt 948d78fb61 d/wmr: Change public name for G2 controllers
Change the published device name for G2 controllers from the
generic 'WMR Controller'
2023-06-07 02:10:49 +00:00
Jan Schmidt 4b4fc2b73d d/wmr: Update comments in controller_base
Expand some comments about what different packets do and fix
the description of controller connection lifetimes
2023-06-07 02:10:49 +00:00
Jan Schmidt 7009c64326 d/wmr: Cache controller configs
Store controller calibration block into a cache file and
use that if available, to save time on subsequent startups

Re-disable reading of extra firmware blocks, accidentally
left enabled during recent controller/connection splitup
2023-06-07 02:10:49 +00:00
Jan Schmidt ac84cd4d52 util/u_file: Add u_file_open_file_in_config_dir_subpath()
Add a utility function for accessing files in subdirectories
of the main config dir, creating the subpath as needed.
2023-06-07 02:10:49 +00:00
sdegrande 2f3f9e0cb9 build,a/{os,util},xrt,ipc: Fix compilation with Mingw64 on MSYS2
Main changes:
- use the pthread lib provided by Mingw64
- include windows.h where needed
- define XRT_ENV_MINGW
2023-06-05 12:03:47 -05:00
Jakob Bornecrantz eab742ad9e doc: Document !1823 2023-06-02 16:41:37 +00:00
Jakob Bornecrantz ebc044f141 doc: Document !1447 and other Rift-S MRs 2023-06-02 16:41:37 +00:00
Jakob Bornecrantz 8a002db4f4 d/rift_s: Make sure to depend on sinks 2023-06-02 16:41:37 +00:00
utzcoz d0df0408ac cmake: Add name for OpenXR manifest file
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-06-02 15:53:44 +00:00
Robbie Bridgewater 111f269040 xrt: Add XRT_INPUT_GENERIC_[STAGE|LOCAL]_SPACE_POSE
Add XRT_INPUT_GENERIC_STAGE_SPACE_POSE and XRT_INPUT_GENERIC_LOCAL_SPACE_POSE to allow dynamically adjusting these poses.
2023-06-02 15:23:04 +00:00
Linus Lüssing b49ff83a3e Fix segfault with WMR controllers and SteamVR-Monado plugin
With the Reverb G2 controllers connected to the Linux host system via
Bluetooth the following segmentation fault occurs for me when starting
SteamVR with the SteamVR-Monado plugin installed:

```
  $ gdb ...
  ...
  (gdb) bt
  #0  0x0000000000000000 in ?? ()
  #1  0x00007f82de21bac7 in CDeviceDriver_Monado_Controller::RunFrame (this=0x7f82bc610e40)
      at /home/linus/dev-priv/vr/monado/src/xrt/state_trackers/steamvr_drv/ovrd_driver.cpp:966
  #2  0x00007f82de218b5d in CServerDriver_Monado::RunFrame (this=0x7f82de7c6ca0 <g_serverDriverMonado>)
      at /home/linus/dev-priv/vr/monado/src/xrt/state_trackers/steamvr_drv/ovrd_driver.cpp:1574
  #3  0x00000000004b7a77 in ?? ()
  #4  0x0000000000000000 in ?? ()
  (gdb) l /home/linus/dev-priv/vr/monado/src/xrt/state_trackers/steamvr_drv/ovrd_driver.cpp:966
  959			if (m_xdev->hand_tracking_supported && m_skeletal_input_control.control_handle) {
  960				vr::VRBoneTransform_t bone_transforms[OPENVR_BONE_COUNT];
  961
  962				timepoint_ns now_ns = os_monotonic_get_ns();
  963				struct xrt_hand_joint_set out_joint_set_value;
  964				uint64_t out_timestamp_ns;
  965
  966				m_xdev->get_hand_tracking(m_xdev,
  967				                          m_hand == XRT_HAND_LEFT ? XRT_INPUT_GENERIC_HAND_TRACKING_LEFT
  968				                                                  : XRT_INPUT_GENERIC_HAND_TRACKING_RIGHT,
  969				                          now_ns, &out_joint_set_value, &out_timestamp_ns);
```

This happens because the "m_xdev->hand_tracking_supported" flag is set
but m_xdev->get_hand_tracking() is not implemented for WMR controllers.

Fixing this crash by setting hand_tracking_supported to false for
WMR controllers for now until get_hand_tracking() is implemented.

Link: https://gitlab.freedesktop.org/monado/monado/-/issues/251
Fixes: c4db3dfccc ("d/wmr: Add basic Reverb (G1, Bluetooth) motion controller support.")
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2023-06-02 04:33:07 +02:00
Moshi Turner 10fe48e81b cmake: Use fancy colors on AppleClang too 2023-05-31 20:24:13 -07:00
Ryan Pavlik b9f05182d0 cmake: Adjust XRT_OPENXR_INSTALL_ACTIVE_RUNTIME to default to OFF. 2023-05-26 19:39:57 +00:00
Korcan Hussein 17d8e010c8 xrt: App enabled extension state
Adds support for passing through which extensions an OpenXR client
has enabled to server for drivers/compositors to be able to query.
2023-05-25 23:20:38 +01:00
Korcan Hussein 0b3ef8f679 cmake: Fix linux builds with vcpkg. 2023-05-25 23:05:08 +01:00
Mateo de Mayo a860a7f40e t/slam: Implement new prediction using latest IMU samples for everything 2023-05-24 12:07:18 +00:00
Jakob Bornecrantz 17fcaed10b doc: Document !1839 2023-05-23 14:42:21 +01:00
Jakob Bornecrantz 5b8a68fce5 d/dai: Do some tracing on IMU samples 2023-05-23 14:42:21 +01:00