Commit graph

5950 commits

Author SHA1 Message Date
Yu Li e8d3b875f0 xrt: Add get bounds rect function 2024-04-17 12:49:20 +00:00
zhz c5cf26f385 c/client: Replace glTextureStorageMem2DEXT with glTexStorageMem2DEXT 2024-04-16 13:44:39 +00:00
zhz d232e73587 xrt: Add a macro for Android platform to select vulkan memory to create swapchain.
Increases compatibility. AHardwareBuffer path left available and enabled
by default.
2024-04-16 13:44:39 +00:00
0y8w1x 0cc05bc300 d/ulv5: added joint orientation 2024-04-15 00:24:01 +02:00
Rylie Pavlik 19a8dfb8c8 st/oxr: Fix codespell error. 2024-04-12 14:08:37 +00:00
Rylie Pavlik 481ef3d7b3 st/gui: Fix codespell error. 2024-04-12 14:08:37 +00:00
Rylie Pavlik 3e744131c5 xrt: Fix codespell errors. 2024-04-12 14:08:37 +00:00
Rylie Pavlik 60996cd9de drivers: Fix codespell errors. 2024-04-12 14:08:37 +00:00
Rylie Pavlik c0be8f2478 comp: Fix codespell errors. 2024-04-12 14:08:37 +00:00
Rylie Pavlik dd82b04ab5 a/vk: Fix codespell errors. 2024-04-12 14:08:37 +00:00
Rylie Pavlik ae88c4c18f a/util: : Fix codespell errors. 2024-04-12 14:08:37 +00:00
Rylie Pavlik 80e0b4499e a/tracking: Fix codespell errors. 2024-04-12 14:08:37 +00:00
Christoph Haag cada51db56 u/space_overseer: skip actually locating space in itself
It is always going to be identity. Keep calculating the offsets though.
2024-04-12 14:07:19 +00:00
Christoph Haag 7a387e4087 u/space_overseer: Relation chain with 0 steps has valid velocities = 0 2024-04-12 14:07:19 +00:00
zhislv 0387e8f15c add getPackageName() for Context, add getSignature() for PackageInfo 2024-04-10 15:32:48 +00:00
Zhongwang Zhang 099df066c6 st/oxr: Avoid calling oxr_action_cache_stop_output every time when xrSyncActions is called 2024-04-08 05:43:25 +00:00
Christoph Haag 3fd69da828 st/oxr: Fix projection layer viewCount validation 2024-04-04 15:27:17 +00:00
Christoph Haag 9b0bf725bd oxr/st: Fix EPPO->OPPO typo in error message 2024-04-04 14:15:47 +00:00
Christoph Haag 60b6fb8eed a/bindings: Don't add dpad paths to all paths in script
They can not be distinguished from core paths there, but they need to be
gated by EXT_dpad_binding
2024-04-04 14:15:47 +00:00
Christoph Haag 7100faf868 a/bindings: Remove palm_pose and hand_interaction from eye gaze
The spec has a note for most interaction extension that these paths are
added, but the XR_EXT_eye_gaze_interaction does not.
It makes sense: Where do you render a hand model with eye gaze?
2024-04-04 14:15:47 +00:00
Christoph Haag 78c4a239b0 a/bindings: Add extension and palm_pose/hand_interaction to oppo 2024-04-04 14:15:47 +00:00
Christoph Haag 46e57b9d38 a/bindings: Add heartrate to bindings schema 2024-04-04 14:15:47 +00:00
Christoph Haag c622709411 a/windows: Fix warning 2024-04-04 14:15:47 +00:00
Christoph Haag 574b3c1d28 ipc: Fix no newline at end of file warning 2024-04-04 14:15:47 +00:00
Christoph Haag c477ec3304 u/pp: Generate u_pp_xrt_input_name from XRT_INPUT_LIST macro 2024-04-04 16:06:36 +02:00
Christoph Haag deddf40f7d xrt: Make enum xrt_input_name generated by a macro 2024-04-04 16:06:36 +02:00
Christoph Haag fc3bf65727 m/space: Refactor apply_relation
Before, apply_relation had unclear semantics and "upgraded" relation flags
to valid if either one of the relations had them. Most likely this was
because poses were considered to be not tracked and not having a velocity.

But OpenXR behavior says that something that is just an offset to something
else, for example local stage in stage space should have tracked flags, and
probably velocity valid flags.

The only time when something is not tracked in OpenXR is when the path
through the space graph passes through a space that actually tracks
something with a tracking system that currently can not track that something.
(Or when two spaces are in disjunct partitions of the space graph).

Therefore, insert poses as fully tracked relations with zero velocities
into the relation chain and remove all the "upgrade" behavior.
2024-03-29 20:15:38 +01:00
korejan 159f22e403 c/main: Fix incorrect surface format matching 2024-03-26 21:40:42 +00:00
Commenter c8ca7797a0
xrt: Fix compile error in t_imu.cpp 2024-03-25 09:28:08 -05:00
korejan d3e87d784b a/util: Fixes missing windows lib for mercury_streamvr_driver 2024-03-24 12:44:39 +00:00
Fernando Velazquez Innella a462235e2a a/vk: Fix build with Vulkan SDK's older than 1.3 2024-03-19 12:22:46 -04:00
Fernando Velazquez Innella 3984bf4d8d u/var: Protect tracker access with a mutex.
Solves a race condition that may crash the debug gui if objects are removed using u_var_remove_root
2024-03-18 14:16:05 -04:00
Christoph Haag 795360a511 d/steamvr_lh: Set view_count = 2
Drivers that do not use u_device_allocate must set view_count themselves.
2024-03-18 00:00:32 +01:00
Christoph Haag f4c3e9ed2c st/prober: fix view_count printing in PH() macro 2024-03-18 00:00:32 +01:00
Christoph Haag b2c4134113 c/main: Check xdev view_count early and add error message 2024-03-17 22:36:55 +01:00
Meng Jiao e154fd4513 mono: depth layer supporting mono 2024-03-15 01:48:38 +00:00
Meng Jiao a802960684 driver/simulated: Handling when the view count is 1 or 2. 2024-03-15 01:48:38 +00:00
Meng Jiao 368a3842fb d/remote: Get view count from json config 2024-03-15 01:48:38 +00:00
Meng Jiao 8a74798c0b a/util: Device helpers and distortion handling for when the view count is equal to 1 or 2 2024-03-15 01:48:38 +00:00
Meng Jiao 105577730f a/util: Make distortion utils compatible with view count equal to 1. 2024-03-15 01:48:38 +00:00
Meng Jiao 95331593e2 mono: projection layer supporting mono 2024-03-15 01:48:38 +00:00
Mateo de Mayo a8eb098e14 drivers: don't initialize masks_sink if slam is disabled
Co-authored-by: Simon Zeni <simon.zeni@collabora.com>
2024-03-14 01:56:38 +00:00
sdegrande a806903765 d/remote: Fix warnings reported by clang (17) about some wrong printf formats. 2024-03-13 11:40:32 +01:00
sdegrande 2e43c7b895 d/remote: Add and use a multi-os r_socket_t typedef
On Linux, a socket descriptor as an int, while on Windows it is a
SOCKET (aka an unsigned long long).

This patch introduces a r_socket_t typedef set depending on the OS,
and uses it where needed.

The patch also reorders some header inclusions, to ensure that
winsock2.h is included before windows.h, or else the winsock API is
defined instead of the winsock2 API and a warning is emitted during
compilation.

Also, the "#pragma comment(lib, 'ws2_32.lib')" directive used in r_hub.c
is a VC++-ism, not compatible wth Mingw64 (gcc or clang toolchains).
This patch replaces the pragma with a cmake link directive.
2024-03-13 11:40:32 +01:00
Fernando Velazquez Innella 24de6f9edf c/util: Expand on swapchain import error codes
This allows the CTS in Direct3D12 to not fail when attempting to import sRGB swapchains with flags such as XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT
2024-03-12 10:57:25 -04:00
Korcan Hussein ca3cbf7ce8 st/oxr: Bug fix XR_HTC_facial_tracking system support check
Fixes system support check for XR_HTC_facial_tracking not setting
lip support flag.
2024-03-11 19:48:51 +00:00
Korcan Hussein 50f3816cf2 xrt: Adds support for XR_HTC_facial_tracking xrt-devices 2024-03-11 10:30:39 +00:00
Korcan Hussein 1a6c444a42 xrt: Adds framework for face-tracking xrt-devices 2024-03-11 10:30:39 +00:00
Meng Jiao fec1d42139 a/util: Read config files in binary mode to fix on Windows 2024-03-08 19:01:54 -06:00
Fernando Velazquez Innella 13ea0ab546 c/client: Run D3D12 swapchain initial barriers after all possible points of failure. 2024-03-06 11:09:00 -05:00
TheJackiMonster 9f4f2541a6 d/xreal_air: Rename nreal air to xreal air in driver, support xreal air 2 and xreal air 2 pro 2024-03-05 23:53:48 +00:00
Patrick Nicolas d63b9f4518 a/vk: Enable synchronization2 feature 2024-03-05 08:49:33 +01:00
Patrick Nicolas 11fc8d5629 a/vk: Add possibility to create video encode queue 2024-03-05 08:49:33 +01:00
Patrick Nicolas c8195a8fbc a:vk: Make find_compute_queue_family more generic 2024-03-05 08:49:33 +01:00
Patrick Nicolas c5230c075c c/main: Compositor targets can set more parameters
Allow compositor targets to require a minimum Vulkan version, and
additional optional device extensions.
2024-03-05 08:49:33 +01:00
dengkail c066774dca ipc: Add support for XR_FB_passthrough 2024-02-29 11:16:17 +08:00
dengkail 6c03327253 c/client: Implement XR_FB_passthrough APIs in client side 2024-02-29 11:15:59 +08:00
dengkail c57976c2af st/oxr: Add extension XR_FB_passthrough 2024-02-29 11:15:37 +08:00
Jarvis Huang 039ef1ed90 st/oxr: Getting vendor id/name from server 2024-02-28 22:25:45 +08:00
utzcoz a3085de032 ext/openxr: Bump OpenXR headers to 1.0.34
1. Download and unzip from
   https://github.com/KhronosGroup/OpenXR-SDK/releases/tag/release-1.0.34.
2. Copy all header files in include/openxr directory to
   src/external/openxr_includes/openxr.

Signed-off-by: utzcoz <utzcoz@outlook.com>
2024-02-26 14:32:25 +00:00
Ryan Pavlik fe19760eaf st/oxr: Factor out more of action state updating, in a different way.
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2024-02-26 10:41:31 +00:00
Ryan Pavlik d73d5655f2 st/oxr: Use factored-out helpers to determine if action state has changed. 2024-02-21 10:38:49 -06:00
Ryan Pavlik 4d8622728f st/oxr: Add helper functions for action state. 2024-02-21 10:38:14 -06:00
Ryan Pavlik 4516ed9b22 st/oxr: More strictly verify xrSyncActions input in advance. 2024-02-21 10:38:14 -06:00
Ryan Pavlik f7e8a6f9f9 st/oxr: Use subaction_paths helper function 2024-02-21 10:38:14 -06:00
Ryan Pavlik 771808f589 st/oxr: Keep track of the union of each action set's action sub-action paths 2024-02-21 10:38:14 -06:00
Ryan Pavlik 2fbab42772 st/oxr: Add some oxr_subaction_paths helpers. 2024-02-21 10:38:14 -06:00
BabbleBones 962c623df5 aux/debug_ui: raise gl version to 4.5 2024-02-20 01:20:39 -05:00
Korcan Hussein f6dd897297 st/oxr: Fix uninitialized/invalid timestamps for action_caches 2024-02-19 12:32:25 +00:00
Simon Zeni e5c8dbd2aa cmake: add wayland include dirs to comp_main 2024-02-18 23:47:46 +00:00
Simon Zeni 99c938a1df t/common: fix valve index hand tracker crash when SLAM tracking is not enabled 2024-02-12 12:05:18 -05:00
Mateo de Mayo 6b323209b2 t/vit: Return success from vit_get_proc
Closes #322
2024-02-09 19:26:51 +00:00
Mateo de Mayo d80a41f34f external/vit: Update to 1.0.1 and remove unused cpp helper 2024-02-09 19:26:51 +00:00
Mateo de Mayo a10644c873 d/wmr: Properly compute hand tracking boundary circle 2024-02-09 19:26:51 +00:00
Mateo de Mayo a9b85c99c6 d/vive: Use raw imu samples for slam 2024-02-09 19:26:51 +00:00
Mateo de Mayo 6afed4dc4a d/{rift_s,vive,ns}: Share hand bounding box with head tracker 2024-02-09 19:26:51 +00:00
Mateo de Mayo eadc592c04 t/slam: Push hand masks to tracker 2024-02-09 19:26:51 +00:00
Mateo de Mayo e79d2d395f h/mercury: Push hand rect masks to the SLAM tracker sinks 2024-02-09 19:26:51 +00:00
Mateo de Mayo 4cfe58a5e9 t/slam: Add hand_masks sink 2024-02-09 19:26:51 +00:00
Mateo de Mayo 717336fa88 t/slam: Print VIT error numbers 2024-02-09 19:26:51 +00:00
Mateo de Mayo db40cc2e73 t/slam: Make default of VIT_SYSTEM_LIBRARY_PATH consistent with other envvar defaults 2024-02-09 19:26:51 +00:00
Korcan Hussein d9ef028df9 a/util,st/oxr: Fixes crash bug with XR_EXT_dpad_binding
Crash occurs after multiple session runs with clients using
`XR_EXT_dpad_binding`, this is was caused be not full deep cloning of
interaction profiles with dpad_state
2024-02-08 15:52:37 +00:00
Korcan Hussein cfa545b43c st/oxr: Fixes getting current interaction profile paths
oxr_session's active profile paths where not being cleared on attachments/
updates, causing calls to `xrGetCurrentInteractionPath` to return valid
paths of particular hand that where previously bound and became unbound.
2024-02-08 15:52:37 +00:00
Korcan Hussein a40599d315 a/math: Fix const-correctness in m_relation_history 2024-02-08 15:52:37 +00:00
Korcan Hussein 59b8d3a955 st/oxr: Separate out dynamic roles and associated profiles
Separates the role xdev indices and associated interaction
profile (names) from dynamic roles so that interaction profiles
can be method active and have action (set) attachements updated
without bindings and no requirement for an xrt-device for
a particular hand.

E.g. driver can make left & right with a paritcular profile (name) and
have either both not have an xrt-device ready/unassigned but OpenXR apps
can still sync/query actions states on the not read/unassigned hands,
this also fixes CTS action tests when the hand is constrained to certain
hand, in particular the right hand.

Co-authored-by: Robbie Bridgewater <ebridgewater@magicleap.com>
2024-02-08 15:52:37 +00:00
Korcan Hussein 36d5d4224c st/oxr: reset any_pose_subaction_path before update 2024-02-08 15:52:37 +00:00
Robbie Bridgewater fd9795b4de ipc/server: Allow skipping epoll of stdin via env variable 2024-02-08 15:52:37 +00:00
Christoph Haag 2f5da783cc ipc: forward result of xrWaitSwapchainImage
Co-authored-by: Korcan Hussein <korcan.hussein@collabora.com>
2024-02-08 15:52:37 +00:00
Julian Petrov 2f3a6e13bc ipc: Set timeBeginPeriod(1) globally on Windows
Monado upstream sets timeBeginPeriod(1) on calls to sleep, we
have seen that it helps with things inside of the NVIDIA driver.
2024-02-08 15:52:37 +00:00
Rylie Pavlik 46c443baa0 a/math: Clarify comments in relation history 2024-02-07 13:36:38 -06:00
Rylie Pavlik 328b9c7c5d c/null: Simplify and improve 2024-02-07 13:36:38 -06:00
Rylie Pavlik 33000bbd2c d/simulated: Use more generic variable names 2024-02-07 13:36:38 -06:00
Rylie Pavlik 4948ec8291 d/simulated: Fix log macros 2024-02-07 13:36:38 -06:00
Rylie Pavlik 884b8f2bcc d/rokid: Fix log macros 2024-02-07 13:36:38 -06:00
Rylie Pavlik 6b2a0e76f0 d/sample: Clean up sample HMD, use m_relation_history, populate mesh 2024-02-07 13:36:38 -06:00
Pingping Meng b5df7f1761 doc: Document !2129 2024-02-02 05:14:55 +00:00
Pingping Meng fd816c838f st/oxr: Add extension XR_FB_composition_layer_depth_test 2024-02-02 05:14:55 +00:00
Ryan Pavlik 663544aa3e t/common: Silence some warnings 2024-02-01 10:51:42 -06:00
Ryan Pavlik a36cad975c d/wmr: Silence some warnings. 2024-02-01 10:51:42 -06:00
Mateo de Mayo a8fc75cb4a u/space: Fix non-void function not returning 2024-02-01 10:51:01 -06:00
Weijie Wang e1f02b4629 os/threading: fix assert in debug build 2024-01-26 02:36:23 +00:00
Christoph Haag 67e61811b5 d/survive: Fall back to default ipd if 0 reported 2024-01-25 13:49:36 +01:00
Mateo de Mayo 93ad858d18 t/slam: Fix uninitialized pointer
Closes #317
2024-01-22 16:25:39 -03:00
Simon Zeni 0cb96a1643 aux/tracking: remove MatFrame class from t_tracker_slam 2024-01-17 15:15:03 -05:00
Simon Zeni 1264f385b0 external: remove old slam_tracker interface 2024-01-17 15:15:03 -05:00
Simon Zeni b14612e48a d/*: pose correction for VIT system 2024-01-17 15:15:03 -05:00
Simon Zeni 170d38978e cmake: remove XRT_HAVE_BASALT & XRT_HAVE_KIMERA 2024-01-17 15:15:03 -05:00
Simon Zeni 2f9d3b2e47 aux/tracking: use VIT interface in slam tracker 2024-01-17 15:15:03 -05:00
Simon Zeni 66027fc989 aux/tracking: introduce VIT loader 2024-01-17 15:15:03 -05:00
Simon Zeni c6e629b4e7 external: introduce visual-inertial tracking interface header
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2024-01-17 15:15:03 -05:00
Bailey Morgan 20cb556f6d cmake: Remove unused ffmpeg dependency 2024-01-16 16:43:35 -05:00
Jakob Bornecrantz 57e9373839 c/main: Refactor how surface formats are handled 2024-01-16 11:43:41 -05:00
Jakob Bornecrantz a6e9893f99 c/main: Refactor arguments to comp_target::create_images 2024-01-16 11:43:41 -05:00
Christoph Haag a0f3fa2c4f d/remote,steamvr_lh,survive_driver: Add stage_supported implementation 2024-01-16 03:11:42 +01:00
Christoph Haag 05db9e9b99 u/space_overseer: Create STAGE as pose space when stage_supported on head 2024-01-16 03:10:35 +01:00
Christoph Haag 22314ca14b xrt: Add stage_supported to xrt_device 2024-01-16 03:10:35 +01:00
Sefa Eyeoglu 0df6f9606b
xrt: prevent systemd from starting Monado quickly
If an OpenXR client starts Monado using socket activation, but Monado
crashes during its startup, systemd will try to start the service for
each subsequent IPC message, which causes both units to enter a failed
state.

By enabling
[`FlushPending`](https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html#FlushPending=),
systemd will flush pending messages and close the connection to the IPC
client, preventing restarts in quick succession.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-01-12 11:39:31 +01:00
Christoph Haag ceae41a7bd d/steamvr_lh: Add vive and index bindings 2024-01-10 13:55:20 +01:00
Christoph Haag bdb390b497 d/steamvr_lh: Choose the first tracking universe that is found
lighthousedb.json may contain many more tracking universes than are
actually configured in chaperone_info.vrchap.
2024-01-10 12:50:49 +01:00
Jakob Bornecrantz 4156ea07a5 st/gui: Add infinitely fast trigger finger in remote UI
Makes it easier to pass interactive action CTS test.
2024-01-08 18:56:58 +00:00
Jakob Bornecrantz cb1b20871f c/main: Let sub-classed targets override compositor extents 2024-01-08 16:59:51 +00:00
Jakob Bornecrantz 141046585d c/main: Don't use list of display if we fail to allocate it 2024-01-08 16:59:51 +00:00
Jakob Bornecrantz 4a2eebdc69 c/main: Tidy target code [NFC] 2024-01-08 16:59:51 +00:00
Jakob Bornecrantz 2dfb2986fc st/oxr: Switch to use new loader header 2024-01-07 18:00:11 +00:00
utzcoz 98cb76a644 ext/openxr: Bump OpenXR headers to 1.0.33
1. Download and unzip from
   https://github.com/KhronosGroup/OpenXR-SDK/releases/tag/release-1.0.33.
2. Copy all header files in include directory to
   src/external/openxr_includes/openxr.

Signed-off-by: utzcoz <utzcoz@outlook.com>
2024-01-07 14:21:04 +00:00
Jakob Bornecrantz 80d733c869 d/vive: Document conversion value 2024-01-06 14:07:49 +00:00
Christoph Haag ea65f00198 d/vive: Refactor how acceleration and gyro is scaled and biased
Results are the same.
2024-01-06 14:07:49 +00:00
Christoph Haag 638666100d d/vive: Use double for imu ranges 2024-01-06 13:42:25 +00:00
Christoph Haag 0f34fea864 d/vive: Clarify variant from config comment 2024-01-06 13:42:25 +00:00
Christoph Haag 721897f59d d/vive: Remove old print 2024-01-06 12:21:02 +00:00
rcelyte 4e1a3e1afa d/steamvr_lh: Simplify coordinate space conversion
This is mathematically equivalent, but should be easier to reason about.
2024-01-05 00:44:06 +00:00
meng.jiao 7e22fa5744 u/frame_times_widget: Optimize FPS calculation
Do so using precomputed frame timings.
2024-01-04 23:54:09 +00:00
Christoph Haag 18d863c179 d/wmr: Add WMR_[LEFT|RIGHT]_DISPLAY_VIEW_Y_OFFSET env variables 2024-01-04 23:37:26 +00:00
huanchen 774b3d23a5 st/oxr: Implement XR_EXT_performance_settings 2024-01-04 23:03:20 +00:00
huanchen 1f658ba2be ipc: Implement performance settings interface
Used to implement XR_EXT_performance_settings.
2024-01-04 23:03:20 +00:00
huanchen 3d5c16fdba xrt: Add performance settings interface
Used to implement XR_EXT_performance_settings.
2024-01-04 23:03:13 +00:00
Jakob Bornecrantz 63f7e3c84f st/oxr: Up max bindings per action
The CTS has more then 16. The limit is just during binding, not actually after.
2024-01-04 21:24:41 +00:00
Jakob Bornecrantz ef6e07508a st/oxr: Change num to binding_count [NFC] 2024-01-04 21:21:28 +00:00
Jakob Bornecrantz 0f9147c6de st/oxr: Do not crash on too many bindings to an action 2024-01-04 21:19:59 +00:00
Jakob Bornecrantz 03457a8c40 u/pacing: Do live stats tracking in fake pacer 2024-01-04 19:54:05 +00:00
Jakob Bornecrantz f1c8843b7d u/pacing: Keep track of frame times in fake pacer 2024-01-04 19:54:05 +00:00
Jakob Bornecrantz 479973e68f u/pacing: Split submit timing into begin and end 2024-01-04 19:54:05 +00:00
Jakob Bornecrantz abe783d2a4 c/main: Split submit timing into begin and end 2024-01-04 19:51:30 +00:00
Jakob Bornecrantz 40534011e8 u/live_stats: Add helper to do live statistics on nano-seconds durations 2024-01-04 19:49:32 +00:00
Jan Schmidt 3d534bcc1d a/math: Refactor m_clock_offset_a2b
Avoid limited precision float operations on large 64-bit
integers. The clock averaging was basically not working
once the clock values got large
2024-01-04 16:32:15 +00:00
Jakob Bornecrantz 03c8a1a14e c/main: Use new debuggable scratch images 2024-01-04 16:23:28 +00:00
Jakob Bornecrantz e7d8cc0310 c/util: Add scratch buffer helpers 2024-01-04 16:23:28 +00:00
Jakob Bornecrantz 45a9ef295a c/render: Tweak alpha blending 2024-01-04 16:23:28 +00:00
Jakob Bornecrantz 1de99e4ce7 st/gui: Integrate new preview views into end-user UI 2024-01-04 16:23:28 +00:00
Jakob Bornecrantz dbd8a5b323 st/gui: Integrate gui_widget_native_images into debug gui 2024-01-04 16:23:28 +00:00