Commit graph

5601 commits

Author SHA1 Message Date
Rylie Pavlik 8d393ad3fa c/multi: Improve docs/markup of multi_compositor.
This makes the xrt_compositor inheritance diagram in Doxygen complete.
2023-12-08 11:43:49 -06:00
Jakob Bornecrantz d97d7d75c7 st/oxr: Handle XR_REFERENCE_SPACE_TYPE_LOCALIZATION_MAP_ML 2023-12-08 12:11:49 +00:00
Jakob Bornecrantz 142969b509 u/misc: Only free memory if there was an allocation error 2023-12-08 12:11:49 +00:00
0y8w1x 66e8db5d5a d/ulv5: Add UltraLeap v5 driver 2023-12-05 16:07:32 +00:00
utzcoz 0428ce4b0f s/oxr: Add explicit casting for PFNEGLGETPROCADDRESSPROC
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-12-05 15:41:34 +00:00
Jakob Bornecrantz 0ee84ea4a8 t/common: Use new u_builder helper 2023-12-05 12:55:42 +00:00
Jakob Bornecrantz dbcf753b1e t/common: Tidy builders a bit [NFC] 2023-12-05 12:55:42 +00:00
Jakob Bornecrantz 972c929333 u/builder: Add new u_builder helper
This does some of the heavy lifting when it comes to managing the system
devices and the space overseer. The same code was replicated in basically
all of the builders, this lets us avoid that.
2023-12-05 12:55:42 +00:00
Ryan Pavlik 1d09587bac t/oxr: Clean up docs 2023-12-04 22:27:09 +00:00
Ryan Pavlik debd15f6da t/oxr_android: Clean up gradle 2023-12-04 22:27:09 +00:00
Ryan Pavlik 4cb14719a9 d/sample: Implement missing APIs 2023-12-04 22:27:09 +00:00
Rylie Pavlik 617a704b29 xrt: Fix comment typo 2023-12-04 11:54:01 -06:00
Rylie Pavlik 9c7851f076 xrt: Fix typos, clarify docs 2023-12-04 11:53:32 -06:00
Jakob Bornecrantz 79a2f3f3d6 d/remote: Tidy [NFC] 2023-12-01 18:51:01 +00:00
utzcoz 7485975bfb d/remote: Use socket_close for destroy
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-12-02 02:12:43 +08:00
Charlton Rodda 1b93431173 d/remote: Fix socket closing on Windows 2023-12-01 15:31:18 +00:00
Christoph Haag e2a6f0501e st/oxr: Fix swapchain format list assert 2023-12-01 14:34:31 +00:00
Jakob Bornecrantz d380414731 t/libmonado: Support recentering of local spaces 2023-11-28 12:43:37 +00:00
Jakob Bornecrantz d43334120c t/ctl: Support recentering of local spaces 2023-11-28 12:43:37 +00:00
Jakob Bornecrantz dfbe48a188 ipc: Add support for recentering local spaces 2023-11-28 12:43:37 +00:00
Jakob Bornecrantz a3a9782272 u/space_overseer: Implement recentering for supported setups 2023-11-28 12:43:37 +00:00
Jakob Bornecrantz b77d460d59 u/space_overseer: Improve comment [NFC] 2023-11-28 12:43:37 +00:00
Jakob Bornecrantz 74b6d263e9 u/pp: Add new error message to print 2023-11-28 12:43:37 +00:00
Jakob Bornecrantz 9b5cfadc64 xrt: Add function to request recentering of local spaces 2023-11-28 12:43:37 +00:00
Jakob Bornecrantz 8c1ee42fee a/tracking: Change destructor to be private 2023-11-27 19:49:24 +00:00
Jakob Bornecrantz e9d8e0db21 a/tracking: Tidy and document FrameMat [NFC] 2023-11-27 19:49:24 +00:00
Jakob Bornecrantz 9070894455 ipc: Verify length of received commands on Windows
Co-authored-by: Simon Zeni <simon.zeni@collabora.com>
2023-11-26 14:03:52 +00:00
Simon Zeni 81246de70a ipc: Read only the exact size of the ipc_command in client_loop on Linux 2023-11-26 13:45:21 +00:00
Simon Zeni 9b6eeb0bba ipc: Add ipc_command_size function to prototype generation 2023-11-26 13:45:21 +00:00
Christoph Haag e5060d166b st/oxr: Fix build with XR_FB_display_refresh_rate disabled 2023-11-24 16:03:09 +01:00
Christoph Haag c58f06f94c ipc: Fix type warning 2023-11-24 16:03:09 +01:00
Jakob Bornecrantz c197ba999f st/oxr: Add support for reference space usage 2023-11-21 21:37:06 +00:00
Jakob Bornecrantz a0a0f7cfa6 ipc: Add support for reference space usage 2023-11-21 21:37:06 +00:00
Jakob Bornecrantz 5a789ff623 u/space_overseer: Add support for reference space usage 2023-11-21 21:37:06 +00:00
Jakob Bornecrantz d80036fd0e xrt: Add reference space usage information 2023-11-20 22:05:34 +00:00
Jakob Bornecrantz 4fe85a0acc xrt: Add LOCAL_FLOOR and UNBOUNDED generic space poses 2023-11-20 22:05:34 +00:00
Jakob Bornecrantz fffdfa1c4b xrt: Refactor reference functions to be clearer 2023-11-20 22:02:06 +00:00
Jakob Bornecrantz 11ae300946 xrt: Tidy and improve docs in xrt_defines.h [NFC] 2023-11-20 22:02:06 +00:00
Jakob Bornecrantz a6d840b0b1 c/util: Fix leaks of image views in swapchain
This fixes a regression I introduced in !1417.
2023-11-20 21:55:11 +00:00
Jakob Bornecrantz add64c1531 c/util: Improve error paths in swapchain creation 2023-11-20 21:55:11 +00:00
Jakob Bornecrantz c6a4f62e6c c/util: Tidy comp_swapchain.c [NFC] 2023-11-20 21:55:11 +00:00
Jakob Bornecrantz 9ac135edce ipc: Share per client thread shutdown code [NFC]
The two paths was already identical, so just make it one.
2023-11-20 21:40:14 +00:00
Jakob Bornecrantz adc3fe879d c/main: Guard VkQueue access when calling vkQueuePresentKHR
The VkQueue in vkQueuePresentKHR is externally synchronized, so we need
to take the queue_mutex when we call that function.

Found this with the [latest validation layers][1] and the OpenXR CTS test
Swapchains. This has probably been a longstanding bug in Monado as that
particular code is fairly old.

[1]: https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/6631
2023-11-20 18:09:53 +00:00
Jakob Bornecrantz c3157335ef c/main: A few more uses of VK_CHK helpers [NFC] 2023-11-20 18:03:10 +00:00
Jakob Bornecrantz c7ec85cfd2 a/vk: Improve vk_print_result 2023-11-20 18:03:10 +00:00
Zhongwang Zhang ccb9f957bf st/oxr: Complete implementation of extension [XR_FB_display_refresh_rate] 2023-11-20 16:58:31 +00:00
Zhongwang Zhang 74df016dbf ipc: Implement display refresh rate functions 2023-11-20 16:58:31 +00:00
Zhongwang Zhang df07128590 c/multi: Implement display refresh rate functions 2023-11-20 16:58:31 +00:00
Zhongwang Zhang a9017c8501 c/main: Implement display refresh rates function stubs 2023-11-20 16:58:31 +00:00
Zhongwang Zhang 195efff9ba xrt: Add new API in xrt_compositor and xrt_multi_compositor_control interfaces 2023-11-20 16:58:31 +00:00
Zhongwang Zhang f84bef916f xrt: Add hz suffix, follow code style and add limit to refresh rate array 2023-11-20 16:58:23 +00:00
Simon Zeni 8f6603d019 st/oxr: Implement XR_KHR_vulkan_swapchain_format_list 2023-11-20 09:40:20 -05:00
Jakob Bornecrantz 24ecd455ea st/oxr: Track graphics extension used to create session 2023-11-20 09:40:20 -05:00
Simon Zeni fb023e001a a/vk: Use formats list from xrt_swapchain_create_info in create_image 2023-11-20 09:40:20 -05:00
Simon Zeni 2571ef8d57 xrt: Add formats list to xrt_swapchain_create_info 2023-11-18 12:30:58 +00:00
Simon Zeni b727aa9df7 xrt: Use uint32_t instead of int64_t for swapchain format 2023-11-18 12:30:58 +00:00
Simon Zeni afb12a4c5d xrt: Fix graphics includes in xrt_openxr_includes 2023-11-18 12:30:54 +00:00
Rylie Pavlik 8f380925b8 c/main: Handle return value 2023-11-17 11:19:37 -06:00
Rylie Pavlik 3ebac955a6 c/main: More propagate errors 2023-11-17 11:19:37 -06:00
Rylie Pavlik a23cefd968 c/main: Fix duplicate include [NFC] 2023-11-17 11:19:37 -06:00
Rylie Pavlik b3d4ee2186 c/util: Propagate some Vulkan errors 2023-11-17 11:19:37 -06:00
Rylie Pavlik 9e5c0d72e1 c/util: Make sure to zero array_size
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-11-17 11:19:37 -06:00
Jakob Bornecrantz 580ff4ceb8 c/util: Re-order functions in comp_swapchain.c [NFC] 2023-11-17 11:19:37 -06:00
Jakob Bornecrantz ab3c7e99ff c/util: Use vk_mini_helpers for image destruction 2023-11-17 11:19:37 -06:00
Rylie Pavlik bafdd8ddbc a/vk: Improve documentation for vulkan error handlers 2023-11-17 11:19:37 -06:00
Jakob Bornecrantz d28e647744 st/oxr: Make debug utils forcible
And don't always turn it on for XR_KHR_vulkan_enable, as it would
result in crashes on old Vulkan drivers (like those on Pixel 3).
2023-11-17 16:39:55 +00:00
Simon Zeni 0fe8737ec5 cmake: Fix build with SDL2 on Alpine Linux
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Rylie Pavlik <rylie.pavlik@collabora.com>
2023-11-16 14:06:54 +00:00
Jakob Bornecrantz 7e8d35a1a8 st/oxr: Use function helper [NFC] 2023-11-16 00:17:39 +00:00
Jakob Bornecrantz 3060690cbe d/ohmd: Tidy includes [NFC] 2023-11-16 00:17:39 +00:00
Jakob Bornecrantz 37e46a9083 d/ohmd: Fix warnings [NFC] 2023-11-16 00:17:39 +00:00
Jakob Bornecrantz 28315ecdc4 d/vive: Follow common naming of update_inputs [NFC] 2023-11-16 00:17:39 +00:00
Jakob Bornecrantz b02645980b d/wmr: Follow common naming of update_inputs [NFC] 2023-11-16 00:17:39 +00:00
Jakob Bornecrantz c8bb2009f2 xrt: Tidy xrt_device [NFC] 2023-11-16 00:17:39 +00:00
Rylie Pavlik 9a4bc4d9c7 monado: Adding IWYU pragmas 2023-11-15 12:37:07 -06:00
Rylie Pavlik 0ac6fdae94 scripts: Add include-what-you-use (iwyu) related scripts and configs 2023-11-15 12:37:07 -06:00
Rylie Pavlik e4be3cbd96 c/util: Fix doxygen warning 2023-11-15 11:11:22 -06:00
Rylie Pavlik 99e2e005f8 c/render: Fix doxygen warning 2023-11-15 11:11:22 -06:00
Rylie Pavlik 4671d1adb2 a/vive: Fix doxygen warning 2023-11-15 11:11:22 -06:00
Rylie Pavlik 0fab8c23b4 c/client: Fix doxygen warnings 2023-11-15 11:11:22 -06:00
Rylie Pavlik 4ef986aab0 st/oxr: Fix doxygen warning 2023-11-15 11:11:22 -06:00
utzcoz 4c1fd41641 gradle: Migrate gradle's buildToolsVersion to property one
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-11-15 10:06:20 -06:00
utzcoz 33602482a2 xrt/android: Migrate deprecated flavorDimensions gradle API
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-11-15 10:06:20 -06:00
utzcoz 1e82e8e5f0 xrt/android: Move extractNativeLibs to build script for openxr_android
It's recommended by Android Studio when upgrading AGP.

Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-11-15 10:06:20 -06:00
utzcoz 2561475fc4 xrt/android: Enable buildFeature aidl for ipc/android
It's recommended when upgrading AGP with Android Studio.

Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-11-15 10:06:20 -06:00
utzcoz 30ebd2fe1b xrt/android: Apply Java code format by latest google-java-format
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-11-15 10:06:20 -06:00
utzcoz 7d61a6f892 xrt/android: Bump google-java-format to 1.18.1
Use the latest google-java-format to support JDK17 for AGP 8.x.

Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-11-15 10:06:20 -06:00
Jakob Bornecrantz 33498dc6b2 st/oxr: Make misc extensions a build time option 2023-11-15 13:16:50 +00:00
Jakob Bornecrantz b7299ead15 st/oxr: Make interaction profiles a build time option 2023-11-15 13:16:50 +00:00
Jakob Bornecrantz 179c10c399 st/oxr: Properly guard misc extensions with ifdefs 2023-11-15 13:16:50 +00:00
Jakob Bornecrantz 60df8b60ba st/oxr: Properly guard interaction extensions access with ifdefs 2023-11-15 13:16:50 +00:00
Jakob Bornecrantz d71082b5e1 st/oxr: Properly check all extension interaction profiles 2023-11-15 13:16:50 +00:00
Simon Zeni 818e519f50 xrt: make get_visibility_mask return xrt_return_t 2023-11-15 12:51:04 +00:00
Christoph Haag 7cd151484e st/oxr: Add forgotten newline to quirks output [NFC] 2023-11-15 12:38:59 +00:00
Jakob Bornecrantz 6e8a40112b st/oxr: Handle view index for visibility mask 2023-11-15 12:03:06 +00:00
Jakob Bornecrantz 9a09d7956d xrt: Add view_index to visibility mask getter
And add helper caller function.
2023-11-15 12:02:08 +00:00
Jakob Bornecrantz 6123deaa75 u/mask: Scale output to FoV of the view 2023-11-15 12:02:08 +00:00
Jakob Bornecrantz 0064d16f47 u/mask: Tidy function 2023-11-15 12:02:08 +00:00
Jakob Bornecrantz 8bdc2f1edf ipc: Fix visibility mask leak 2023-11-15 12:02:08 +00:00
Zhongwang Zhang bb6e8eb9f8 st/oxr: Handle the XR_SESSION_NOT_FOCUSED case for XRInput 2023-11-15 11:47:32 +00:00
Jakob Bornecrantz 88cf637e95 ipc: Check return of ipc_call_space_create_semantic_ids 2023-11-14 20:27:15 +00:00
Jakob Bornecrantz 7c96a23325 ipc: Tidy ipc_generated_protocol.h generator function 2023-11-14 19:38:05 +00:00
Jakob Bornecrantz 195d45d960 ipc: Protect ipc_generated_protocol.h with cpp header guard 2023-11-14 19:24:13 +00:00
Simon Zeni 96be7675ed st/oxr: Implement XR_KHR_visibility_mask 2023-11-14 17:02:24 +00:00
Simon Zeni c1ce722d6d st/oxr: Add view index verify helper 2023-11-14 17:02:24 +00:00
Simon Zeni 5656f86c47 ipc: Add get_visibility_mask 2023-11-14 17:02:24 +00:00
Simon Zeni 1ec26ded40 u/mask: Introduce u_visibility_mask 2023-11-14 17:02:24 +00:00
Jakob Bornecrantz 69afb62742 xrt: Add visibility mask interface 2023-11-14 10:49:46 -05:00
Jakob Bornecrantz 2d79fb1a3f st/oxr: Enable XR_MSFT_unbounded_reference_space 2023-11-14 12:51:28 +00:00
Jakob Bornecrantz 72a68cf54b st/oxr: Enable XR_EXT_local_floor 2023-11-14 12:51:28 +00:00
Jakob Bornecrantz 0c2f1e83e0 st/oxr: Expose unbounded if extension enabled and space is supported 2023-11-14 12:51:28 +00:00
Jakob Bornecrantz c2c74b8b85 st/oxr: Expose local_floor if extension enabled and space is supported 2023-11-14 12:51:28 +00:00
Jakob Bornecrantz 2fbe588f66 st/oxr: Validate XrReferenceSpaceType in common code
Also deal with the different types of error code returns that the CTS expects.
2023-11-14 12:51:28 +00:00
Jakob Bornecrantz 6cb275803c st/oxr: Make reference space type support per system
Let's systems support different sets of references spaces.
2023-11-14 12:51:28 +00:00
Jakob Bornecrantz 1b80d7182e ipc: Add support for local_floor 2023-11-14 12:43:58 +00:00
Jakob Bornecrantz f11c1fa699 u/space: Add support for local_floor 2023-11-14 12:43:58 +00:00
Jakob Bornecrantz c5b800b324 d/remote: Add support for local_floor 2023-11-14 12:43:58 +00:00
Jakob Bornecrantz 050db98b7d xrt: Add local_floor to xrt_space_overseer
Used to implement XR_EXT_local_floor.
2023-11-14 12:43:58 +00:00
Jakob Bornecrantz 83b77285bd ipc: Use check helpers in other client code as well 2023-11-14 01:20:51 +00:00
Jakob Bornecrantz bfaf615d4f ipc: Replace IPC_CHK_CALL macro with other helper 2023-11-14 01:20:51 +00:00
Jakob Bornecrantz 8d61577081 ipc: Add xrt check return helpers 2023-11-14 01:20:51 +00:00
Jakob Bornecrantz 440b1f2660 ipc: Add ipc_print_result helper 2023-11-14 01:20:51 +00:00
Jakob Bornecrantz 3de7bab023 c/util: Fix synchronisation errors with scratch images on gfx path 2023-11-13 23:09:43 +00:00
Christoph Haag 7efd580a70 st/oxr: CTS fix: return XR_SUCCESS for no action sets synced 2023-11-13 17:11:57 +00:00
Weijie Wang 86c3e217cc c/main,a/android,external: Add argument to specify display mode id for surface creation 2023-11-13 16:09:11 +00:00
Jakob Bornecrantz 4a8400538c ipc: Use message channel's log_level in client 2023-11-13 12:47:12 +00:00
Jakob Bornecrantz 2d7041c797 ipc: Move ipc_message_channel functions to own files
What actually happened:

  copy src/xrt/ipc/shared/{ipc_utils.h => ipc_message_channel.h} (95%)
  rename src/xrt/ipc/shared/{ipc_utils_unix.c => ipc_message_channel_unix.c} (99%)
  rename src/xrt/ipc/shared/{ipc_utils_windows.cpp => ipc_message_channel_windows.cpp} (99%)
  rewrite src/xrt/ipc/shared/ipc_utils.h (94%)
2023-11-13 12:47:12 +00:00
Jakob Bornecrantz 850e57a002 ipc: Move non-channel functions to utils [NFC] 2023-11-13 12:47:12 +00:00
Jakob Bornecrantz 5dfdab9e80 ipc: Split UNIX and Windows utils implementations more 2023-11-13 12:47:12 +00:00
Jakob Bornecrantz 5e92df460d ipc: Tidy Windows utils file [NFC] 2023-11-13 12:47:12 +00:00
Jakob Bornecrantz f0c2167fb8 ipc: Tidy UNIX utils files [NFC] 2023-11-13 12:47:12 +00:00
Jakob Bornecrantz a339d7adf4 ipc: Remove unused function [NFC] 2023-11-13 12:47:12 +00:00
Michael Graham 255b62e892 d/wmr: Add Dell Visor support to WMR driver 2023-11-13 11:56:13 +00:00
Jakob Bornecrantz cec787ba0f ipc: Add variable number of views get function 2023-11-09 18:37:47 +00:00
Jakob Bornecrantz 7251417569 ipc: Add functions to lock/unlock the client connection 2023-11-09 17:56:27 +00:00
Jakob Bornecrantz e576424995 ipc: Add ability to do variable length calls 2023-11-09 17:56:27 +00:00
Jakob Bornecrantz 6d990ba480 ipc: Refactor proto generation a little bit 2023-11-09 17:49:35 +00:00
Zhongwang Zhang d6168fdbb4 st/oxr: Add KHR_vulkan_enable rdc capture support 2023-11-09 13:45:48 +00:00
Zhongwang Zhang e328c42121 st/oxr: RenderDoc support on Vulkan/GLES client sides and Android platform
Makes it so RenderDoc can be captured by the button in UI.
2023-11-09 13:45:48 +00:00
Zhongwang Zhang b1aedcf1d5 st/oxr: Enable VK_EXT_debug_utils extension for client side on the platform that support it 2023-11-09 13:45:48 +00:00
Zhongwang Zhang aadb9517f3 st/oxr: Enable RenderDoc compiling on Android 2023-11-09 13:45:48 +00:00
Zhongwang Zhang f93d08c7f5 c/client: Add renderdoc_enabled implementation for VK and EGL
Currently only used on Android platforms.
2023-11-09 13:45:48 +00:00
Zhongwang Zhang 23595274ee c/client: Allow passing down debug_utils_enabled flag 2023-11-09 13:45:48 +00:00
Zhongwang Zhang 3dde1f2d27 a/vk: Enable VK_EXT_debug_utils to be enabled in given 2023-11-09 13:45:48 +00:00
Zhongwang Zhang 51690cf20e a/vk: Add RenderDoc helpers
Adds helper for inserting frame delimiter.
2023-11-09 13:45:48 +00:00
Zhongwang Zhang 017e2b2f29 xrt: Enable passing down renderdoc status 2023-11-09 13:45:43 +00:00
Zhongwang Zhang 0f257e1bed xrt: Enable passing down VK_EXT_debug_utils enabled status 2023-11-09 13:45:23 +00:00
Jarvis Huang 9e913b5a31 c/main: Support creating surface with title on Android 2023-11-08 17:51:29 +00:00
Jakob Bornecrantz 60bbded2e2 ipc: Remove left over static roles 2023-11-07 22:57:44 +00:00
Jakob Bornecrantz f1d275708d libmonado: Fix dynamic roles 2023-11-07 22:57:44 +00:00
Jakob Bornecrantz 14d94d8d9a t/common: Fix North Star builder
Closes #296
2023-11-07 22:51:27 +00:00