Commit graph

557 commits

Author SHA1 Message Date
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 0ae0316400 cmake: Format build files 2022-04-13 01:11:13 +01:00
Ryan Pavlik 91c94f015e st/oxr: Fix or silence a number of MSVC warnings 2022-04-12 23:06:11 +00:00
Jakob Bornecrantz 9fd8018a16 st/oxr: Improve space and view debug printing 2022-04-11 20:27:53 +01:00
Jakob Bornecrantz eb90745f4e st/oxr: Add pretty print functions 2022-04-11 20:27:53 +01:00
Jakob Bornecrantz 179664d6b6 st/oxr: Add pretty print integration in oxr_sink_logger 2022-04-11 20:27:53 +01:00
Jakob Bornecrantz 03df012e90 st/oxr: Add XRT_PRINTF_FORMAT to oxr_slog 2022-04-11 18:27:39 +01:00
Jakob Bornecrantz 58daee4752 st/oxr: Remove log argument to oxr_action_get_pose_input function 2022-04-11 18:27:39 +01:00
Jakob Bornecrantz d89b8f40d9 st/oxr: Detect VK_LAYER_MND_enable_timeline_semaphore
And enable timeline semaphore support if it is found.
2022-04-06 12:08:48 +01:00
Jakob Bornecrantz e77094892f st/oxr: Add debug flag to force timeline semaphores on 2022-04-05 22:01:17 +00:00
Ryan Pavlik 6d621b07c5 st/oxr: Add missing ifdef fixing broken build if Vulkan missing 2022-03-30 09:26:22 -05:00
Christoph Haag 068bf05057 st/oxr: Fix pure_relation_from_space
Fixes in particular the space transform submitted in composition layers
in local reference space.

Consider a pose given with a pose offset to an XrSpace as its origin.
To construct the Pose in global space, simply add up XrSpace pose in
global space, XrSpace pose offset and the given pose.

     Given pose with a
     pose offset to XrSpace as origin
            /|\         /|\
            /            |
           /             |
   XrSpace pose offset   |
         /|\             |
          |              |
          |              |
      XrSpace pose       |
     in global space     |
            /|\          |
             \           |
              \          |
            Global Space origin
2022-03-30 02:03:18 +02: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
Christoph Haag 543fbc38e2 st/oxr: Allow locating views in all spaces 2022-03-25 18:47:46 +00:00
Christoph Haag 02e5e7be4a st/oxr: Fix getting velocity next struct in xrLocateSpace
fixes 85a2abae
2022-03-25 15:36:14 +01:00
Jakob Bornecrantz b2d2cf3ade st/oxr: Tidy oxr_space_locate 2022-03-15 00:16:17 +00:00
Jakob Bornecrantz 587d26bb45 st/oxr: Only access space velocity through chain helper 2022-03-15 00:16:17 +00:00
Jakob Bornecrantz 85a2abaec6 st/oxr: Refactor pose and fov copies into helpers 2022-03-15 00:16:17 +00:00
Jakob Bornecrantz 1fb5656862 st/oxr: Improve logging in xrLocateSpace 2022-03-15 00:16:17 +00:00
Jakob Bornecrantz 4fc02cf60e st/oxr: Ensure velocities flags and values are zeroed 2022-03-15 00:16:17 +00:00
Jakob Bornecrantz 798932fbf2 st/oxr: Set position to identity and zero velocities if the spaces are locatable 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 02c456c192 st/oxr: Port XR_KHR_vulkan_enable2 init to u_string_list 2022-03-14 18:58:35 +00:00
Jakob Bornecrantz f4f2196e34 xrt: Add a way to say that timeline semaphores have been enabled 2022-03-14 18:58:35 +00:00
Christoph Haag 7894039962 st/oxr: return defined result early on fail in xrLocateViews 2022-03-11 00:38:35 +01:00
Christoph Haag 4501088312 st/oxr: Don't return invalid pose after local space set up 2022-03-11 00:23:12 +01:00
zhibinw 41db1e5e12 st/oxr: Increase active_wait_frames count after previous xrBeginFrame has been called 2022-03-07 16:35:58 +00:00
Christoph Haag 61024ab9a1 st/oxr: Use correct timestamp for layer space transform 2022-03-03 23:34:31 +01:00
Christoph Haag 76c18bda47 st/oxr: Fix layer poses sent to the compositor 2022-03-03 17:03:36 +01:00
Christoph Haag b863aa2629 st/oxr: don't run the timestamp conversion in a loop 2022-03-03 01:42:35 +01:00
Christoph Haag 075fde3613 st/oxr: propagate a few more space handling return codes 2022-03-03 01:42:02 +01: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 f633680506 st/oxr: Fix local[e]_ref_space typo 2022-03-02 17:40:00 +00:00
Jakob Bornecrantz 4ba68a7008 st/oxr: Remove direct access or mention of hmd distortion fov
The overrides didn't do anything unless Monado was compiled for
in-process, and even then the device might return a differnt fov.

The todo was for a driver and shouldn't be in the state tracker.
2022-02-19 13:45:26 +00:00
Christoph Haag 996a5d3e9a xrt: Move fov from xrt_view to xrt_hmd_parts::distortion 2022-02-19 13:04:32 +00:00
Ryan Pavlik 80ab7243ca st/oxr: Additional doxygen fix 2022-02-19 01:15:35 +00:00
Ryan Pavlik 9a440d9bce st/oxr: Fix doxygen warning 2022-02-18 21:22:32 +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
Jakob Bornecrantz 49f95164a7 st/oxr: Use xrt_device_get_view_poses
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2022-02-16 23:15:16 +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
Jakob Bornecrantz fe9191a708 st/oxr: Sort extension list 2022-01-04 18:58:35 +00:00
Jarvis Huang 27550ffa39 aux/android: Looper trick for NativeActivity with app-glue 2021-12-02 09:40:36 -06:00
Christoph Haag 22d9d97e61 st/oxr: fix finding profiles for device
fixes 6627049af3
2021-11-24 01:36:25 +01:00
Christoph Haag 821c7f0f7a st/oxr: Don't create interaction profile in xrGetInputSourceLocalizedName
oxr_instance::oxr_interaction_profile is used to bind interaction profiles
available on the assigned device to interaction profiles suggested by the
application.

Creating an interaction profile that has not been suggested might interfere
with the binding code.

xrGetInputSourceLocalizedName can only be called after the action sets are
attached, meaning all the interaction profiles must have already been
suggested.
2021-11-24 01:34:13 +01:00
Christoph Haag 1a9e0750c7 st/oxr: document oxr_instance::oxr_interaction_profile 2021-11-24 01:34:13 +01:00