Commit graph

2658 commits

Author SHA1 Message Date
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 844d2c9d58 doc: add changelog for MR 638 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 36b9d9e7c5 gradle: Update comment 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 3abbd75ef4 scripts: Add support for clang-format 10 and 11 2021-01-15 16:38:56 +00: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
Lubosz Sarnecki 0e4e4efe79 cmake: Turn on XRT_FEATURE_OPENXR_LAYER_EQUIRECT1 by default. 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 6455b1b829 doc: Document MR 645. 2021-01-13 12:33:15 +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