Commit graph

3167 commits

Author SHA1 Message Date
Moses Turner 01283257b2 xrt: clarify camera type (NFC) 2021-06-10 19:25:14 +01:00
quic_zhibinw 76cf6aeae4 st/oxr: Transform projection layer pose to global space. 2021-06-10 17:08:04 +08:00
Ryan Pavlik 2c87f57ad1 cmake: Make sure st_oxr exposes its optional vulkan/gl dependencies
Fixes builds of tests on Windows
2021-06-08 12:05:23 -05:00
Jakob Bornecrantz f9b5097134 c/client: Use the EGL compositor's display in swapchain 2021-06-02 14:26:59 +00:00
Jakob Bornecrantz b7b469089c t/fm: Add simple FrameMat that wraps a cv::Mat 2021-05-31 13:43:19 +00:00
Christoph Haag 6ba07514ef ipc: Add env var to ignore client/service version conflicts 2021-05-26 22:22:04 +02:00
Christoph Haag f49d3ae404 ipc: Check that service and client are the same git revision 2021-05-26 22:21:08 +02:00
Jakob Bornecrantz b3e9653994 t/gui: Show git hash in Window title (NFC) 2021-05-26 16:33:47 +01:00
Jakob Bornecrantz 606b23b5c4 d/rs: Tidy code (NFC) 2021-05-18 03:48:50 +01:00
Jakob Bornecrantz 855cdb4c29 aux/vk: Tidy code (NFC) 2021-05-18 03:48:50 +01:00
Moses Turner 5cb130cd08 d/rs: cleanup and initialize u_config_json with zero 2021-05-18 01:22:39 +00:00
Moses Turner 36bc45b686 util: make sure u_config_json.file_loaded is false if we didn't load the file 2021-05-18 01:22:39 +00:00
Christoph Haag 82d9ed75c2 aux/vk: Check that native handles are importable 2021-05-18 03:01:44 +02:00
zhibinw 92565b7f21 ipc/android: support create surface from runtime. 2021-05-17 16:20:29 +00:00
Jae Lee df9ebf261f d/illixr: Update ILLIXR driver. 2021-05-16 22:59:32 +00:00
Ryan Pavlik bdc53b97a3 gradle: Apply suggestion from android studio 2021-05-14 14:55:08 -05:00
Ryan Pavlik d11ef4ae1e Revert "gradle: Only forward EIGEN3_INCLUDE_DIR definition if we actually have it set."
This reverts commit 0868a90a1f.
2021-05-14 14:54:52 -05:00
Moses Turner 302e72b2fe d/rs: remove superfluous rs_update_offset; add config options 2021-05-13 17:57:34 -05:00
Christoph Haag f6e831d8fb steamvr: Don't crash if we don't have bindings for device 2021-05-13 14:08:24 +02:00
Jakob Bornecrantz 13a5036b24 c/main: Make temp_vk be a pointer 2021-05-11 16:34:10 +00:00
Jakob Bornecrantz 9b6b5b7e6a c/main: Do not copy vk_bundle 2021-05-11 16:34:10 +00:00
Jakob Bornecrantz bd6e15c70c c/main: Follow style of using vk variable for vk_bundle interactions 2021-05-11 16:34:10 +00:00
Jakob Bornecrantz 3af65d60d2 c/client: Follow style of using vk variable for vk_bundle interactions 2021-05-11 16:34:10 +00:00
Christoph Haag 28a29f8152 st/oxr: Fix xrGetSystemProperties crash in headless mode
fixes #125

v2: Handle sys->xsysc being NULL
2021-05-11 02:10:58 +02:00
Moses Turner 4ff7fb74ff aux/util: only do tracing things if XRT_FEATURE_TRACING is enabled 2021-05-10 10:10:18 -05:00
Moses Turner 886a87e5ef meson: add option for tracing 2021-05-10 10:10:07 -05:00
Christoph Haag d384c90104 st/oxr: Check that VkPhysicalDevice in graphics binding matches suggested device
XR_KHR_vulkan_enable2:
physicalDevice VkPhysicalDevice must match the device specified by xrGetVulkanGraphicsDevice2KHR

XR_KHR_vulkan_enable:
physicalDevice VkPhysicalDevice must match the device specified by xrGetVulkanGraphicsDeviceKHR

XR_KHR_vulkan_enable:
Add a trivial check that xrGetVulkanGraphicsDeviceKHR is called before xrCreateSession.
(our cached suggested device will be XR_NULL_HANDLE if it has not been called).
The XR_KHR_vulkan_enable2 code path already contains this check.
2021-05-07 13:42:49 +02:00
Jakob Bornecrantz 35beaeead4 c/client: Add EGL comment (NFC) 2021-05-05 16:14:00 +00:00
Jakob Bornecrantz c1ac7fc679 c/client: s/comp_egl_glue.c/comp_egl_client.c (NFC) 2021-05-05 16:14:00 +00:00
Jakob Bornecrantz 3a537b8374 c/client: Tidy EGL code (NFC) 2021-05-05 16:14:00 +00:00
Jakob Bornecrantz 12489295cb c/client: Do not blindly try to restore no EGLDisplay contexts 2021-05-05 16:14:00 +00:00
Jakob Bornecrantz 41817b6e11 c/client: Tidy EGL code (NFC) 2021-05-05 16:14:00 +00:00
Jakob Bornecrantz b3455555c2 u/trace_marker: Use Percetto/Perfetto for tracing 2021-05-05 17:00:35 +01:00
Jakob Bornecrantz 5c916fd77d d/illixr: Use u_device_get_view_pose helper 2021-05-04 16:37:51 +00:00
Ryan Pavlik b6f440fa26 aux/tracking: Move general docs to a separate header. 2021-05-04 11:21:46 -05:00
Ryan Pavlik 348b7dff3a d/wmr: fix doxygen warning 2021-05-04 11:21:46 -05:00
Ryan Pavlik 77baa8b7e6 aux/android: Move code into official namespaces 2021-05-04 11:21:46 -05:00
Ryan Pavlik 265c49d337 a/math: Move functionality into official namespaces. 2021-05-04 11:04:32 -05:00
Ryan Pavlik 2ae3ce883d a/util: Namespace documentation 2021-05-04 11:04:32 -05:00
Ryan Pavlik d88aefafbc a/tracking: Migrate C++ APIs to the official namespaces now that we have some. 2021-05-04 10:34:43 -05:00
Ryan Pavlik 4ef5b65487 d/wmr: Fix typo 2021-04-30 17:57:50 -05:00
Ryan Pavlik a66f567392 aux/android: Remove unused include 2021-04-30 17:57:50 -05:00
Ryan Pavlik cf2abe7d88 u/process: Fix a warning by marking a function as maybe unused. 2021-04-30 17:57:50 -05:00
Ryan Pavlik 125b0799a3 aux/android: Update wrappers 2021-04-30 17:57:50 -05:00
Ryan Pavlik 45c0ca2ef9 aux/android: Expose native pointer from MonadoView 2021-04-30 17:34:21 -05:00
Ryan Pavlik faa753c667 android: Annotation, docs, and formatting improvements for MonadoView 2021-04-30 17:34:21 -05:00
Ryan Pavlik e4f2ac3286 android: Revise MonadoView so it doesn't require an Activity. 2021-04-30 17:34:21 -05:00
Ryan Pavlik 417de87cb2 a/util: Add a generic callbacks collection.
Based on the work for the Android surface callbacks,
just finished being made generic since we'll need to reuse it.
2021-04-30 17:34:21 -05:00
Ryan Pavlik 928771fddf t/oxr_android: Update recyclerview, and do not use wildcard version 2021-04-30 17:34:21 -05:00
Ryan Pavlik ad31345986 d/qwerty: Fix doxygen warnings.
Comments were a bit too clever to work across doxygen versions.
2021-04-30 17:34:21 -05:00
Jakob Bornecrantz 1af00e7cbe c/client: Fix swapchain leak 2021-04-30 21:56:09 +00:00
Jakob Bornecrantz 61d4d86874 ipc: Remove debug print (NFC) 2021-04-30 21:56:09 +00:00
Jakob Bornecrantz e0bf0a423f st/oxr: Make Vulkan optional 2021-04-30 21:53:21 +00:00
Ryan Pavlik e82fafb186 cmake: Allow C++17 mode on all platforms, all modules.
Remove per-module C++17 settings.
2021-04-30 15:37:04 -05:00
Jakob Bornecrantz daccde940e d/wmr: Fix accel axis conversion 2021-04-28 23:26:09 +00:00
Moses Turner f09e02c517 d/ns: fix resolution from 2880x1440 to 2880x1600 2021-04-28 18:07:07 -05:00
Ryan Pavlik c6a3dec08e doc: Rename sample NorthStar config for file extension reasons, and add schema 2021-04-28 21:13:34 +00:00
Ryan Pavlik 23c73e145b a/util: Make JSON reading more robust.
We were missing some null checks.
2021-04-28 21:13:34 +00:00
Ryan Pavlik cfbb81cb71 a/util: Add schema directive to json before writing. 2021-04-28 21:13:34 +00:00
Jakob Bornecrantz 76ed4d16ce c/client: Tidy and lower the logging level 2021-04-28 12:25:53 +00:00
Jakob Bornecrantz 5befa76f42 m/3dof: Add manual way to set the gyro bias 2021-04-28 12:25:53 +00:00
Jakob Bornecrantz 8a191daa29 ipc: Add session_destroy to handle session destruction 2021-04-27 22:47:11 +00:00
Jakob Bornecrantz 8a715ec41c xrt: Add new error return for IPC 2021-04-27 22:47:11 +00:00
Jakob Bornecrantz 0c685cf7ba d/qwerty: Use u_device_get_view_pose helper 2021-04-27 22:18:39 +00:00
Ryan Pavlik 7d1c8480b3 xrt: Fix an incomplete compositor method doc. 2021-04-27 22:05:00 +00:00
Ryan Pavlik 8af1bfbf8c a/u_logging: Docs for logging. 2021-04-27 22:05:00 +00:00
Ryan Pavlik 2c382734ca a/bindings: Clean up formatting of script 2021-04-27 16:43:38 -05:00
Ryan Pavlik d8cf72f6d9 a/bindings: Simplify as suggested by IDE 2021-04-27 16:43:38 -05:00
Ryan Pavlik 5a7412e86d a/bindings: Fix typos 2021-04-27 16:43:38 -05:00
Jakob Bornecrantz b81d3138af d/remote: Assert if st/oxr calls the wrong thing (NFC) 2021-04-27 17:34:28 +01:00
Jakob Bornecrantz 385af79e82 d/survive: Add comment and assert to get_view_pose (NFC) 2021-04-27 17:19:18 +01:00
Jakob Bornecrantz a6b908f3ce d/vive: Add comment and assert to get_view_pose (NFC) 2021-04-27 16:51:56 +01:00
Jakob Bornecrantz 4e572af96a st/oxr: Rename oxr_session_views to oxr_session_locate_views (NFC) 2021-04-27 01:44:16 +01:00
Jakob Bornecrantz 4da87635d1 st/oxr: Tidy xrLocateViews function 2021-04-27 01:44:16 +01:00
Jakob Bornecrantz 78f7d5ce91 ipc: Assert if st/oxr calls the wrong thing 2021-04-27 01:44:16 +01:00
Jakob Bornecrantz 8277df418d xrt: Make eye_relation argument to xrt_device_get_view_pose const (NFC) 2021-04-27 01:44:13 +01:00
Ryan Pavlik 4dd96a666b u/ht: Const-correctness 2021-04-26 22:38:42 +00:00
Ryan Pavlik bc279076b8 u/ht: Port to new unit-vector defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik 334b59f9fa d/qwerty: Port to new unit-vector defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik a80d159b07 t/ht: Port to using unit-vector defines. 2021-04-26 22:38:42 +00:00
Ryan Pavlik 19a1228bd2 xrt: Add unit vector defines for xrt_vec3 2021-04-26 22:38:42 +00:00
Ryan Pavlik 3cfaa2ea9f st/oxr: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik 48d043796c d/vive: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik c3ce7f33a0 d/ht: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik 06eab724ec d/remote: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik fde3e631cf d/qwerty: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik 85ea0f8f78 d/oh: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik 71fabf50c5 d/north_star: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik 2dd81f53e3 comp: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik 6f46fcc251 aux/vive: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik 20053252aa m/space: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik cb8925ae04 u/ht: Port to using new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik edc6490d74 a/math: Port to using the new zero/identity defines 2021-04-26 22:38:42 +00:00
Ryan Pavlik 8c0aabfc0d xrt: Add definitions for zero/identity initializers for pose-related structs. 2021-04-26 22:38:42 +00:00
Ryan Pavlik e44c6d56c7 d/wmr: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik 3b0a6a558c d/vive: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik 2d47c496e6 d/survive: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik 6682bb0291 d/hdk: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik 52c00436c7 d/remote: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik 89895be83b d/psvr: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik 7c5342efe2 d/oh: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik 2774b3375f d/north_star: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik d45e13642e d/dummy: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik f4a1c5344b d/android_sensors: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik 2adbde4673 a/util: Add u_device_get_view_pose helper function.
I saw many, many exact copies of this function in the code: good to de-duplicate them.
2021-04-26 22:38:42 +00:00
Jakob Bornecrantz 41ad1dcf99 c/main: Better Vulkan error printing 2021-04-26 22:56:08 +01:00
Jakob Bornecrantz 8c26be37ae u/ft: Warn when missing frames 2021-04-26 22:55:41 +01:00
Jakob Bornecrantz 159eeb81a7 c/main: Pass in preferred dimensions to create images
Fixes #120
2021-04-26 20:28:32 +00:00
Jakob Bornecrantz 9c4b41f58e c/main: Assert that preferred dimensions are somewhat valid 2021-04-26 20:28:32 +00:00
Jakob Bornecrantz 2efd2f543f c/main: Tidy code in comp_target_swapchain (NFC) 2021-04-26 20:28:32 +00:00
Jakob Bornecrantz 5915318654 c/main: Clarify in code that it is preferred dimensions (NFC) 2021-04-26 20:28:32 +00:00
Jakob Bornecrantz ceb6c8b3fe c/main: Remove trailing newline in error message (NFC) 2021-04-26 20:28:32 +00:00
Jakob Bornecrantz 846a663942 c/main: Make instance extension list more readable (NFC) 2021-04-26 20:28:32 +00:00
Jakob Bornecrantz 64093dfaaf c/main: Expose more formats 2021-04-26 20:26:30 +01:00
Jakob Bornecrantz a377fb135f c/client: Vulkan formats are listed as numbers not hex 2021-04-26 18:52:31 +00:00
Jakob Bornecrantz c1d18f9b25 c/client: Add support for more formats in GL 2021-04-26 18:52:31 +00:00
Ryan Pavlik 0868a90a1f gradle: Only forward EIGEN3_INCLUDE_DIR definition if we actually have it set. 2021-04-26 14:27:21 +00:00
Ryan Pavlik 3df2708a5d st/gui: Add missing copyright header to file 2021-04-26 14:08:57 +00:00
Ryan Pavlik 6d4b098e65 t/steamvr_drv: Add license sidecar files 2021-04-26 14:08:57 +00:00
Christoph Haag 08c91d4136 st/oxr: Fix printing of the format in error message 2021-04-26 14:54:30 +02:00
Boris-Chengbiao Zhou d05aa9a458 aux/vk: Extend the correct structure for VK_EXT_global_priority 2021-04-24 17:50:18 +02:00
Jakob Bornecrantz 1ef79820e6 d/wmr: Clarify struct layout (NFC) 2021-04-23 22:48:56 +01:00
Jakob Bornecrantz 0807ce6ddd d/wmr: Only take the lock once per received packet 2021-04-23 22:47:40 +01:00
Jakob Bornecrantz 13d127035b d/wmr: Remove raw_accel and raw_gyro fields (NFC) 2021-04-23 19:06:05 +01:00
Jakob Bornecrantz 1b4b180e61 d/wmr: Do prediction when returning poses 2021-04-23 18:24:13 +01:00
Jakob Bornecrantz a41a869c71 d/wmr: Rename variables and tidy code (NFC) 2021-04-23 14:50:58 +01:00
Christoph Haag 2b70189b45 d/wmr: log at least one space in trace log
Fixes warnings

../src/xrt/drivers/wmr/wmr_hmd.c:83:16: warning: zero-length gnu_printf format string [-Wformat-zero-length]
   83 |  WMR_TRACE(wh, "");
      |                ^~
2021-04-22 02:41:48 +02:00
Jakob Bornecrantz 741dcbdf40 ipc: Return XRT_ERROR_IPC_SESSION_NOT_CREATED if so is the case 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 5627849135 ipc: More trace_marker functions 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 3953321129 ipc: Return error from ipc_call_session_create in create_native_compositor 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz c49abf9103 ipc: Print out all error messages, and values 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 576ff7d252 xrt: Add new IPC session not created error 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 5105148c45 xrt: Correct error number 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 7af531a6c5 c/main: Refactor so we can do an early acquire 2021-04-21 17:56:29 +00:00
Jan Schmidt bc4661aa48 wmr: Don't start reading thread until setup is complete.
Make sure the headset struct is fully configured before
starting the reading thread, otherwise we can get a crash if an
IMU update arrives for processing before the 3dof fusion is
ready.
2021-04-22 03:39:16 +10:00
Ryan Pavlik 4488699e55 d/ultraleap_v2: Add missing copyright/license header, reflow, and fix markdownlint warnings. 2021-04-21 11:14:49 -05:00
Christoph Haag 341fa45eda ipc: Print socket filename and errno in error message 2021-04-20 16:04:26 +02:00
Christoph Haag 885a668a03 d/oh: Fix number of inputs for generic controller
fixes memory corruption
2021-04-20 12:43:56 +02:00
nima01 027ce21bd5 d/wmr: Initial 3DoF WinMR driver
Only supports HP Reverb G1 and G2 for now.

Squash of the following commits:

Initial boilerplate code for HP Reverb G1 driver implementation
Detect and open MS HoloLens Sensors interface
Power up HMD display when headset is detected, and som general code cleanup
Add Reverb G2 PID
reverb_g1: Fix defines
reverb_g1: Run clang format
wmr: Rename Reverb G1 driver to WMR driver
d/wmr: Code style
d/wmr: Flesh out driver a bit more
d/wmr: Code style
Add basic 3dof rotational tracking
d/wmr: Code style
d/wmr: More tidy
xrt: Remove XRT_DEVICE_REVERB_G1
d/wmr: Even more tidy
d/wmr: Changes for Reverb G2
d/wmr: Fixes since last commit
wmr: Fix the meson build and auto-enable the driver
d/wmr: Sleep for compositor to get modes
d/wmr: Use os_hid for control device
d/wmr: Remove hidapi as a dependancy
d/wmr: Move sensor reading to own thread and fix locking
d/wmr: Read from control device and handle more unknown messages
d/wmr: Decode IPD value from control device
d/wmr: Remove all left over dummy driver fields

Co-author: nima01 <nima_zero_one@protonmail.com>
Co-author: Jakob Bornecrantz <jakob@collabora.com>
Co-author: Jan Schmidt <jan@centricular.com>
2021-04-19 13:33:01 +00:00
Jakob Bornecrantz 0058525457 util: Depend on bindings 2021-04-19 14:26:51 +01:00
Christoph Haag c47775a95d comp: Fix warning after Vulkan 1.2.174 VK_NULL_HANDLE change
../src/xrt/compositor/main/comp_layer_renderer.c:317:17: warning: initialization of 'unsigned int' from 'void *' makes integer from pointer without a cast [-Wint-conversion]
  317 |      .subpass = VK_NULL_HANDLE,
      |                 ^~~~~~~~~~~~~~
2021-04-19 13:04:59 +02:00
Christoph Haag 686d12d66f p/prober: Print info for applied tracking override 2021-04-19 12:53:47 +02:00
Christoph Haag 26d93c52df d/multi: Use supplied pose input name enum 2021-04-19 12:53:47 +02:00
Christoph Haag 471b876725 u_config_json: Load tracking override pose input name 2021-04-19 12:53:47 +02:00
Christoph Haag 664c103a3e u_config_json: Store tracking override pose input name 2021-04-19 12:53:47 +02:00
Christoph Haag fa79451858 build/cmake: link generated bindings to aux_util 2021-04-19 12:53:47 +02:00
Christoph Haag cffd009fe9 st/gui: Add tracker pose input name selection 2021-04-19 12:53:46 +02:00
Christoph Haag e9eba9a2b4 aux/bindings: Generate char* <-> enum for all used inputs 2021-04-19 12:53:14 +02:00
Jakob Bornecrantz daff92a275 c/main: None functional refactor of renderer.
Not ment to change the functionallity of the code only reflow the code.
2021-04-17 00:12:22 +01:00
Christoph Haag 598c1a3b56 d/ohmd: Only set output name if there is an output
This needs to be revisited after OpenHMD gets a proper API for haptic feedback.

closes #119
2021-04-16 16:41:44 +02:00
Jakob Bornecrantz 5d605c7b3f c/main: Do not create images when initing swapchain. 2021-04-16 02:27:22 +01:00
Ryan Pavlik 1521953813 c/main: Re-arrange comp_renderer to allow late init.
Co-author: Jakob Bornecrantz <jakob@collabora.com>
2021-04-16 02:27:22 +01:00
Ryan Pavlik 1cf39ec2c0 c/main: Add comp_target::has_images, and implement in comp_target_swapchain. 2021-04-16 01:51:05 +01:00
Ryan Pavlik 90192118d0 c/main: Add comp_target::check_ready, and implement in comp_target_swapchain. 2021-04-16 01:45:38 +01:00
Jakob Bornecrantz 780ec4fac9 c/main: Turn debug into spew 2021-04-16 01:45:38 +01:00
Ryan Pavlik 7c2ea1369f c/main: Normalize destroy pattern for comp_renderer. 2021-04-15 23:28:47 +01:00
Ryan Pavlik 70982e9c39 c/main: Remove unimplemented comp_renderer function. 2021-04-15 23:28:47 +01:00
Ryan Pavlik 04c9a7d892 c/main: Normalize comp_layer_renderer_destroy convention. 2021-04-15 23:28:47 +01:00
Ryan Pavlik ffe458fdba c/main: Add comp_layer_renderer docs. 2021-04-15 23:28:47 +01:00
Ryan Pavlik 80da6fe3b8 c/main: Add comp_renderer docs. 2021-04-15 23:28:47 +01:00
Ryan Pavlik ab5f9ae9d8 c/main: Add comp_target docs. 2021-04-15 23:28:47 +01:00
Ryan Pavlik 969c78efbd c/client: Fix comment. 2021-04-15 23:28:47 +01:00
Christoph Haag fd6bd0f592 ipc: Use xdg runtime directory for socket
u_file_get_runtime_dir falls back to /tmp if $XDG_RUNTIME_DIR is not set.

ipc: %t/monado_comp_ipc socket for systemd socket activation
2021-04-15 21:42:06 +00:00
Christoph Haag 4ea68b89a4 xrt: Add u_process, backed by libbsd's pidfile
Delete stale ipc files in ipc server when not already running.

If built without libbsd, fall back to previous behavior of complaining about existing ipc files and exit.
2021-04-15 21:42:06 +00:00
Christoph Haag c92bc0a704 xrt: Add u_file_get_runtime_dir() and u_file_get_path_in_runtime_dir()
Analog to u_file_get_path_in_config_dir.
2021-04-15 21:42:06 +00:00
Jakob Bornecrantz 0e18e1f8b0 d/qwerty: Add SDL include dirs 2021-04-15 21:27:13 +00:00
Jakob Bornecrantz cabaece344 st/oxr: Print value on bad layer type 2021-04-15 21:27:13 +00:00
Jakob Bornecrantz c24a20ce18 t/cli: Fix warnings 2021-04-15 17:38:08 +01:00
Jakob Bornecrantz 74c9531d4f st/oxr: Use right enum for ret check 2021-04-15 17:38:06 +01:00
Jakob Bornecrantz f434de27bd st/gui: Fix warning (false positive) 2021-04-15 17:38:05 +01:00
Jakob Bornecrantz 26756cc52d aux/vk: Fix use free of stack variable and use correct return 2021-04-15 17:38:03 +01:00
Jakob Bornecrantz 05f14461a3 t/psvr: Fix warning 2021-04-15 17:38:01 +01:00
Jakob Bornecrantz 898bf15a08 u/tf: Use new trace marker helpers 2021-04-14 01:55:59 +00:00
Jakob Bornecrantz c750447add u/trace_marker: Add render timing support 2021-04-14 01:55:59 +00:00
Jakob Bornecrantz 52d1c4d834 u/trace_marker: Add json writing helpers 2021-04-14 01:55:59 +00:00
Jakob Bornecrantz 654043ede5 ipc: Remove stale todo 2021-04-13 23:21:14 +01:00
Jakob Bornecrantz c8cde9c447 ipc: Set correct reference count on swapchain 2021-04-13 23:21:14 +01:00
Jakob Bornecrantz 7dc132a207 c/client: Set correct reference on swapchain 2021-04-13 23:21:14 +01:00
Jakob Bornecrantz 7c77625da9 st/oxr: Set visibility and z_order if multi compositor controls are available 2021-04-13 16:56:17 +00:00
Jakob Bornecrantz f82f289907 u/rt: Also print what kind of point we are marking when tracing 2021-04-13 16:56:17 +00:00
Jakob Bornecrantz b48cdfed44 c/main: Fix xrt_compositor::wait_frame 2021-04-13 16:56:17 +00:00
Jakob Bornecrantz 4507804819 c/multi: Implement xrt_compositor::wait_frame 2021-04-13 16:56:17 +00:00
Ryan Pavlik cb2710db87 comp: Improve docs on comp_target_swapchain 2021-04-13 11:46:53 -05:00
Ryan Pavlik 1e1fe01374 comp: Doc improvements. 2021-04-13 11:46:53 -05:00
Ryan Pavlik 701ea290d0 os: Fix comment typo. 2021-04-13 11:46:53 -05:00
Ryan Pavlik 64c56ef8d0 editorconfig: Update 2021-04-13 11:46:53 -05:00
Ryan Pavlik 65a7b490a8 android: Add support for casting Context to Activity 2021-04-13 11:46:53 -05:00
Ryan Pavlik 43e0206abc st/oxr: Implement loader init extension. 2021-04-13 11:33:50 -05:00
Ryan Pavlik 142a9b4cb5 st/oxr: Add XR_KHR_loader_init and ..._android extension 2021-04-13 11:33:50 -05:00
Jakob Bornecrantz 1b51cbd1a7 aux/vk: Add support for VK_EXT_global_priority 2021-04-12 22:16:31 +00:00
Jakob Bornecrantz 796f3cf792 c/main: Set default logging level to INFO 2021-04-12 22:16:31 +00:00
Jakob Bornecrantz c9c362e16a c/multi: Overwrite stale scheduled frames 2021-04-12 22:16:31 +00:00
Jakob Bornecrantz b0c9f2a1d9 c/multi: Break potential long running tasks into functions for better trace_marker logging 2021-04-12 22:16:31 +00:00
Jakob Bornecrantz 95e95ba9b5 c/render: Tidy mesh shader 2021-04-12 22:16:31 +00:00
iVRy VR 0064989e8b t/psvr: Various fixes and changes
- Fix out of array bounds crash, curr_y can be out of bounds.
- Set tracked bits appropriately.
- Use m_imu_3dof for orientation.
2021-04-12 15:02:16 +00:00
Moses Turner 7cd2a33737 drivers: switch blend mode to array 2021-04-11 04:08:49 -05:00
Moses Turner 36a48bd62b aux/util: switch blend mode to array 2021-04-11 04:08:49 -05:00
Moses Turner c53eba34d0 ipc: switch blend mode to array 2021-04-11 04:08:49 -05:00
Moses Turner 1062ef35fc st/oxr: switch blend mode to array 2021-04-11 04:08:49 -05:00
Moses Turner 6f93b4c718 inc/xrt: switch blend mode to array
In order of how preferred they are.
2021-04-11 04:08:49 -05:00
Ryan Pavlik c906151fb1 util: Fix doxygen warnings 2021-04-09 18:22:42 -05:00
Ryan Pavlik d6d933f20d xrt: Fix doxygen warnings. 2021-04-09 18:16:54 -05:00
Ryan Pavlik 0450e317e1 cmake: prober requires drv_multi now. 2021-04-09 18:16:39 -05:00
Ryan Pavlik 1ce306cb55 cmake: Fix include dir scope for comp_multi 2021-04-09 18:11:46 -05:00
Ryan Pavlik cf08cbba78 aux/vk: Docs for Vulkan native import helpers. 2021-04-09 18:11:52 +01:00
Ryan Pavlik dde274b13e comp: Fix typo. 2021-04-09 18:11:52 +01:00
Ryan Pavlik 322f6d473a util: Don't try to use $HOME or $XDG_CONFIG_HOME on Android. 2021-04-09 18:11:52 +01:00
Ryan Pavlik b56441702c st/oxr: Clean up Android message. 2021-04-09 18:11:52 +01:00
zhibinw d7f0380f53 ipc/android: Dup the socket fd in native side, close the fd on java side. 2021-04-09 16:42:00 +00:00
Christoph Haag e7f82c297a st/oxr: Fix running when only one hand suports hand tracking 2021-04-08 20:32:55 +02:00
Christoph Haag 08e39a1a0e d/survive: Increase device detection timeout
With libsurvive 20127ef1bbb9206c9b429de47b891fc71d9df355 it can take a bit longer for devices to appear.
2021-04-08 19:37:09 +02:00
Jakob Bornecrantz aca09bdebf c/multi: Do not display frames before they are to be displayed
This follows the OpenXR spec that says that a frame might not be
displayed before XrFrameEndInfo::displayTime value.
2021-04-07 15:41:47 +01:00
Jakob Bornecrantz 736b9abdbe u/rt: Print frame period and tidy 2021-04-07 15:41:47 +01:00
Jakob Bornecrantz b68041fb93 u/rt: Tweak IIR alpha numbers 2021-04-07 15:41:47 +01:00
Jakob Bornecrantz 8606eb9d11 u/rt: Adjust app period depending on app time 2021-04-07 01:05:38 +01:00
Jakob Bornecrantz 1b0a9acb56 u/rt: Adjust app time during runtime 2021-04-07 01:04:20 +01:00
Jakob Bornecrantz 8215af5e5c u/rt: Refactor render timing 2021-04-07 01:04:20 +01:00
Jakob Bornecrantz 670906ea0e u/ft: Spelling 2021-04-07 01:04:20 +01:00
Jakob Bornecrantz 971f88f34f u/ft: Rename frame timing functions 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 5dbcca65c5 u/tr: Refactor rendering timing code 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz d745396396 u/ft: Tweak frame timing numbers 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz bcf9b62fc0 ipc: Adopt to new multi client interface 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz f14958f2b0 c/main: Explicitly wait for GPU work to finish 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz bf2a90fec5 c/main: Switch to multi client layer 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 205db10353 c/main: Implement new predict and mark frame functions 2021-04-07 00:50:10 +01:00
Ryan Pavlik 22df47f974 c/main: Port to using u_graphics_sync_unref 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 2035da1ec9 c/main: Implement fence functions 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 086bef8545 c/multi: Add new multi-client helper 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz efdba1602f xrt: Pass along display_time_ns to layer begin 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz f3abddf224 xrt: Add multi session managment interface 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 353c7735bf xrt: Add alternative functions to wait_frame 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 1f3896d729 xrt: Add new error code 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 2ab99b821b xrt: Add compositor fence interface 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 07fb9941b3 aux/vk: Add fence import function 2021-04-07 00:50:10 +01:00
Ryan Pavlik 61c1044089 u/handles: Add graphics sync handle helpers. 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz c876087ee7 u/time: Add helper comparising functions 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 5c15b60cf2 st/oxr: Add more trace markers 2021-04-07 00:50:10 +01:00
Moses Turner 0ef8f55ef1 targets/oxr/sdl2_hack: only do Qwerty things if we are building qwerty driver 2021-04-04 22:38:24 +01:00
Moses Turner b62b6eaef7 c/main: Follow OpenXR spec with blackground colour, tweek no layer colour.
Make background colour completely black if there are layers to display, to
follow OpenXR spec. Make the default background colour darker.
2021-04-04 20:34:35 +01:00
Christoph Haag 2b962a5bfb u_config_json: Create root node on save if no config file loaded
If no config file is loaded, json->root can be uninitialized instead of NULL.

Fixes #117
2021-04-04 21:02:41 +02:00
Jakob Bornecrantz 1b0d67a895 st/gui: Add recording interface 2021-04-03 03:07:21 +01:00
Jakob Bornecrantz fac93948b3 st/gui: Add STB image writing support 2021-04-03 03:07:21 +01:00
Jakob Bornecrantz 30573fb90f a/gst: Add GStreamer helper code
Co-authored-by: Aaron Boxer <aaron.boxer@collabora.com>
2021-04-03 03:07:21 +01:00
Jakob Bornecrantz 2b63fd8078 xrt: Add helper push frame function 2021-04-03 03:07:21 +01:00
Jakob Bornecrantz 98f81734c8 d/vf: Add clock overlay to videotestsource 2021-04-03 03:07:21 +01:00
Jakob Bornecrantz 1155106dc1 d/v4l2: Be more tolorant for long pipelines 2021-04-03 03:07:21 +01:00
Ryan Pavlik d34e1464fd comp: Update file header. 2021-04-02 18:02:10 -05:00
Ryan Pavlik c81ae4670b comp: Properly service Windows message queue. 2021-04-02 17:47:40 -05:00
Ryan Pavlik 607eae4fdd aux/vk: Fix creation of Windows external memory backed image. 2021-04-02 17:29:55 -05:00
Christoph Haag 3a60df33aa d/openhmd: Add support for rift CV1 controllers 2021-04-02 15:48:10 +00:00
Christoph Haag 91a3d8b9cb st/steamvr: Add rift controllers 2021-04-02 15:48:10 +00:00
Christoph Haag 7ce07aeedf st/oxr: Support all known interaction profiles in selection
Remove the default case to generate a compiler warning when new profiles
are missing.
2021-04-02 15:48:10 +00:00
Christoph Haag 85ff0dc73c xrt: Add msft_hand_interaction path to cache and check func 2021-04-02 15:48:10 +00:00
Jakob Bornecrantz 9695e90d95 d/vive: Setup the variable tracking for imu fusion 2021-04-02 16:00:42 +01:00
Jakob Bornecrantz cebc8ebed5 st/oxr: No longer need to work around depth Swapchain on Unreal 2021-04-02 16:00:42 +01:00
Moses Turner 55b86fe815 d/ulv2: Create the driver.
Co-authored-by: Moses Turner <mosesturner@protonmail.com>
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2021-04-01 02:10:33 +02:00
Moses Turner b319371500 d/survive: for now always set xrt_hand_joint_set->is_active to true 2021-04-01 02:02:26 +02:00
Moses Turner 6a833b1131 st/oxr+xrt: add is_active to struct xrt_hand_joint_set to give drivers an easy way to deactivate hands 2021-04-01 02:02:26 +02:00
Moses Turner a027852767 aux/math: implement math_pose_identity. 2021-04-01 02:02:26 +02:00
Moses Turner c776a19e15 aux/math: Implement math_matrix_3x3_multiply. 2021-04-01 02:02:26 +02:00
Moses Turner d54b653751 d/multi: correctly override hand pose for "attached" tracking 2021-04-01 02:02:26 +02:00
Christoph Haag 4061bf7707 d/multi: Add "attached" tracking override type
Example usage: Leap Motion attached to a Northstar headset.
2021-04-01 02:02:26 +02:00
Ryan Pavlik 0139aa1525 comp: Fix conversion warnings 2021-03-31 12:02:41 -05:00
Ryan Pavlik d4c352ef69 comp: Improve Windows errors. 2021-03-31 12:02:41 -05:00
Ryan Pavlik 942091c10d comp: Enable VK_EXT_debug_report extension 2021-03-31 12:02:41 -05:00
Ryan Pavlik 061ae2f7b7 xrt: Fix more narrowing conversion warnings. 2021-03-31 12:02:41 -05:00
Ryan Pavlik 592df37c0f comp: Fix some narrowing conversion warnings 2021-03-31 12:02:41 -05:00
Ryan Pavlik 78301ae5eb comp: Use precise sleeper. 2021-03-31 12:02:41 -05:00
Ryan Pavlik f65635f378 aux/vk: Fix doxygen warning 2021-03-31 12:02:41 -05:00
Ryan Pavlik b3280c5bc1 os/time: Small cleanup. 2021-03-31 12:02:41 -05:00
Ryan Pavlik aa3d1c1f6a os: Add os_precise_sleeper.
Mostly to be able to use a timer on Windows.
2021-03-31 12:02:41 -05:00
Ryan Pavlik 47bf17a0cc os: Improve comment and prototype for os_nanosleep 2021-03-31 12:02:41 -05:00
Ryan Pavlik 0717975853 os: Improve timestamp retrieval on Windows. 2021-03-31 12:02:41 -05:00
Ryan Pavlik 00915cab0f os: Add caveats to some timespec conversion functions. 2021-03-31 12:02:41 -05:00
Ryan Pavlik ddc9b00d14 os: Adjust how we compute the timeout for a semaphore.
Preparation for overhaul of timing on Windows.
2021-03-31 12:02:36 -05:00
Ryan Pavlik b3772e2710 cmake: Support multi-config generators 2021-03-30 20:46:00 +00:00
Ryan Pavlik aefd8c0697 ipc/android: Be sure to init the mutexes. 2021-03-30 20:46:00 +00:00
Ryan Pavlik 58ebd7ee20 xrt: Adjust how we define ssize_t on MSVC 2021-03-30 20:46:00 +00:00
Ryan Pavlik 4e11abc06b aux/vk: Fix warning about narrowing conversion. 2021-03-30 20:46:00 +00:00
Ryan Pavlik ace8dc8c46 comp: clean up comment 2021-03-30 20:46:00 +00:00
Ryan Pavlik 8553b5f901 comp/vk_client: Be sure to init/de-init the mutexes in the vulkan bundle 2021-03-30 20:46:00 +00:00
Ryan Pavlik 3f2b09ae54 comp: Comment cleanup 2021-03-30 20:46:00 +00:00
Ryan Pavlik be5a273659 comp/main: Use the new vk_bundle mutex functions. 2021-03-30 20:46:00 +00:00
Ryan Pavlik adb5eefb86 aux/vk: Add functions to initialize and clean up mutexes in the vk_bundle 2021-03-30 20:46:00 +00:00
Jakob Bornecrantz 6ba27de305 m/mathinclude: Apperently _USE_MATH_DEFINES was not enough 2021-03-30 21:27:29 +01:00
Jakob Bornecrantz 6f10f474fa t/psvr: Ensure that m_mathinclude.h is included 2021-03-30 21:27:29 +01:00
Jakob Bornecrantz 967c27060e st/prober: Change log env variable and set default level to info 2021-03-30 21:27:29 +01:00
Jakob Bornecrantz 083e4f5108 u/logging: Fix first global log message not getting correct level, add comments 2021-03-30 19:23:41 +01:00
Mateo de Mayo 5c6158cc8b d/qwerty: Implement controller pose reset 2021-03-29 15:42:01 -03:00
Mateo de Mayo 5e6c4b63a5 d/qwerty: Implement controller parenting to HMD
Although, it only works for the qwerty HMD.
2021-03-29 15:42:01 -03:00
Mateo de Mayo 7f00ca3da2 d/qwerty: Improve selection of default controller 2021-03-29 15:41:59 -03:00
Mateo de Mayo 8b81afeb59 d/qwerty: Implement haptic output 2021-03-29 15:41:25 -03:00
Mateo de Mayo 4ea696bfdd d/qwerty: Implement select and menu click inputs 2021-03-29 15:41:25 -03:00
Mateo de Mayo 582a287dd4 d/qwerty: Use u_logging.h with QWERTY_LOG env var 2021-03-29 15:41:25 -03:00
Mateo de Mayo ef74e24abe d/qwerty: Add variable tracking widget to UI 2021-03-29 15:41:25 -03:00
Mateo de Mayo a1b70c746b d/qwerty: Add qwerty_system for driver management 2021-03-29 15:41:25 -03:00
Mateo de Mayo f8f14a1d9e d/qwerty: Move left/right controllers with CTRL/ALT
In qwerty_sdl.c the u_device_assign_xdev_roles function is used for
knowing which devices are being used by the user. These could
be other physical devices. And as such the idea of a default focused
device is introduced and depends upon which devices the user already
has. With this change qwerty devices should be properly introduced
to fill any device the user may not have.
2021-03-29 15:41:25 -03:00
Mateo de Mayo 62e05f267a d/qwerty: Add still qwerty controllers
By making an initial inheritance hierarchy, thus separating qwerty_hmd
from qwerty_controller, both inheriting from qwerty_device
2021-03-29 15:41:25 -03:00
Mateo de Mayo e13a6fc2fd d/qwerty: Add QWERTY_ENABLE environment variable 2021-03-29 15:41:25 -03:00
Mateo de Mayo 183ee4f4ee d/qwerty: Implement mouse input and sprinting 2021-03-29 15:41:25 -03:00
Mateo de Mayo ec340fabe2 d/qwerty: Implement WASDQE and arrow keys HMD movement 2021-03-29 15:41:25 -03:00
Mateo de Mayo 12d52193da d/qwerty: Connect the debug UI to the Qwerty driver
It was necessary to add a list of xdevs to oxr_sdl2_hack_start and to
populate such list from its callees.
That includes sdl2_program.gui_program->xdevs which was not being filled
for the monado-service target.
2021-03-29 15:41:25 -03:00
Mateo de Mayo e6db1fae74 d/qwerty: Implement still HMD creation 2021-03-29 15:41:25 -03:00
Mateo de Mayo 0340ae3cc8 d/qwerty: Add Qwerty driver initial boilerplate
The Qwerty driver will emulate an HMD and controllers through the use
of mouse and keyboard, and in particular, using the SDL key events
generated from the debug GUI.
2021-03-29 15:41:25 -03:00
Ryan Pavlik 98886d5317 d/multi: Fix contagious doxygen warning. 2021-03-26 17:10:53 -05:00
Ryan Pavlik b93b082bd3 aux: Fix doxygen warnings 2021-03-26 17:10:53 -05:00
Ryan Pavlik f82d0f484f ipc: Fix doxygen warning 2021-03-26 17:10:53 -05:00
Ryan Pavlik 08b0fd257f st/oxr: Fix doxygen warning 2021-03-26 17:10:53 -05:00
Ryan Pavlik 6fc4cc0cc9 st/prober: Fix doxygen warnings 2021-03-26 17:10:53 -05:00
Ryan Pavlik 7b92d212a2 comp: Fix doxygen warnings 2021-03-26 17:10:53 -05:00
Ryan Pavlik 4004402c40 aux/vk: Wrap statement defines in do {} while (0) 2021-03-26 17:10:53 -05:00
Ryan Pavlik 20468070fa ipc: De-duplicate member for simplicity and to avoid Doxygen warning 2021-03-26 17:10:47 -05:00
Ryan Pavlik 3414f62ccf aux: fix or silence warnings 2021-03-26 17:06:17 -05:00
Ryan Pavlik b57d52f373 comp/main: Fix warnings 2021-03-26 17:06:17 -05:00
Ryan Pavlik a830f46db0 st/prober: Fix warnings 2021-03-26 17:06:17 -05:00
Ryan Pavlik 8ebd97330d st/steamvr: Fix warnings 2021-03-26 17:06:17 -05:00
Ryan Pavlik bd00c7ffd3 comp/main: Deal with MSVC not liking static array sizes being non-constant. 2021-03-26 17:06:17 -05:00
Ryan Pavlik 0140ea34b6 comp/main: Implement consumption of sync handle on Windows 2021-03-26 17:06:17 -05:00
Ryan Pavlik b147f2ecd4 a/util: Non-linux implementation of u_file 2021-03-26 17:06:17 -05:00
Ryan Pavlik c00884e827 cmake: aux/vk depends on aux/os 2021-03-26 17:06:17 -05:00
Ryan Pavlik 4ed3d21b09 a/util: Stub out trace marker on non-Linux for now. 2021-03-26 17:06:17 -05:00
Ryan Pavlik e5c193bcd0 aux/util: Silence warnings on MSVC 2021-03-26 17:05:56 -05:00
Christoph Haag a991e66b85 u_vive: Fix debug level of printing acc_bias 2021-03-24 18:45:00 +00:00
Christoph Haag 1f25acfa94 d/vive: remove duplicate range record error message 2021-03-24 18:45:00 +00:00
Christoph Haag a2b49138e7 d/vive: change imu range report error->info 2021-03-24 18:45:00 +00:00
Christoph Haag e8999b06c8 st/p: Change tracking override target/tracker not found error->warning 2021-03-24 18:45:00 +00:00
Christoph Haag 08db19beca u_config_json: Change node not found error->info
As our config grows it will happen more often that users won't have all possible nodes.
2021-03-24 18:45:00 +00:00
Christoph Haag 3ba9a9411a d/vive: change config start report error->info
And clarify the message that it happens for example for powered off controllers.
2021-03-24 18:45:00 +00:00
Christoph Haag de6d2a888a ipc: Change server exiting error->info 2021-03-24 18:45:00 +00:00
Christoph Haag f6210be44a d/survive: Change event for unknown object error->info 2021-03-24 18:45:00 +00:00
Christoph Haag f9c2ab7ed7 d/ht: Change hand tracking not set up error->debug 2021-03-24 18:45:00 +00:00
Christoph Haag 030230eba9 st/p: change PSVR/PSMV not set up error->info 2021-03-24 18:45:00 +00:00
Christoph Haag 8f16118020 u_config_json: Remove bogus "No tracking node" messages
* open_tracking_settings() already reports missing tracking nodes.
* open_tracking_settings() can also fail for other reasons
2021-03-24 18:45:00 +00:00
Christoph Haag 45d889e390 u_config_json: Make missing tracking node messages friendlier 2021-03-24 18:45:00 +00:00
Christoph Haag 054850de76 u_config_json: Remove duplicated is_json_ok code 2021-03-24 18:45:00 +00:00
Christoph Haag 2959747221 u_config_json: clarify json not parsed error message 2021-03-24 18:45:00 +00:00
Christoph Haag f0132eb997 u_config_json: change no config file warning->info
Running without a config file is fully supported, no reason to warn users.
2021-03-24 18:45:00 +00:00
Jakob Bornecrantz 63f5c86257 xrt: Make xrt_swapchain be reference counted 2021-03-24 17:50:08 +00:00
Christoph Haag aab94e7add build/meson: Allow disabling tracking
The tracking code uses ifdefs with XRT_HAVE_OPENCV.
2021-03-24 18:05:51 +01:00
Christoph Haag dad5c6d5d8 u_config_json: Fix saving when no config file exists
If json->root was null, it would write a config file containing only (null).
2021-03-24 17:33:46 +01:00
Jakob Bornecrantz e066f6a828 st/gui: Fix warning 2021-03-24 14:09:13 +00:00
Jakob Bornecrantz 67339a4d7c d/remote: Fix warning 2021-03-24 14:09:13 +00:00
Christoph Haag 2ac4ff84ec aux/util: Fix comment for u_device_setup_tracking_origins 2021-03-23 19:05:35 +00:00
Christoph Haag 857b831e30 d/illixr: Add driver name 2021-03-22 01:25:44 +01:00
Jakob Bornecrantz a71b3d35d1 m/3dof: Add assert for timestamp paranoia 2021-03-17 01:10:02 +00:00
Jakob Bornecrantz c73146c6fd d/psvr: Ensure that timestamps are always after each other 2021-03-17 01:10:02 +00:00
Jakob Bornecrantz 0452c69caa c/main: Detect when config is needed but missing 2021-03-12 00:06:36 +00:00
Jakob Bornecrantz 6c3ab4151a st/oxr: Handle XRT_ERROR_EGL_CONFIG_MISSING 2021-03-12 00:06:36 +00:00
Jakob Bornecrantz 0571e0337e xrt: Add XRT_ERROR_EGL_CONFIG_MISSING error 2021-03-12 00:06:36 +00:00
Jakob Bornecrantz 8be59f73ec xrt: Return xrt_result_t from xrt_gfx_provider_create_gl_egl 2021-03-12 00:06:36 +00:00
Jakob Bornecrantz 8992f79257 c/main: Be even more paranoid about display timing code 2021-03-10 17:53:36 +00:00
Jakob Bornecrantz dac5bc0ea5 u/timing: Deal slightly better when timing info appears to time travel 2021-03-10 17:53:36 +00:00
Jakob Bornecrantz d71ccc39ce u/timing: Add when_predict_ns on first frame 2021-03-10 17:53:36 +00:00
Christoph Haag 7b95330bb5 ipc: Print information to delete socket file 2021-03-10 02:02:44 +01:00
Christoph Haag 2a02130301 build/meson: Install systemd service file with meson 2021-03-10 01:58:18 +01:00
Christoph Haag 851a600a6a build/meson: Add systemd feature option for monado-service 2021-03-10 01:57:55 +01:00
Christoph Haag 0adcc179c0 xrt: Fix typo in u_file 2021-03-10 01:56:07 +01:00
Jakob Bornecrantz a6da40de50 c/main: Remove unused fields
Tested-by: Boris-Chengbiao Zhou <bobo1239@web.de>
2021-03-09 18:16:01 +00:00
Jakob Bornecrantz 003b70d05e c/main: Use correct predicted display time for rendering
Closes #114

Reported-by: Boris-Chengbiao Zhou <bobo1239@web.de>
Tested-by: Boris-Chengbiao Zhou <bobo1239@web.de>
2021-03-09 18:15:52 +00:00
Christoph Haag eb594409dd xrt: Increase number of autoprobers to 16
We actually have a total of 11 auto probers.
2021-03-09 14:16:28 +01:00
Christoph Haag a887ddcc3c d/hdk: Use a mutex for get_tracked_pose 2021-03-09 12:39:12 +00:00
Christoph Haag 5c014193f7 d/vive_controller: Use a mutex for get_tracked_pose and update_inputs 2021-03-09 12:39:12 +00:00
Christoph Haag aa65480607 d/vive: Use a mutex for get_tracked_pose 2021-03-09 12:39:12 +00:00
Christoph Haag 484d63a4eb d/survive: Use thread for processing events
Due to an oversight libsurvive events were only processed when inputs were updated.
If only triggering event processing when an event is needed, we would need to process
a random number of events, causing random overhead.

Rather, follow the model of other drivers and process events in a thread.
This required creating a local copy of the xrt_input arrays.

Fixes #113
Fixes !679

v2: Use a mutex for get_tracked_pose and update_inputs
2021-03-09 12:39:12 +00:00
Christoph Haag 1e24602ca0 st/prober: fix off by one in reallocating list of disabled drivers 2021-03-09 13:22:41 +01:00
Jakob Bornecrantz 966b4b7048 t/service: Enable tracing 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz 7524239b1f t/oxr: Enable tracing 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz b4f9d07abf ipc: Trace markers 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz f754fb583f st/oxr: Trace markers 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz 8c724d67d4 c/main: Trace markers 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz fac1ce4a5a c/main: Hookup up new frame timing code 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz a40c2e7d50 aux/vk: Load VK_GOOGLE_display_timing functions 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz e2104a4f31 t/cli: Add trace piping support 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz 049f6be351 u/timing: Add frame timing code 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz 3077660f1d u/tracing: Add trace marker code 2021-03-08 11:20:52 +00:00
Mateo de Mayo 75e908552f doc: Fix missing entities from modules documentation 2021-03-06 20:34:35 -03:00
Christoph Haag 12ad9a6766 d/ns: Remove tracker logic in favor of tracking overrides 2021-03-02 19:43:19 +01:00
Christoph Haag 44e375dd8a aux/util: Save tracking override config 2021-03-02 19:43:19 +01:00
Christoph Haag c077788436 aux/util: Store calibration config non-destructively
On save
* delete only nodes pertaining to calibration
* add new calibration nodes
* write config file
2021-03-02 19:43:19 +01:00
Christoph Haag de169bf575 gui: Add gui for tracking overrides 2021-03-02 19:43:19 +01:00
Christoph Haag 5e4c62c8aa aux/util: Move json config parsing to aux/util 2021-03-02 19:43:19 +01:00
Christoph Haag aa9298f70d aux/util: Move read_content to u_file 2021-03-02 19:43:19 +01:00
Christoph Haag ff16eab9df xrt: implement multi device wrappers for tracking overrides
Example config ~/.config/monado/config_v0.json

{
	"active": "tracking",
	"tracking":	{
		"version":	0,
		"tracking_overrides": [
			{
				"target_device_serial": "LHR-E8CC625B",
				"tracker_device_serial": "LHR-1D80A098",
				"offset": {
					"orientation": {
						"x": 0,
						"y": 0,
						"z": 0,
						"w": 1
					},
					"position": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}
			}
		]
	}
}

v2: Add multi device wrapper
2021-03-02 19:43:19 +01:00
Christoph Haag 13db11901c d/rs: Add prober and create xrt_device for rs 2021-03-02 19:43:19 +01:00
Christoph Haag 6c6c70f700 d/rs: exit early if no realsense device is connected
Previously we only exited after rs2_pipeline_start_with_config timed out.
2021-03-02 19:27:36 +01:00
Christoph Haag aa7b3978b7 d/rs: Initialize offset to identity 2021-03-02 19:27:36 +01:00
Christoph Haag 9332bb04c8 st/prober: Disable vive driver when we have survive
Unless survive is disabled via config, then don't disable vive.
2021-03-02 17:50:19 +00:00
Christoph Haag ebd4b8eae4 st/prober: Add ability to skip drivers
Only for drivers loaded with probers and autoprobers for now.

Example config:

{
	"disabled": [
		"survive"
	]
}
2021-03-02 17:50:19 +00:00
Christoph Haag 279520c302 d/survive: Use autoprober interface 2021-03-02 17:50:19 +00:00
Christoph Haag a89f32470e cli: Print built in drivers from driver names
for probers and auto probers only for now
2021-03-02 17:50:19 +00:00
Christoph Haag 58e68e0a4a st/prober: Allow querying entries and autoprobers 2021-03-02 17:50:19 +00:00
Christoph Haag 37c96ee7fb xrt: Add a static driver_name to probers 2021-03-02 17:50:19 +00:00
Christoph Haag 6914bae78e d/ns: Add autoprober name 2021-03-02 17:50:19 +00:00
Christoph Haag 9ea02ac032 d/vive: Give consistent name to HMD 2021-03-02 17:50:19 +00:00
Christoph Haag 6e852ec9a0 d/survive: Give consistent name to HMD 2021-03-02 17:50:19 +00:00
Christoph Haag 92d94ddcc7 d/psvr: Don't report created device if creation failed 2021-03-02 17:50:19 +00:00
Christoph Haag ea404a265b st/prober: Print name of misbehaving autoprober 2021-03-02 17:50:19 +00:00
zhibinw 57b42cad9a ipc/android: Start client listener thread when get new fd from client. 2021-03-02 14:02:54 +08:00
Jakob Bornecrantz d6eda06ae2 doc: Remove md prefix from all Markdown pages 2021-03-01 19:42:52 +00:00
Jakob Bornecrantz ecfec5028e xrt: Add doccomment and fix doxygen error 2021-03-01 19:31:25 +00:00
Mateo de Mayo 116d77f52e st/prober: Allow autoprobe function to create more than one device. 2021-02-28 15:27:52 +00:00
zhibinw f55c0d7bfb t/service-lib: Remove unused header. 2021-02-27 09:55:26 +08:00
Ryan Pavlik 1963e313b1 ipc/android: Switch to using client push mutex to avoid cond var wait in server. 2021-02-24 15:25:28 -06:00
Ryan Pavlik 12e07bdb69 ipc/android: Fix potential lost signal to client 2021-02-24 15:23:26 -06:00
Ryan Pavlik ccf6ac4b94 ipc/android: Remove old workaround 2021-02-24 15:23:26 -06:00
Ryan Pavlik 01fbbc4ed5 ipc/server, t/server_lib: Implement mainloop code for Android, using a pipe. 2021-02-24 15:23:26 -06:00
Jakob Bornecrantz 5e06acf2ad t/cli: Tidy 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz 48c2fe1f87 c/main: Refactor out wait idle to own function 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz 616b7f6ae0 c/main: Tidy comp_target_swapchain 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz 77baa0c6ca u/ht: Sort build files 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz 7460ae54f4 u/timing: Rename files 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz b810c2df0a u/timing: Improve render code, predict when frame should be delivered 2021-02-24 14:33:30 +00:00
Jakob Bornecrantz 55c7690185 u/time: Make defines more readable and add more defines 2021-02-24 13:55:07 +00:00
Jakob Bornecrantz 69eebb49e2 u/time: Use double for time conversion 2021-02-24 04:14:51 +00:00
Jakob Bornecrantz 5291b8d2bb ipc: Refactor out broadcasting of timings 2021-02-24 01:23:55 +00:00
Jakob Bornecrantz 97d7902f94 targets: Show implot demo 2021-02-22 23:20:05 +00:00
Jakob Bornecrantz 4cf20b0dd3 imgui: Add implot demo 2021-02-22 23:20:05 +00:00
Ryan Pavlik f15a14b193 ipc/server: Factor out the mainloop code that may vary between platforms 2021-02-22 17:03:16 -06:00
Ryan Pavlik 0644521da9 d/ht: Fix typo in docs
Fixes doxygen warning.
2021-02-22 16:50:00 -06:00
Ryan Pavlik b7cc966cb0 aux/vk: Add docs to helpers 2021-02-22 16:50:00 -06:00
Moses Turner daff282946 ipc: don't drop the blend mode on the floor 2021-02-19 17:47:07 -06:00
Christoph Haag 4d1b5f033a d/vive: Add controller rotation pose prediction 2021-02-17 19:59:59 +01:00
Christoph Haag ab70115a89 d/vive: Add HMD rotation pose prediction 2021-02-17 19:59:52 +01:00
Jakob Bornecrantz 5b61a9b905 st/oxr: Fix crash 2021-02-16 22:53:49 +00:00
Jakob Bornecrantz 2849c7c5ae st/oxr: Quirk UnrealEngine 2021-02-16 17:55:23 +00:00
Jakob Bornecrantz 4ef6211286 st/oxr: Detect UnrealEngine 2021-02-16 17:55:23 +00:00
Jakob Bornecrantz 0ee32dfa21 st/oxr: Log application info 2021-02-16 17:55:23 +00:00
Jakob Bornecrantz 84486aa2b9 ipc/server: Print application info 2021-02-16 17:55:23 +00:00
Jakob Bornecrantz cfed1c3607 st/oxr: It's not a error to pass in XrSystemHandTrackingPropertiesEXT
...when the hand tracking extension is not enabled.
2021-02-16 07:04:40 +00:00
Christoph Haag def0bef533 build/meson: Explicitly depend on generated binding header
fixes header not being generated on alpine
2021-02-15 22:04:38 +01:00
Christoph Haag b77630ba57 d/remote: define _BSD_SOURCE for SOL_TCP on musl 2021-02-15 22:04:38 +01:00
Jakob Bornecrantz 78dbbec891 st/prober: Improve xrt_prober_destroy 2021-02-15 16:13:07 +00:00
Jakob Bornecrantz 2c012374da st/prober: Add copydocs 2021-02-15 16:13:07 +00:00
Jakob Bornecrantz a6fe8e8b1e st/prober: Clarify xrt_prober_get_string_descriptor 2021-02-15 16:13:06 +00:00
Jakob Bornecrantz a55c6f3cc4 st/prober: Tidy and add doc-comment 2021-02-15 16:13:00 +00:00
Jakob Bornecrantz 165df31d77 st/prober: Use U_LOG_RAW for dump function 2021-02-15 15:13:51 +00:00
Christoph Haag d56834f7a9 d/psmv: Use bluetooth mac as serial 2021-02-15 14:55:10 +01:00
Christoph Haag c6695b7a27 prober: return XRT_PROBER_STRING_SERIAL_NUMBER for bluetooth devices
Using the bluetooth id gotten from uevent.
2021-02-15 14:54:54 +01:00
Christoph Haag 42996d6b1c os/hid: Add get_physical_address() 2021-02-12 02:44:00 +01:00
Christoph Haag a4bde60e08 st/steamvr: Use serial number for controller id 2021-02-12 00:38:52 +01:00
Christoph Haag d5e74b959a d/vive: Improve naming scheme 2021-02-12 00:38:52 +01:00
Christoph Haag c66aea3311 d/survive: Improve device naming scheme 2021-02-12 00:38:52 +01:00
Christoph Haag c67a6ccd34 xrt: Add xrt_device::serial for uniquely identifying devices if possible
d: Make controller serials unique by appending number

For drivers that do not (yet) know a persistent unique id per device.
2021-02-12 00:38:51 +01:00
Christoph Haag ea6d6bfb3f d/rs: Use XRT_INPUT_GENERIC_TRACKER_POSE instead of XRT_INPUT_GENERIC_HEAD_POSE 2021-02-12 00:37:43 +01:00
Christoph Haag 9760f6d123 d/survive: Create devices for trackers
They can not be queried yet.
2021-02-12 00:37:43 +01:00
Christoph Haag 47ed26a5e8 xrt: Add XRT_INPUT_GENERIC_TRACKER_POSE 2021-02-11 20:54:31 +01:00
Christoph Haag 7e1408787a d/survive: Update to new API and clean up
* Remove survive_device.{ctrl,hmd}::variant and use variant from config
* Use SurviveSimpleEventType_ConfigEvent to find connected devices
* Use SurviveSimpleEventType_PoseUpdateEvent for pose updates
2021-02-11 20:54:31 +01:00
Christoph Haag 3a02610e77 d/vive: Remove vive_controller_device::variant and use variant from config 2021-02-11 20:54:31 +01:00
Christoph Haag f93209a1ed d/vive: Remove vive_device::variant and use variant from config 2021-02-11 20:54:31 +01:00
Christoph Haag 2d814dab57 aux/vive: Parse hmd variant and add various model strings
Model strings collected from libsurvive, survive_default_devices.c
2021-02-11 20:54:31 +01:00
Ryan Pavlik d8aad83932 d/ht: Fix mistaken 2029 copyright date. 2021-02-11 09:28:12 -06:00
Christoph Haag cc81174b70 comp: Fix VkDisplayKHR direct mode build without libx11-xcb 2021-02-10 22:02:30 +01:00
Ryan Pavlik 8f0c20093c ipc/android: Specify full qualified service name 2021-02-10 16:09:12 +00:00
Ryan Pavlik c65ce85fe1 ipc/android: Clean up MonadoService 2021-02-10 16:09:12 +00:00
Ryan Pavlik ee81edfe48 t/oxr_android: Fix gradle build for release 21. 2021-02-10 16:09:12 +00:00
Ryan Pavlik 51704bc2e5 math: Fix doc warnings 2021-02-10 16:09:12 +00:00
Ryan Pavlik 84508320f4 ipc: Fix typo in comment 2021-02-10 16:09:12 +00:00
Ryan Pavlik c4108035ea ipc: Fix doc warning 2021-02-10 16:09:12 +00:00
Christoph Haag cfab11355d u/hand_tracking: Hand Joint flags can only be as valid as hand flags 2021-02-10 02:58:00 +01:00
zhibinw a5913c7b4f aux/android:add blank line between functions 2021-02-09 22:44:07 +00:00
zhibinw 14532aceae aux/android: Make MonadoView focusable optional 2021-02-09 22:44:07 +00:00
zhibinw 6e6a729123 aux/android: Make MonadoView not focusable/touchable 2021-02-09 22:44:07 +00:00
Christoph Haag f5abb14422 comp: Don't allocate ubos with VK_MEMORY_PROPERTY_HOST_CACHED_BIT
On Tegra the only supported combinations for VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT are

* VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
* VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
* VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT

This article agrees that we do not need host cached memory here:
https://zeux.io/2020/02/27/writing-an-efficient-vulkan-renderer/
2021-02-03 02:24:35 +01:00
Christoph Haag 00ef724392 aux/vk: Add trace info when memory type is unsupported 2021-02-03 01:44:46 +01:00
Jakob Bornecrantz f8941fe5ee d/vf: Declare dependency to avoid build issues 2021-02-02 13:53:48 +00:00
Jakob Bornecrantz 35da4a51ea d/vf: Refactor code to add videotestsrc capability and break out gstreamer detection 2021-02-02 13:53:48 +00:00
Jakob Bornecrantz 5853103820 d/vive: Refactor out vive config code into auxiliary library
fix vive_config.h include for survive
2021-02-01 19:56:52 +01:00
Christoph Haag b87c7d5e61 d/survive: Port to vive_config parsing 2021-02-01 15:23:19 +00:00
Christoph Haag 152587d728 build/cmake: Add vive_config include dir to survive 2021-02-01 15:23:19 +00:00
Christoph Haag e8ac9ecee4 build/meson: Add vive_config include dir to survive 2021-02-01 15:23:19 +00:00
Christoph Haag b2da8dfd07 build/cmake: make vive_config lib and link to vive, libsurvive 2021-02-01 15:23:19 +00:00
Christoph Haag 721b159312 build/meson: make vive_config lib and link to vive, libsurvive 2021-02-01 15:23:19 +00:00
Christoph Haag a2e7e1c3d9 d/vive: Factor out controller config into separate struct 2021-02-01 15:23:19 +00:00
Christoph Haag e4b0e6282d d/vive: Factor out config into separate struct 2021-02-01 15:23:19 +00:00
Jakob Bornecrantz 8c6075e3b6 monado: Update version 2021-01-28 16:02:50 +00:00
Christoph Haag 232b8a7a49 d/ns: Fix informational message about example configs
v1 and v2 example configs are now in an exampleconfigs subdir.
2021-01-28 03:41:33 +01:00
Christoph Haag be3c7dc480 d/ns: Pretty print json example config with jq 2021-01-28 03:36:18 +01:00
Jakob Bornecrantz eec3446e5b u/sink: Add Bayer format converter 2021-01-27 16:09:07 +00:00
Jakob Bornecrantz 5b6e6bf6a6 xrt: Add XRT_FORMAT_BAYER_GR8 format 2021-01-27 16:09:07 +00:00
Jakob Bornecrantz bfdd3a0a5b d/v4l2: More buffers 2021-01-27 16:09:07 +00:00
Jakob Bornecrantz bd257500b8 d/v4l2: Expose more information 2021-01-27 16:09:07 +00:00
Jakob Bornecrantz fa2748637a xrt: Expose more information on frame servers 2021-01-27 16:09:07 +00:00
Jakob Bornecrantz 18fb3e7024 c/main: Lower priority on sRGB format
This works around a bug in the OpenXR CTS and mirrors better what at least on
other OpenXR runtime does.
2021-01-27 15:41:15 +00:00
Jakob Bornecrantz 666caaa7ae u/timing: Fix typo 2021-01-27 14:04:29 +00:00
Jakob Bornecrantz e375523d80 c/main: Also print format when debugging swapchain creation 2021-01-27 14:03:27 +00:00
Christoph Haag b3592f112c st/oxr: Check swapchain format support in st 2021-01-27 01:19:31 +01:00
Christoph Haag b23f04fed9 comp: Return proper errors for Vulkan xrCreateSwapchain 2021-01-26 15:26:47 +00:00
Christoph Haag b64b6f75fe comp: Return proper errors for OpenGL xrCreateSwapchain 2021-01-26 15:26:47 +00:00
Christoph Haag cb352839e3 st/oxr: cache VkInstance in xrGetVulkanGraphicsDeviceKHR
The problem:
* xrCreateVulkanDeviceKHR is passed a VkPhysicalDevice, but not a VkInstance.
* xrGetVulkanGraphicsDevice2KHR is passed a VkInstance and returns a VkPhysicalDevice
  that is a child of that instance.
* xrCreateVulkanDeviceKHR must verify that the xrGetVulkanGraphicsDevice2KHR
  has been called and that the passed VkPhysicalDevice matches the one returned
  by xrGetVulkanGraphicsDevice2KHR.

We have to consider:
* xrCreateVulkanDeviceKHR has to work on the "correct" VkInstance, which the passed
  VkPhysicalDevice is a child of.

The reqirement

> If the vulkanPhysicalDevice parameter does not match the output of
> xrGetVulkanGraphicsDeviceKHR, then the runtime must return XR_ERROR_HANDLE_INVALID.

is not 100% clear whether calling xrCreateVulkanInstance multiple times is allowed
and how a second call to xrGetVulkanGraphicsDevice2KHR with a dfferent VkInstance
should be handled.

For this implementation xrCreateVulkanDeviceKHR will only consider the most recent call
to xrGetVulkanGraphicsDevice2KHR and the VkInstance that was used for this call.
This enforces at least that VkPhysicalDevice is a child of the cached VkInstance when
xrCreateVulkanDeviceKHR is called, because using a different VkPhysicalDevice would be
an error.
2021-01-26 03:45:43 +01:00
Jakob Bornecrantz b1e18af21e u/distortion: Tidy Vive & Index distortion code 2021-01-25 00:12:03 +00:00
Dan Weatherford 5948e439e9 u/distortion: Fix DPOLY3_SCALED 4th coefficient application 2021-01-25 00:12:03 +00:00
Jakob Bornecrantz 17beaf8aa9 u/distortion: A stab in the dark to try and improve Index chromatic aberration 2021-01-25 00:12:03 +00:00
Jakob Bornecrantz 7d755427e3 u/distortion: Filp order of array access in distortion for Vive & Index 2021-01-25 00:12:03 +00:00
Jakob Bornecrantz 0c2d07808c u/distortion: Make Vive & Index distortion center per channel 2021-01-25 00:12:03 +00:00
Dan Weatherford b2569907b5 u/distortion: Fix math error in u_compute_distortion_vive 2021-01-23 14:02:31 -06:00
Dan Weatherford bd381561d8 d/vive: Fix distortion center config parsing 2021-01-23 14:02:31 -06:00
Jakob Bornecrantz cb51b32ff1 st/oxr: Tidy code
The CHECK_LAYER_TYPE tests would falsely pass on the
IPC layer as it always implements all of the functions.
2021-01-22 14:16:12 +00:00
Christoph Haag f326ec8fc3 st/oxr: Check XrHandJointLocationsEXT::jointLocations for NULL 2021-01-22 03:34:40 +01:00
Jakob Bornecrantz 3e028a7952 st/oxr: Correctly validate quats to be within 1% of unit length 2021-01-21 00:33:32 +00:00
Jakob Bornecrantz 026fa2cebb math: Add quat valdiate that only checks within 1% of unit length 2021-01-21 00:33:32 +00:00
Jakob Bornecrantz 797fa5459c u/rt: Tidy and documment render timing code 2021-01-21 00:32:36 +00:00
Jakob Bornecrantz 3856ae4540 bindings: Fix double slash error 2021-01-21 00:13:42 +00:00
Jakob Bornecrantz 00b71aabd4 bindings: Update copyrights 2021-01-21 00:13:40 +00:00
Christoph Haag f9c37d51bc aux/bindings: Add "features" to inputs in bindings.json
In our model we have a "subpath" for each hardware input like "/input/trackpad".
Each of these hardware inputs has "features" like "click", "touch", "position", "force".

Ideally each of these "features" is bound to some monado input in the "monado_bindings" dict
but this is not required. bindings.json will know about hardware features even if we don't bind them (yet).

For each of these features bindings.py generates a group of related paths for a single monado binding:
For a monado input XRT_INPUT_???_TRACKPAD these paths would be generated:
/user/hand/left/input/trackpad/x
/user/hand/left/input/trackpad/y
/user/hand/left/input/trackpad
2021-01-20 18:23:09 +01:00
Christoph Haag 46ec938f8a build: Move bindings build to bindings/subdir
The generated files should be in auxiliary/bindings/*.{c,h}. For this to work
meson.build has to be in the bindings/ subdir:
https://github.com/mesonbuild/meson/issues/2320

Move CMakeLists.txt there too for some consistency.
Also fixes the previous include hack.
2021-01-20 18:23:09 +01:00
Christoph Haag 07218c9878 aux: generate b_generated_bindings.{c,h} instead of xrt_generated_bindings.{c,h}
Follow up to 543804e53cafa83c52b61f70894696bc4d95fa7c
2021-01-20 18:23:09 +01:00
Christoph Haag 06e7e7e832 steamvr: Implement support for and default to generated input profile 2021-01-20 18:23:09 +01:00
Christoph Haag 85d3e8bdc3 build/cmake: generate steamvr input profiles 2021-01-20 18:23:09 +01:00
Christoph Haag 334864de7f build/meson: Generate SteamVR input profiles 2021-01-20 18:23:09 +01:00
Christoph Haag 672c81e809 aux/bindings: Add script to generate steamvr input profiles 2021-01-20 18:23:09 +01:00
Christoph Haag edd6a4cf70 xrt: Move oxr_binding_data.h to json profile generator
Move json profile generator to auxiliary/bindings and make generated_bindings static library.

aux/bindings: Add hardware type

aux/bindings: Add various steamvr specific things to bindings
Paths like "/input/menu/click" are used in SteamVR input profiles.
2021-01-20 18:23:09 +01:00
Christoph Haag 1b597bdd65 st/oxr: Rename sub_path variables to subaction_path
Subaction paths are the /user/X/Y part of the full path describing the input source/device.
"Subaction paths are a mechanism that enables applications to use the same action name and handle on multiple devices. Applications can query action state using subaction paths that differentiate data coming from each device."

Subpaths, are the input or output specific part of the full path, e.g.
"Each input source path must match the following pattern: …/input/<identifier>[_<location>][/<component>]"
2021-01-20 18:23:09 +01:00
Christoph Haag e09d2db8e5 xrt: Add various device and input enum values 2021-01-20 18:23:09 +01:00
Christoph Haag 5764365427 steamvr: Use simple vibration as fallback 2021-01-20 18:23:09 +01:00
Christoph Haag 69fc55e15e xrt: cast XRT_GET_INPUT_TYPE result
Useful for C++ compilers.
2021-01-20 18:23:09 +01:00
Christoph Haag db2b77c9cb build/meson: Copy steamvr assets at build time, not configure time 2021-01-20 18:23:09 +01:00
Christoph Haag 609b834670 steamvr: Add comment about pose time offset 2021-01-20 18:23:09 +01:00
Jakob Bornecrantz c3d12a2dc4 ipc: Tidy logging 2021-01-20 16:24:47 +00:00
Jakob Bornecrantz afea93f297 xrt: Remove prepare function from xrt_compositor 2021-01-20 15:04:09 +00:00
Jakob Bornecrantz 2b8c835b68 xrt: Introduce xrt_system_compositor 2021-01-20 15:04:09 +00:00
Jakob Bornecrantz 57bfbb615f ipc: Tidy code and clang-format 2021-01-19 18:15:02 +00:00
Jakob Bornecrantz a0598c07ae st/gui: Tidy code and clang-format 2021-01-19 18:15:02 +00:00
Jakob Bornecrantz b48036a3ff st/oxr: Tidy code and clang-format 2021-01-19 18:15:02 +00:00
Christoph Haag 9481013081 comp: add VkDisplayKHR window backend
Must be activated/selected with an env var for now: XRT_COMPOSITOR_FORCE_VK_DISPLAY=2
2021-01-19 17:00:46 +00:00
Ryan Pavlik 1ea5403435 t/oxr_android: Add empty service for runtime advertisement 2021-01-19 16:13:44 +00:00
Ryan Pavlik 50ddf1c11c gradle: Remove redundant, unused task 2021-01-19 16:13:44 +00:00
Christoph Haag 5e8338a6de comp: Render with pose for next display time, not last 2021-01-15 18:25:27 +01:00
Jakob Bornecrantz 360dbb63a7 d/ns: Work-around clang-format stuff 2021-01-15 16:38:54 +00:00
Jakob Bornecrantz ae6ac5fc0e math: Work-around clang-format stuff 2021-01-15 16:38:52 +00:00
Jakob Bornecrantz 2b996f30c4 xrt: Reflow after column change 2021-01-15 13:50:32 +00:00
Jakob Bornecrantz c6db6dc653 xrt: Change number of columns to 120 2021-01-15 13:44:44 +00:00
Christoph Haag 9c03f244b0 d/survive: Wait max 5 seconds for HMD and device configs
Sometimes the Index is in weird hardware states and doesn't respond properly.
In such cases, time out after 5 seconds and continue with no HMD present.

Previously we also relied on the controller configs to be already available
once the HMD config was available. In rare cases they were not - wait for
the controller configs with the same timeout.
2021-01-15 00:50:20 +01:00
Lubosz Sarnecki 621a4bbe59 aux/vk: Add formats used in CTS to format string function. 2021-01-14 13:54:19 +01:00
Lubosz Sarnecki a786401bec aux/vk: Lock vkCmdPipelineBarrier with pool mutex. 2021-01-14 13:54:19 +01:00
Jakob Bornecrantz a5560f8363 c/main: Remove unused field 2021-01-14 12:30:54 +00:00
Christoph Haag ad1e809dfc comp: Extend nvidia VK_ERROR_INITIALIZATION_FAILED message
The real cause for this failure seems to be an extended desktop to the direct mode
display, not the allowhmd setting.
2021-01-13 23:51:36 +01:00
Christoph Haag f684ae95d1 comp: Fix depth-stencil image validation warning
Depth-only formats must use *only* VK_IMAGE_ASPECT_DEPTH_BIT.
Depth-stencil formats must use both VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT.
2021-01-13 20:39:20 +01:00
Lubosz Sarnecki b005f4e2fa comp/vk: Guard VkCommandBuffer usage with command pool mutex.
Lock all queue submits with 2 mutexes using a new vk_locked_submit
function.
2021-01-13 12:42:26 +01:00
Lubosz Sarnecki fc3b7fef25 comp/vk: Lock command pool calls with a mutex.
This patch resolves multithreading issues as detected by the Vulkan
validation when running the OpenXR CTS using OpenGL.
2021-01-13 12:33:15 +01:00
Lubosz Sarnecki c97404e873 comp/vk_client: Improve error messages.
As we use u_logging here, new lines are redundant. Also showing the
VkError code is handy.
2021-01-13 12:33:15 +01:00
Lubosz Sarnecki cc44816026 comp/vk: Put queue mutex around vkDeviceWaitIdle calls. 2021-01-13 12:33:15 +01:00
Lubosz Sarnecki 9a9d46b85a comp/vk: Lock our only VkQueue with a mutex.
This resolved mutlithreading issues as seen in the `multithreading` test
of the OpenXR CTS.

This patch fixes the test on Vulkan Android and resolves Vulkan
validation errors when running on Linux with OpenGL.
2021-01-13 12:33:15 +01:00
Lubosz Sarnecki fd58ccecc9 drv/android: Fill in xrt_device str. 2021-01-13 12:33:15 +01:00
Moses Turner a1ed0b293c d/rs: predict pose
d/rs: predict pose
2021-01-12 17:15:40 -06:00
Moses Turner baf0e1acfb d/rs: apply offset to t265 pose, d/ns: fix up some minor things, load realsense offset from json file 2021-01-12 15:28:18 -06:00
Moses Turner fc47d0baad d/ns: fix polynomial distortion math again, document nonsensical parts of polynomial math, update config files 2021-01-12 15:28:18 -06:00
Moses Turner 684daa3293 d/ns: possibly fix mesh calculation
also fix flipped tracking tracking
2021-01-12 13:01:37 -06:00
Moses Turner 365692e9ca d/ns: Hopefully make v2 driver read ipd from baseline in v2 config files 2021-01-12 13:01:37 -06:00
Moses Turner 735d9654ec d/ns: apply right eye fov correctly 2021-01-12 13:01:37 -06:00
Christoph Haag 637b5658da d/survive: Predict poses for requested time 2021-01-11 23:50:01 +00:00
Christoph Haag e785053c0a aux/math: special case delta_s == 0 in m_predic
Rather than asserting in the underlying math functions we return the
trivial values for prediction with 0s.
2021-01-11 23:50:01 +00:00
Jakob Bornecrantz 1e4a540bb9 aux/math: Add prediction module
For the time being all angular velocities are relative to the space a xrt_space_relation is in.
2021-01-11 23:50:01 +00:00
Jakob Bornecrantz 271e2b0275 st/oxr: Remove dynamic prediction code 2021-01-11 23:50:01 +00:00
Jakob Bornecrantz 079f3769d4 st/oxr: Convert the given at_time when asking for relations from devices 2021-01-11 23:50:01 +00:00
Jakob Bornecrantz fdd87a0239 d/rs: Save a lot more data from the latest pose 2021-01-11 23:50:01 +00:00
Christoph Haag 729f726135 steamvr: Request hmd pose at current time instead of 1 2021-01-11 23:50:01 +00:00
Christoph Haag 8f3816a5fc u_time: Make time_s_to_ns take double, not floa 2021-01-11 23:50:01 +00:00
Jakob Bornecrantz eea8036e91 c/client: Ensure that EGL_ANDROID_native_fence_sync 2021-01-11 16:50:02 +00:00
Christoph Haag 726c752db2 comp: Add support for list of optional device extensions
If one of the supplied optional extensions is VK_GOOGLE_display_timing and it is
supported by the driver, vk_bundle::has_GOOGLE_display_timing will be set to true.
2021-01-07 19:12:41 +01:00
Christoph Haag 4d652fef5a st/oxr: Implement XR_KHR_vulkan_enable2 2021-01-06 13:40:59 +00:00
Christoph Haag f8a4f35572 oxr: Add XR_KHR_vulkan_enable2 to ext generator script 2021-01-06 13:40:59 +00:00
Christoph Haag 3085e29c97 u/hand_tracking: Curl fingers based on joint, increase total curl angle
When making a fist, different joints curl at different angles, reflect
this more directly in the code.

Also increase total curl to make it easier to hold ingame objects.
2021-01-06 13:34:31 +00:00
Christoph Haag 679a1233ee d/ht: Set up tracking origin with no offset 2021-01-06 13:29:36 +00:00
Christoph Haag e2c1bc1d16 xrt: Rename hand_origin to hand_pose
hand_origin is confusing because it implies it is the origin of the coordinate system the hand is in.
It actually is the hand pose in the "global" coordinate system.
2021-01-06 13:29:36 +00:00
Christoph Haag c84dbad03e u/device: Add U_DEVICE_ALLOC_NO_FLAGS
Allows using U_DEVICE_ALLOCATE without flags without a cast.
2021-01-06 13:29:36 +00:00
Christoph Haag d85224e7c3 d/ht: Don't create hand tracking driver without successful init
Fixes a crash when no calibrated camera is found.
2021-01-06 13:29:36 +00:00
Christoph Haag 7831e38c02 u/device: Assign left/right hand trackers if no controllers are available
Previously the left/right role assignment considered only device types
* XRT_DEVICE_TYPE_LEFT_HAND_CONTROLLER
* XRT_DEVICE_TYPE_RIGHT_HAND_CONTROLLER
* XRT_DEVICE_TYPE_ANY_HAND_CONTROLLER

This adds XRT_DEVICE_TYPE_HAND_TRACKER for consideration, but only if none
of the above are present.
2021-01-06 13:29:36 +00:00
Christoph Haag 6d7dff360c d/psmv: Scale rumble value on zcm1
The motor on my psmv controller does not rumble at amplitudes < 0.25.
2021-01-06 13:23:28 +00:00
Christoph Haag 3848d2be3f st/oxr: Add env vars for global tracking origin offset
This commit is a band aid until a more proper room setup is implemented.
It allows moving the tracking offset for the device roles head, left and right by a fixed value.

A y tracking offset OXR_TRACKING_ORIGIN_OFFSET_Y=1.0 would tell monado that the current tracking
origin is 1 meter above the desired tracking origin, e.g. when the headset was calibrated to a
(0,0,0) position while sitting on table 1 meter above the floor.

This environment variable affects STAGE space, but not LOCAL space.
2021-01-06 13:03:47 +00:00
Jae Lee a71de192e0 illixr: Add initial integration. 2020-12-29 23:44:57 +00:00
Jakob Bornecrantz 15320d9ebe c/client: Insert fence and give sync handle on layer_commit (EGL for now only) 2020-12-28 15:22:46 +00:00
Jakob Bornecrantz 32c9cb1bf3 c/main: Make sure to close sync handles on layer_commit 2020-12-28 15:22:06 +00:00
Jakob Bornecrantz c191c9a466 ipc: Support sending sync handles on layer_commit 2020-12-28 15:22:06 +00:00
Jakob Bornecrantz 84d4b6aaae ipc/shared: Support sending graphics sync handles 2020-12-28 15:22:06 +00:00
Jakob Bornecrantz 1302b07d68 xrt: Add sync_handle argument to layer_commit 2020-12-28 15:22:06 +00:00
Jakob Bornecrantz e67ef85c0c t/ctl: Tidy printing 2020-12-28 14:21:03 +00:00
Lubosz Sarnecki 1038145ffd ipc: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 4acab28f3f c/client: Port printfs to static u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 34563276e8 targets/openxr/sdl2_hack: Port to static u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 12a3a24315 st/gui+steamvr_drv: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 521daac012 st/oxr: Port to u_logging.
Remove foo print.
Use correct ENV variable XRT_COMPOSITOR_LOG for Vulkan log.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki a8b01a89f3 st/prober: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 55d6d57392 aux/math: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki ba1d966f9f aux/vk: Port to u_logging.
Fix log calls where no valid state struct was provided.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 58ecf67515 aux/tracking: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki e350e42ca9 aux/os/ble_dbus: Use printf padding. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 79dde59f7e aux/os/ble_dbus: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 853458ed37 xrt: Port commented printfs to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 0302a47e6f d/realsense: Port to static u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 8ce0f73585 d/vive/conteroller: Porting to static u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 0708863e55 d/ohmd: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki e0b2c4ad2e d/ohmd: Make env variables consistent with driver name. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 2dbb6a6bb8 d/daydream: Port to u_logging.
Port static printfs to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 1ba7d803a0 d/hydra: Port to u_logging.
Port printfs to static u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 00b2778504 d/arduino: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 6a2221115d d/ns: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki a9703f6b39 d/survive: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 2be5e32b67 d/v4l2: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki e6b2c1f2c7 d/vf: Port to u_logging. 2020-12-28 13:04:11 +00:00
Lubosz Sarnecki 1f85d1c2ba d/hdk: Port to u_logging. 2020-12-28 13:04:11 +00:00