Commit graph

145 commits

Author SHA1 Message Date
Charlton Rodda aa31ac3789 st/oxr: Implement dpad emulation 2022-05-31 13:25:48 +00:00
Charlton Rodda 803d679e11 st/oxr: Add dpad bindings 2022-05-31 13:25:48 +00:00
Jakob Bornecrantz 59fc679152 st/oxr: Verify EXT_dpad_bindings structs 2022-05-31 13:25:48 +00:00
Jakob Bornecrantz fb0f94c900 st/oxr: Add dpad state and functions 2022-05-31 13:25:48 +00:00
Ryan Pavlik 79dffbf3f6 st/oxr: Split out some code that is d3d-version independent 2022-05-25 18:12:22 +00:00
Ryan Pavlik cdb8d54ca1 st/oxr: Work on D3D11 2022-05-20 22:37:15 +01:00
Ryan Pavlik a25bb73921 st/oxr: Word choice/clarity 2022-05-17 17:40:58 -05:00
Jakob Bornecrantz 3c6bf7b912 st/oxr: Use xrt_instance_create_system 2022-05-11 10:49:15 +01:00
Jakob Bornecrantz e93b1c61ff st/oxr: Make VK_KHR_external_[fence|semaphore]_fd optional
Only for XR_KHR_vulkan_enable2, harder to do for XR_KHR_vulkan_enable.
2022-05-09 14:01:20 +00:00
Ryan Pavlik ccbb658e49 st/oxr: Fix renderdoc build on Windows. 2022-05-06 13:59:24 -05:00
Ryan Pavlik 3e6ec47296 monado: Apply clang-tidy fixes to most of the codebase.
All at least visually inspected, some revised from the auto-fixit
2022-04-13 09:34:54 -05:00
Ryan Pavlik 91c94f015e st/oxr: Fix or silence a number of MSVC warnings 2022-04-12 23:06:11 +00:00
Jakob Bornecrantz 58daee4752 st/oxr: Remove log argument to oxr_action_get_pose_input function 2022-04-11 18:27:39 +01:00
Christoph Haag 18376007f9 st/oxr: oxr_space type is now an enum
v2: Get rid of ref_space_type
2022-03-25 18:47:46 +00:00
Jakob Bornecrantz 85a2abaec6 st/oxr: Refactor pose and fov copies into helpers 2022-03-15 00:16:17 +00:00
Jakob Bornecrantz 291e795728 st/oxr: Add XRT_CHECK_RESULT to some space functions 2022-03-15 00:16:17 +00:00
Christoph Haag dbb21715b0 st/oxr: Enable timeline semaphores where available
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-03-14 18:58:35 +00:00
Christoph Haag 58c9679087 st/oxr: remove another unused function 2022-03-03 01:41:25 +01:00
Christoph Haag ed0bd9c244 st/oxr: rework spaces 2022-03-02 17:40:00 +00:00
Christoph Haag c162ff655b st/oxr: add renderdoc API to xrBeginFrame/xrEndFrame
Usually renderdoc captures frames by hooking the present functions to
recognize when an application is finished rendering a frame.

OpenXR applications might not present to a window. Therefore use the
renderdoc API to capture application frames between xrBeginFrame and
and xrEndFrame.

This allows renderdoc to capture application frames without the need
to modify the application.
2022-02-18 13:44:15 +01:00
Christoph Haag 9cd3b47f94 st/oxr: Rework composition of head relation for xrLocateViews 2022-02-16 23:15:28 +00:00
Ryan Pavlik c9889f776f xrt: Rename xrt_space_graph to xrt_relation_chain.
Rename all functions and instances accordingly as well,
and add documentation for all methods.
2022-01-21 19:54:30 +00:00
Christoph Haag d0cdb8fcd3 st/oxr: Fix subactoin typo in comment 2022-01-12 23:02:53 +01:00
Jakob Bornecrantz ec537eb3aa st/oxr: Refactor extension parsing and verify extensions 2022-01-04 22:04:12 +00:00
Christoph Haag 1a9e0750c7 st/oxr: document oxr_instance::oxr_interaction_profile 2021-11-24 01:34:13 +01:00
Moses Turner cef025a546 Revert "st/oxr: fix building on linux with OPENGL_GLX OFF"
This reverts commit d20f8f4363
2021-11-20 00:11:06 +00:00
Antonio Ospite d20f8f4363 st/oxr: fix building on linux with OPENGL_GLX OFF
When building on linux and OPENGL_GLX OFF compilation fails with the
following error:

-----------------------------------------------------------------------
../../state_trackers/oxr/libst_oxr.a(oxr_session_gfx_gl.c.o): In function `oxr_session_populate_gl_xlib':
oxr_session_gfx_gl.c:(.text+0x5c): undefined reference to `xrt_gfx_provider_create_gl_xlib'
collect2: error: ld returned 1 exit status
src/xrt/targets/openxr/CMakeFiles/openxr_monado.dir/build.make:126: recipe for target 'src/xrt/targets/openxr/libopenxr_monado.so' failed
make[2]: *** [src/xrt/targets/openxr/libopenxr_monado.so] Error 1
CMakeFiles/Makefile2:2490: recipe for target 'src/xrt/targets/openxr/CMakeFiles/openxr_monado.dir/all' failed
make[1]: *** [src/xrt/targets/openxr/CMakeFiles/openxr_monado.dir/all] Error 2
Makefile:145: recipe for target 'all' failed
make: *** [all] Error 2
-----------------------------------------------------------------------

Apparently the gl_xlib backend really depends on GLX specifically, so
fix the issue by reflecting that in the conditionally compiled blocks.
2021-11-13 12:16:29 +00:00
Ryan Pavlik 469b9d907d st/oxr: Rename all num_ in the state tracker, too. 2021-11-13 12:04:38 +00:00
Ryan Pavlik 33c0287f8b xrt: Rename all "num" parameters and fields to "count" (or "capacity" as appropriate)
This matches the OpenXR usage: the array is the plural of the element type,
and the count is the singular element type plus "count" (usually CountOutput
because of the two-call idiom)

Includes fixes to other code to match API changes.
2021-11-13 12:04:38 +00:00
Jakob Bornecrantz ea2aa56af8 st/oxr: Add debug variable for adding extra sleep in wait frame 2021-08-17 12:04:49 +01:00
Christoph Haag bc8ac9ca3c st/oxr: Use OXR_MAX_BINDINGS_PER_ACTION instead of hardcoded 32
The hardcoded value 32 was actually wrong and caused a warning

../src/xrt/state_trackers/oxr/oxr_input.c:668:9: warning: 'oxr_binding_find_bindings_from_key' accessing 256 bytes in a region of size 128 [-Wstringop-overflow=]
  668 |         oxr_binding_find_bindings_from_key(log, profile, act->act_key, binding_points, &num);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-07-15 01:08:20 +02:00
Jakob Bornecrantz 189aea97aa st/oxr: Refactor out end frame function into own file 2021-07-10 17:59:17 +01: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 e0bf0a423f st/oxr: Make Vulkan optional 2021-04-30 21:53:21 +00:00
Jakob Bornecrantz 4e572af96a st/oxr: Rename oxr_session_views to oxr_session_locate_views (NFC) 2021-04-27 01:44:16 +01:00
Christoph Haag 85ff0dc73c xrt: Add msft_hand_interaction path to cache and check func 2021-04-02 15:48:10 +00:00
Ryan Pavlik 08b0fd257f st/oxr: Fix doxygen warning 2021-03-26 17:10:53 -05: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
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
Jakob Bornecrantz 2b8c835b68 xrt: Introduce xrt_system_compositor 2021-01-20 15:04:09 +00:00
Jakob Bornecrantz 2b996f30c4 xrt: Reflow after column change 2021-01-15 13:50:32 +00:00
Christoph Haag 4d652fef5a st/oxr: Implement XR_KHR_vulkan_enable2 2021-01-06 13:40:59 +00:00
Christoph Haag f7a8e8810b xrt: Split hand tracking input name into left/right
oxr_hand_tracker now stores which xdev and input name it tracks.
2020-12-07 11:43:51 +00:00
Christoph Haag f5ef3985ba xrt: Add support for locating hand joints in action spaces 2020-11-23 20:42:54 +00:00
Ryan Pavlik ec1375342f st/oxr: Fix outdated reference in docs. 2020-11-10 03:09:07 +00:00
Christoph Haag c60b7412e5 xrt: Move device assignment code to u_device 2020-11-09 00:32:33 +01:00
Christoph Haag 5478bad3d0 st/oxr: Add OXR_FRAME_TIMING_SPEW var to print basic frame timing information 2020-11-06 00:51:24 +01:00
Jakob Bornecrantz 1c98297aa0 st/oxr: Use new xdev providing binding 2020-11-05 14:44:04 +00:00
Christoph Haag 7eaa7abb89 oxr: Implement additional xrWaitFrame/xrBeginFrame call order checks
Relevant CTS tests: https://github.com/KhronosGroup/OpenXR-CTS/pull/7
2020-11-04 00:37:21 +01:00