Commit graph

5201 commits

Author SHA1 Message Date
Jiali Zhang 81a094f990 ipc: Add support for thread hint function 2023-09-13 20:04:49 +01:00
Jiali Zhang faec524709 xrt: Add thread hint function 2023-09-13 20:03:17 +01:00
Jakob Bornecrantz 3de99b63d9 ipc: Add a interface header for ipc_server_main[_android] 2023-09-13 17:33:55 +00:00
Jakob Bornecrantz 5be0767aa9 ipc: Add a interface header for ipc_instance_create 2023-09-13 17:33:55 +00:00
Jakob Bornecrantz ad520c82c3 a/vk: Make sure to print the first GPU as well 2023-09-13 17:18:25 +00:00
Jakob Bornecrantz 7b3763650e a/vk: Also print device type when listing GPUs 2023-09-13 17:18:25 +00:00
Jakob Bornecrantz ccf232d4ac a/vk: Add vk_physical_device_type_string 2023-09-13 17:18:25 +00:00
Jakob Bornecrantz ceeeb2d136 a/vk: Make VkPhysicalDeviceProperties argument const 2023-09-13 17:18:25 +00:00
Lubosz Sarnecki 040ad33188 t/libmonado: Add libmonado implementation
Work done by lots of different authors that did various pieces of the library.

Co-authored-by: Korcan Hussein <korcan.hussein@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>
2023-09-12 15:38:31 +01:00
Mateo de Mayo 1da029adaa t/slam: Turn timestamp asserts into warnings 2023-09-08 13:12:21 +00:00
Mateo de Mayo f8932fe879 t/slam: Add reset state button 2023-09-08 13:12:21 +00:00
Mateo de Mayo ae1de1f2b5 a/vive: Add FoV tweaks for another index HMD 2023-09-08 13:12:21 +00:00
Mateo de Mayo a4a6850094 h/mercury: Add min detection confidence option 2023-09-08 13:12:21 +00:00
Mateo de Mayo 14c1ecc96e t/euroc: Allow euroc recorder to start and stop recordings in the same session 2023-09-08 13:12:21 +00:00
dengkail a809635fe6 t/android_common: Specify mutability flag for PendingIntent object.
Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or
FLAG_MUTABLE to be specified when creating a PendingIntent, according to
https://developer.android.com/guide/components/intents-filters#DeclareMutabilityPendingIntent.
2023-09-08 13:43:40 +01:00
BabbleBones 9033ff4b91 steamvr_lh: Correct angular and linear velocities 2023-09-08 13:30:29 +01:00
BabbleBones 10d0ab7e1e steamvr_lh: Correct jitter and pull latest timestamp on hands 2023-09-08 13:30:24 +01:00
Gabriele Musco 23ac74415d d/steamvr_lh: Add support for new SteamVR display component v3 interface
First try v3 then fallback to v2 should it not be available.
2023-09-08 12:10:55 +00:00
Mateo de Mayo d486338985 t/hand: Reduce relation history lock contention
Relation history was being accessed guarded by an external lock in a couple of
places. This is redundant since its implementation already defines an internal
lock.
2023-09-08 12:56:34 +01:00
Mateo de Mayo c6ca7d2339 d/vive: Reduce relation history lock contention
Relation history was being accessed guarded by an external lock in a couple of
places. This is redundant since its implementation already defines an internal
lock.
2023-09-08 12:56:18 +01:00
Mateo de Mayo 3bf927f03f d/na: Reduce relation history lock contention
Relation history was being accessed guarded by an external lock in a couple of
places. This is redundant since its implementation already defines an internal
lock.
2023-09-08 12:56:02 +01:00
Mateo de Mayo 2e55c54b8f d/na: Destroy relation history 2023-09-08 12:53:10 +01:00
Mateo de Mayo ce929e804c a/math: Add lock for relation history get_size 2023-09-08 12:53:10 +01:00
Jakob Bornecrantz 1f49e43724 c/main: Always use the mode's extents when creating the surface
This fixes a bug on NVIDIA Jetson. Note this isn't so much the NVIDIA Jetson
fault, while the code was working on desktop, Monado did something wrong.
What happned was that Monado would select a mode with one size, while then
creating a VkSurface/VkSwapchain of a different size. This would work on
hardware with scalers/panning modes. The NVIDIA Jetson apparently doesn't have
support for that so failed when presenting. This patch makes sure that the
VkSurface/VkSwapchain extents match the mode for all direct mode targets.
2023-09-08 10:47:58 +01:00
Jakob Bornecrantz 9bac7ed30e c/main: Print creation info for direct mode objects 2023-09-08 10:47:58 +01:00
Jakob Bornecrantz 67c24ebe92 c/main: Free plane_properties earlier 2023-09-08 10:31:42 +01:00
Jakob Bornecrantz e95b6932eb c/main: Use more enumeration helpers 2023-09-08 10:31:42 +01:00
Jakob Bornecrantz e37041cc61 a/vk: Add printing functions for create info structs 2023-09-08 10:31:42 +01:00
Jakob Bornecrantz 113f747742 a/vk: Print more VkSurface info 2023-09-08 10:31:42 +01:00
Jakob Bornecrantz 648a168219 a/vk: Even more flag bits string functions 2023-09-08 10:31:42 +01:00
Jakob Bornecrantz d905f79025 a/vk: Improve old flag bits string functions
Make old flag bits string functions like the new ones.
2023-09-08 10:31:42 +01:00
Jakob Bornecrantz ef7aeef971 a/vk: Add flag bits string functions 2023-09-08 10:31:42 +01:00
Jakob Bornecrantz 217874507b a/vk: Re-order functions [NFC] 2023-09-08 10:31:42 +01:00
Jakob Bornecrantz f08a4abb3f a/vk: Add string function for VkSharingMode 2023-09-08 10:31:42 +01:00
Jakob Bornecrantz e732265e64 a/vk: Add more enumeration helpers 2023-09-08 10:31:42 +01:00
Tobias Frisch 75cab73f70 d/na: Add driver for the Nreal Air glasses 2023-09-07 14:07:10 +00:00
Jakob Bornecrantz 843e98e853 c/client: Make sure to not double CloseHandle semaphore HANDLE 2023-09-04 22:26:08 +00:00
BabbleBones 80745f32b3 d/steamvr_lh: Fix zero IPD read 2023-09-02 13:50:01 +01:00
BabbleBones a67aae104b d/steamvr_lh: Fix prediction jitter and remove LH_PREDICTION 2023-09-02 13:50:01 +01:00
Gabriele Musco edaa9320db d/steamvr_lh: Log generic tracker 2023-09-02 13:49:57 +01:00
BabbleBones 5d35ae6dc3 d/steamvr_lh: Wands as any hand controllers 2023-09-02 13:49:54 +01:00
BabbleBones e49be97a3e d/steamvr_lh: Mark init controller state unknown 2023-09-02 13:49:49 +01:00
BabbleBones 466398dc5a d/steamvr_lh: Enable vive tracker pucks 2023-09-02 13:49:45 +01:00
Jakob Bornecrantz 6b815eba51 ipc: Removed unused define [NFC] 2023-09-01 19:50:46 +01:00
Jakob Bornecrantz a0fd61ec1e st/steamvr_drv: Use undef instead of comment for debug define [NFC] 2023-09-01 19:50:34 +01:00
Jakob Bornecrantz 87ec56ca17 d/vive: Use undef instead of comment for debug define [NFC] 2023-09-01 19:50:18 +01:00
Jakob Bornecrantz 74fed516e3 t/psvr: Use undef instead of comment for debug define [NFC] 2023-09-01 19:50:07 +01:00
Jakob Bornecrantz c49a2a5f4d st/gui: Add optional curated debug GUI
Setting XRT_CURATED_GUI to true makes the curated the default.

You can switch between the two UIs during runtime.
2023-09-01 15:42:06 +00:00
sdegrande f290b6418d t/sdl_test: sdl-test needs OpenGL4.5
sdl-test uses some OpenGL4.5 features, such as Texture Objects.

Currently, sdl-test is initialized with an OpenGL3.3 context, and with
a NVidia driver (version 535.98, on Linux), the call to those features
(glCreateTextures() being the first of them) segfaults.
2023-09-01 14:51:41 +00:00
Hui Xu d5b9ae137e ipc/android: Dup the fd from JVM and maintain it in native
- dup the fd in native part to avoid fd_san error
2023-08-22 18:54:26 +00:00
Jakob Bornecrantz b699d0a2b3 os/threading: Document os_cond 2023-08-22 18:49:11 +01:00
Weijie Wang 7d8ca2c162 os/threading: Add mutex recursive wrapper 2023-08-22 18:42:00 +01:00
Ryan Pavlik ef7b1133c6 a/util: Fix missing include for generic callback structure.
Also extend the tests to actually include invocation of callbacks,
and rename a template parameter for clearer usage.
2023-08-16 16:03:58 -05:00
Alex Badics 83976d7d2c d/rokid: add Rokid Air and Max driver 2023-08-16 15:40:09 +02:00
Jakob Bornecrantz 0fb5025997 d/steamvr_lh: Only use the relation history buffer for poses
Also enables prediction to be toggled on.
2023-08-16 13:05:20 +01:00
BabbleBones 577a9aa420 d/steamvr_lh: Basic controller log info
Co-Authored-By: Gabriele Musco <gabmus@disroot.org>
2023-08-16 13:04:23 +01:00
BabbleBones 0ee05e9c38 d/steamvr_lh: Vive tracker input hookup
Co-Authored-By: Gabriele Musco <gabmus@disroot.org>
2023-08-16 13:04:23 +01:00
BabbleBones c139925e83 d/steamvr_lh: Add Valve Knuckles support and emulated hands
Co-Authored-By: Gabriele Musco <gabmus@disroot.org>
2023-08-16 13:04:23 +01:00
BabbleBones 938dd9c74f d/steamvr_lh: Lighthouse info print
Co-Authored-By: Gabriele Musco <gabmus@disroot.org>
2023-08-16 13:04:23 +01:00
BabbleBones 81e827b4bf d/steamvr_lh: Configure canted eyes & IPD
Co-Authored-By: Gabriele Musco <gabmus@disroot.org>
2023-08-16 13:04:20 +01:00
BabbleBones 6d8463823b d/steamvr_lh: Add support for Vive Pro & Index
Co-Authored-By: Gabriele Musco <gabmus@disroot.org>
2023-08-14 19:36:37 +01:00
BabbleBones 8f9dd99df5 d/steamvr_lh: Set driver ipd & brightness on HMD
Co-Authored-By: Gabriele Musco <gabmus@disroot.org>
2023-08-14 19:35:00 +01:00
BabbleBones 8795268c86 d/steamvr_lh: Fix warnings
Co-Authored-By: Gabriele Musco <gabmus@disroot.org>
2023-08-14 17:41:15 +01:00
BabbleBones 841a459a7b a/vive: Support c++ pose info
Co-Authored-By: Gabriele Musco <gabmus@disroot.org>
2023-08-14 17:41:15 +01:00
Lubosz Sarnecki f0cb6c1d6d st/prober: Define functions only when PSVR or PSMV are enabled.
Fixes GCC 13 warning [-Wunused-function].

Define on_video_device and p_factory_ensure_frameserver only when PSMV
or PSVR are enabled. Drop redundant check for XRT_HAVE_OPENCV, since we
already do it above.
2023-08-14 16:57:28 +01:00
Lubosz Sarnecki a2d3621058 st/prober: Move rgb struct declaration.
Fixes GCC 13 warning [-Wunused-variable].

Only declare rgb struct when PSVR is enabled, where it's only used.
2023-08-14 16:57:28 +01:00
Lubosz Sarnecki 634fa71fda h/mercury: Don't write over allocated string size.
Fixes GCC 13 warning [-Wstringop-truncation].
2023-08-14 16:55:33 +01:00
Lubosz Sarnecki 68faf2bc89 t/psvr: Initialize Eigen vector with zeros.
Fixes very verbose GCC 13 warning [-Wmaybe-uninitialized].
2023-08-14 16:55:33 +01:00
Lubosz Sarnecki b0d47951f6 c/main: Pass wm_capabilities to xdg_toplevel_listener.
Fixes GCC 13 and clang 15 warning [-Wmissing-field-initializers].

For recent Wayland versions, correctly initialize the
xdg_toplevel_listener struct.
2023-08-14 16:55:33 +01:00
Lubosz Sarnecki eb438b2381 c/client: Actually use modified xrt_swapchain_create_info.
Fixes GCC 13 warning [-Wunused-but-set-variable].

Use the modified copy of xrt_swapchain_create_info instead of the
const pointer parameter.
2023-08-14 16:55:33 +01:00
Lubosz Sarnecki 1761d98a2e t/common: Use same return type as in interface.
Fixes GCC 13 warning [-Wenum-int-mismatch].

Return xrt_result_t in the implementation of xrt_instance_create in
target_instance_no_comp.c, as declared in xrt_instance.h and already
done in target_instance.c.

Return proper xrt_result_t instead of plain ints.
2023-08-14 16:55:33 +01:00
Lubosz Sarnecki 6956042fb4 d/remote: Use same return type as in interface.
Fixes GCC 13 warning [-Wenum-int-mismatch].

Use same return type in for r_create_devices definition in r_hub.c as in
the declaration in r_interface.h.

The function was already returning correct xrt_result_t.
2023-08-14 16:55:33 +01:00
Jakob Bornecrantz 41927e802c st/gui: Fix warning by using safe casts 2023-08-14 15:38:36 +01:00
Jakob Bornecrantz 6fc9bef385 m/vec3: Add float array helper 2023-08-14 15:38:36 +01:00
Jakob Bornecrantz 66d8e8066a m/vec2: Add float array helper 2023-08-14 15:38:36 +01:00
Charlton Rodda 3b0af8d184 d/qwerty: Make controller support press-and-hold 2023-08-14 13:53:03 +01:00
0y8w1x e6bbfe7b4b u/truncate_printf: Fix spelling [NFC] 2023-08-14 13:19:27 +01:00
Lubosz Sarnecki 60c57792d9 t/common: Fix build with XRT_BUILD_DRIVER_VIVE=OFF.
vive_source.h always needs to be included for
vive_source_hook_into_sinks. vive_device.h always needs to be included
for vive_tracking_status struct.
2023-08-09 16:50:36 +02:00
Jarett Millard 9daeeaec94 d/pssense: Add trigger force feedback 2023-08-01 00:24:05 +01:00
0y8w1x 318f25f1f1 build: Add define to only build with PSVR driver support 2023-07-31 23:47:24 +02:00
Korcan Hussein 71dcc61ed2 xrt: Adds new xrt_device_name entry for XR_EXT_hand_interaction
Prior to this, the existing `xrt_device_name` entry
`XRT_DEVICE_HAND_INTERACTION` was re-used for `XR_EXT_hand_interaction`
bindings however this `xrt_device_name` is used to look up the older
hand-interaction profile `XR_MSFT_hand_interaction`. This commit adds a new
`xrt_device_name` entry dedicated for `XR_EXT_hand_interaction` and fixes the
incorrect profile look for suggested bindings during runtime.
2023-07-27 12:29:51 +01:00
Regan 88ca0b1a94 d/android: Fixed the issue of screen stuttering on some Android devices 2023-07-24 17:28:53 +01:00
Pedro Santos d1eae403e4 d/survive: Add Vive Pro 2 support 2023-07-24 15:23:23 +01:00
Pedro Santos 2a3ac52eb8 d/vive: Add Vive Pro 2 support 2023-07-24 15:23:19 +01:00
Pedro Santos 9b0815bc82 a/vive: Add Vive Pro 2 support 2023-07-24 15:23:14 +01:00
Jakob Bornecrantz e255cf8771 c/main: Fix NVIDIA direct mode detection code
Fix bug introduced in 14ffa34658 (!1894).
2023-07-23 15:36:11 +01:00
Jakob Bornecrantz 0da57b30a4 st/oxr: Add XR_MNDX_system_buttons support 2023-07-21 16:28:43 +00:00
Jakob Bornecrantz 314fc9c583 ext/openxr: Add XR_MNDX_system_buttons header 2023-07-21 16:28:43 +00:00
Linus Lüssing 59d3bab0f6 a/bindings: Add WinMR system buttons
Currently there does not seem to be a way to access the SteamVR
dashboard with the Reverb G2 (controllers).

This adds a binding that allows to use the system/home button to
open the SteamVR dashboard.

Remark: In the OpenXR 1.0 spec there is no binding for
/input/system in XR_EXT_hp_mixed_reality_controller. However on Windows
this button would supposedly allow to (indirectly?) access the
SteamVR dashboard. (Which I can't confirm myself, as I don't have
access to a Windows OS right now.) To properly support system buttons in
OpenXR introduce XR_MNDX_system_buttons.

Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Jakob Bornecrantz <jakob@collabora.com>
2023-07-21 16:28:43 +00:00
Jakob Bornecrantz 14ffa34658 c/main: Use enumeration helpers and tidy NVIDIA target code 2023-07-21 15:45:56 +00:00
Jakob Bornecrantz d5bbaed88a c/util: Use enumeration helpers 2023-07-21 15:45:56 +00:00
Jakob Bornecrantz df5601fc1e a/vk: Use enumeration helpers 2023-07-21 15:45:56 +00:00
Jakob Bornecrantz 9193427964 a/vk: Add enumeration helpers 2023-07-21 15:45:56 +00:00
Jakob Bornecrantz 7dae8d1ddd ipc: Add a stable ID for clients
Co-authored-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
2023-07-18 17:33:52 +02:00
Jakob Bornecrantz 1920a9f0d7 ipc: Send less information when describing the client 2023-07-18 17:33:52 +02:00
Jakob Bornecrantz 2edf07749b ipc: Rename client connected function and document code 2023-07-18 17:33:52 +02:00
Lubosz Sarnecki 0195e22341 t/ctl: Use correct ipc call for toggling client I/O. 2023-07-18 17:33:52 +02:00
huanchen db230b3dcb ipc: Unmap shared memory before destroy 2023-07-18 13:43:01 +01:00
Jakob Bornecrantz bb1aa17626 xrt: Trailing comma on all enums [NFC]
Makes changes adding new entires have less lines changed.
2023-07-18 11:45:08 +01:00
Jakob Bornecrantz ab965deb65 a/android: Reflow code for prettier layout [NFC] 2023-07-18 11:45:08 +01:00