Commit graph

5896 commits

Author SHA1 Message Date
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
Jakob Bornecrantz b6a1a2b390 d/dai: Add env variables to tweak IMU settings
Add make code able to accept 1 and 2 samples in a batch.
2023-05-23 14:42:21 +01:00
Jakob Bornecrantz 9def97ebb8 d/dai: Set thread names and tweak printing 2023-05-23 11:48:11 +01:00
Jakob Bornecrantz 0257556763 d/dai: Tidy includes 2023-05-23 11:48:11 +01:00
Jarett Millard fe6d584712 d/pssense: Implement controller vibration and CRC check for input reports 2023-05-23 07:42:00 +00:00
Ryan Pavlik e3ce528703 cmake: Adjust build so that CPack makes a better deb file.
Not as good as the native one, but better.
2023-05-22 14:24:03 -05:00
Christoph Haag 1af711ec8b ci: Fix archlinux container
OpenCV highui now depends on qt6
2023-05-22 16:53:15 +02:00
Jakob Bornecrantz f62d08bdce doc: Document !1829 2023-05-22 11:51:07 +01:00
Jakob Bornecrantz 1f632bcfb9 d/vive: Improve and refactor IMU time calculation 2023-05-22 11:51:07 +01:00
Jakob Bornecrantz 70850472b2 d/vive: Drain all imu packets at startup 2023-05-22 11:44:33 +01:00
Jakob Bornecrantz 7f1c5e9bd5 d/vive: Tidy header includes 2023-05-22 11:44:33 +01:00
Jakob Bornecrantz 76b35d4397 doc: Document !1824 2023-05-21 12:03:04 +01:00
Jakob Bornecrantz 647fd366c5 c/render: Remove compute default_sampler 2023-05-21 12:03:04 +01:00
Jakob Bornecrantz 27ba15cb24 c/util: Remove comp_swapchain_image samplers
No longer used, they where all the same.
2023-05-21 12:03:04 +01:00
Jakob Bornecrantz 1644812dc5 c/main: Remove layer renderer framebuffer sampler 2023-05-21 12:03:04 +01:00
Jakob Bornecrantz 82453bab57 c/main: Use new samplers
The swapchain code was creating a whole bunch of samplers, two for each image.
The thought was that samplers might depend on format, but this was not the
case. So just add a few common ones on the render_resources structs and use
them everywhere. Also fixes the bleeding distortion problem.
2023-05-21 12:03:04 +01:00
Jakob Bornecrantz ee66760b63 c/main: Log assert case 2023-05-21 12:03:04 +01:00
Jakob Bornecrantz 44d2dbc268 c/main: Init gfx & compute render resources earlier 2023-05-21 12:03:04 +01:00
Jakob Bornecrantz 8d738248b0 c/render: Add and use new samplers 2023-05-21 12:03:04 +01:00
utzcoz 7b8d3c0907 d/remote: Remove unused clang-format comment [NFC]
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-05-21 10:44:04 +00:00
Jakob Bornecrantz e07204cc8b doc: Document !1832 2023-05-21 09:01:30 +01:00
Jakob Bornecrantz 7a6da9c6ca doc: Document !1770 2023-05-21 09:01:30 +01:00
Jakob Bornecrantz 7548767740 doc: Document !1769 2023-05-21 09:01:30 +01:00
Jakob Bornecrantz a6e6dcaeee doc: Document !1692 2023-05-21 09:01:30 +01:00
Jakob Bornecrantz 22635062d3 doc: Document !1494 2023-05-21 09:01:30 +01:00
Jakob Bornecrantz 01da9029e8 doc: Update DepthAI entry 2023-05-21 09:01:30 +01:00
Moshi Turner 276fbc8113 d/dai: Add live control of floodlight brightness 2023-05-21 08:56:14 +01:00
Jakob Bornecrantz 6170b2a250 doc: Document !1831 2023-05-20 22:45:59 +01:00
Jakob Bornecrantz 7d11036e29 d/ht: Log if we can not find hand-tracking directory 2023-05-20 22:38:16 +01:00
Jakob Bornecrantz ab2b88d417 u/file: Search more paths for hand-tracking models 2023-05-20 21:10:31 +01:00
utzcoz b466d1d338 cmake: Remove extra empty lines [NFC]
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-05-20 15:17:27 +08:00