Commit graph

2717 commits

Author SHA1 Message Date
Christoph Haag e21f4a2458 t/ctl: Add usage information 2021-07-07 00:49:28 +02:00
Christoph Haag 250ef94d71 st/oxr: Don't go to READY after EXITING
The STOPPING state has two possible follow up paths:

STOPPING -> IDLE -> READY
STOPPING -> IDLE -> EXITING

After EXITING, the application must call xrDestroySession; there is no meaningful
session state after EXITING.

To go to the READY state again, the application should first create a new session.

Applications that are lazy and drain the entire event queue and only handle
the last encountered state would be affected by "skipping" the EXITING state.
2021-07-02 15:19:00 +00:00
Jakob Bornecrantz 5838d737b3 u/sink: Tidy and add some comments to queue sink (NFC) 2021-06-27 00:59:24 +00:00
Jan Schmidt 8192e74f76 d/wmr: Compute visible region for render rectangle.
Use the distortion function to calculate the visible limits of the
display and then configure the rendered FoV angles accordingly.
2021-06-26 03:52:32 +10:00
Jan Schmidt dfe932ffd7 d/wmr: Add an extensible headset map.
Add a mechanism for recognising known headsets and handling specific
init/deinit sequences for those that need it.
2021-06-26 03:52:29 +10:00
Dan Weatherford 6bb3577b1b d/wmr: Implement Lenovo explorer support.
Recognise the Lenovo explorer device
2021-06-26 03:52:29 +10:00
Jan Schmidt bad625965a d/wmr: Extract JSON configuration from the firmware.
Pull in the WMR config obfuscation key and extract the JSON
calibration data.

Based on a patch from Dan Weatherford <sabretooth@gmail.com>
2021-06-26 03:52:26 +10:00
Dan Weatherford 3ca80e9607 d/wmr: Add functions to read raw config data
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2021-06-26 03:52:26 +10:00
Jan Schmidt 0cf7b4a9b3 d/wmr: Add render distortion configuration
Take the parameters from the headset configuration and the existing
render FoV, and use them to instantiate a distortion mesh.

TODO: Reverse the distortion in order to calculate good FoV range
that covers the full view for each headset.
2021-06-26 03:52:23 +10:00
Jan Schmidt f663727b07 d/wmr: Add some groundwork for config parsing.
Sketch out some groundwork for parsing WMR config blocks,
using some hard-coded values from my headset for now. Later,
this will be parsed from the headset JSON blob.
2021-06-26 03:52:16 +10:00
Dan Weatherford fabf01ff39 aux/math: Add math_quat_slerp() 2021-06-25 17:40:07 +01:00
Jan Schmidt 4581a7a9a6 aux/math: Implement math_matrix_3x3_inverse.
Add a function to invert 3x3 matrices, to reverse 2D
affine transforms.
2021-06-25 17:40:07 +01:00
Christoph Haag bcc50dbd4f st/oxr: Add checks for Vulkan graphics bindings 2021-06-25 01:10:25 +02:00
Moses Turner 7461c57043 cmake: make ulv2 build a little better 2021-06-23 23:40:43 +01:00
Jakob Bornecrantz 47470cc8e2 d/ns: Use fread when reading from config file 2021-06-21 12:29:31 -05:00
Moses Turner 3569e4f2ed d/ns: Fix 3D distortion FOV calc
co-authored-by: Nico Zobernig <nico.zobernig@gmail.com>
2021-06-21 12:29:31 -05:00
Moses Turner bcadbea3aa d/ns: Clean utility_northstar a bit 2021-06-21 12:29:31 -05:00
Moses Turner 7e385aa810 d/ns: Big refactor 2021-06-21 12:29:31 -05:00
Moses Turner 93ec678110 aux/util: Add North Star "VIPD" and "polynomial 2D" distortion methods 2021-06-21 12:29:31 -05:00
Moses Turner 017997fba3 aux/math: Add math_map_ranges function 2021-06-21 12:29:31 -05:00
Moses Turner 01bfed1694 aux/util: Make new u_extents_2d as alternative to u_device_simple_info 2021-06-21 14:49:35 +00:00
Jakob Bornecrantz e554f9ee02 ipc: Fix NULL check stopping main app visibility events from working 2021-06-18 20:13:46 +01:00
Christoph Haag ccb9777a47 d/vive: Set hand tracking values to actives
fixes !716 which introduced the need for setting hand joint active status.
2021-06-16 23:17:07 +02:00
Ryan Pavlik ad44f42b24 aux/vk: Add fence import for windows 2021-06-15 17:37:14 -05:00
Ryan Pavlik 2d20a6436c comp: Wrap a unistd include for Windows. 2021-06-15 17:37:14 -05:00
Jakob Bornecrantz ebc2208a73 c/main: Also resize on VK_SUBOPTIMAL_KHR 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 9996d686e4 c/main: Tidy 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 1eebc12780 c/main: Refactor out viewport calculation into own function 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 6d011e25d4 c/main: Give the correct queue family argument to vkGetPhysicalDeviceSurfaceSupportKHR 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz f38932cb64 c/main: Tidy comp_renderer fence creation a bit 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 65ca3113f8 c/main: Allow to specifiy image usage for target images 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz fd1a916e0b c/main: Tidy and add a bit of debug to comp_target_swapchain 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 0f07e5b899 c/main: Tweak swapchain formats a bit 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 928ae5b27a c/render: Add support for non-freeable descriptor pools 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 6c033658a8 c/render: Add support for storage image descriptors 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 8a7d857dde aux/vk: Add the option to handle optional device features 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 4bbc13f5d4 aux/vk: Add support for VK_EXT_robustness2 and tidy 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz bf27691280 aux/vk: Refactor out optional extension handling 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 57d24ecdbb aux/vk: Make it possible to get a compute only queue 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz c42d681db0 aux/vk: Add vkCmdCopyBufferToImage and vkCmdCopyImageToBuffer 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 8899b267a6 aux/vk: Add vkCmdDispatch, vkCreateComputePipelines and vkResetDescriptorPool functions 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 4b9b1f991c xrt: Add xrt_device_compute_distortion helper 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz b805742a53 c/main: Do not list VK_FORMAT_A2B10G10R10_UNORM_PACK32 as a supported format 2021-06-15 14:27:07 +00:00
Jakob Bornecrantz aa3f071d2b u/trace_marker: Refactor init to fix bug 2021-06-14 19:12:14 +01:00
Jakob Bornecrantz c2c49cb6d3 u/trace_marker: Make sure to include headers outside of extern block 2021-06-14 19:12:12 +01:00
Moses Turner 6285223fd2 d/dai: Even more tidy 2021-06-11 18:49:50 +01:00
Jakob Bornecrantz 576593010f d/dai: Add code so we can open mono cameras with compile time option 2021-06-11 16:48:30 +00:00
Jakob Bornecrantz 96248931cc d/dai: Refactor a bit so we can at compile time support OAK-D 2021-06-11 16:48:30 +00:00
Moses Turner d555b255fe st/gui: Add support for depthAI camera in record scene
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2021-06-10 14:32:07 -05:00
Moses Turner 37cbbb6660 d/dai: Add simple DepthAI driver
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2021-06-10 14:32:07 -05:00
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