Commit graph

5609 commits

Author SHA1 Message Date
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
Jarvis Huang 4f90666b75 external: Update android-jni-wrap 2023-11-08 17:51:24 +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
Ryan Pavlik 51fa07cfd6 xrt: Better documentation for revised system devices/roles interface 2023-11-07 22:36:58 +00:00
Weijie Wang fdfe2fc459 ipc: Increase the duration of the starting timeout 2023-11-06 15:40:23 +00:00
Jakob Bornecrantz 5da1086d26 a/vk: Name VkInstance once we have the needed VkDevice
Note this is currently disabled due to bugs in Vulkan Loader / Mesa.
2023-11-06 12:59:09 +00:00
Jakob Bornecrantz e84d47400e a/vk: Disable naming of VkDescriptorSet objects
Mesa RADV leaks the names on descriptor pools we use reset on.
2023-11-06 12:59:07 +00:00
Jakob Bornecrantz e7bb70909f a/vk: Disable naming of VkSurfaceKHR objects
Causes crashes and asserts on Ubuntu 22.04 Mesa.
2023-11-06 12:58:22 +00:00
Jakob Bornecrantz 3f0d95d71f a/vk: Disable naming of VkInstance objects
Mesa as of this patch doesn't currectly support setting debug names on
VkInstance. And the Vulkan loader had a bug before 1.3.261 that would cause
crashes if trying to set the name on VkInstance.

faeb94c2df
2023-11-06 12:56:55 +00:00
Jakob Bornecrantz 2aa00dbf8f a/vk: Add VK_NAME_OBJ_DISABLED helper 2023-11-04 17:03:02 +00:00
Jakob Bornecrantz bb87f54730 a/vk: Make VK_NAME_OBJECT type safe 2023-11-04 17:02:56 +00:00
Jakob Bornecrantz e84ad85fc2 a/vk: Add object type to string helper 2023-11-04 15:04:26 +00:00
Jakob Bornecrantz 5b9e70f3a8 c/render: Fix named objects 2023-11-03 21:23:35 +00:00
Jakob Bornecrantz 70548ee0e9 t/common: Refactor lighthouse builder to use vive_builder helper 2023-11-03 19:14:43 +00:00
Jakob Bornecrantz be1b4ba5a6 a/vive: Add builder helper 2023-11-03 19:14:43 +00:00
Jakob Bornecrantz 332b32b71f ipc: Refactor and tidy client connection
Also move git hash check as early as possible.
2023-11-03 18:18:31 +00:00
Jakob Bornecrantz bfffb0c5c4 ipc: Constify client connection argument 2023-11-03 18:18:31 +00:00
Simon Zeni e67f9d7e52 a/vk: Name Vulkan objects 2023-11-03 16:26:56 +00:00
Simon Zeni 7cba92e933 c/util: Name Vulkan objects 2023-11-03 16:26:56 +00:00
Simon Zeni 2a513c14fe c/render: Name Vulkan objects 2023-11-03 16:26:56 +00:00
Simon Zeni 38be815f6d c/client: Name Vulkan objects 2023-11-03 16:26:56 +00:00
Simon Zeni c75db60478 c/main: Name Vulkan objects 2023-11-03 16:26:56 +00:00
Jakob Bornecrantz b90c397997 c/main: Tidy window surface creation code 2023-11-03 16:04:36 +00:00
Simon Zeni 4a1ff65856 a/vk: Remove VK_EXT_debug_marker 2023-11-03 16:04:36 +00:00
Simon Zeni c7dc483b9a a/vk: Use VK_EXT_debug_utils to name objects 2023-11-03 16:04:36 +00:00
Jakob Bornecrantz 91d4e399c8 a/vk: Add VK_EXT_debug_utils 2023-11-03 16:04:36 +00:00
Mateo de Mayo 347ae3ce22 t/slam: Use locks for CSV writers
Fixes a race condition that produced weirdly written csv files.
2023-11-02 21:34:05 +00:00
Mateo de Mayo 28b097338b t/slam: Add CSVWriter class 2023-11-02 21:34:05 +00:00
Jakob Bornecrantz 05d04b3ea0 ipc: Fix compile on musl 2023-11-02 15:06:02 +00:00
Hui Xu 7c6b0d1e98 ipc: Add macro TEMP_FAILURE_RETRY
- to ignore the signal -4 (ENTR)
2023-11-02 14:25:21 +00:00
Jarvis Huang 2e41280ae9 st/oxr: Route log output to Android logcat 2023-10-31 19:31:26 +00:00
Simon Zeni 9b288a6a1a c/[util/shader]: Implement cylinder layer for compute renderer 2023-10-28 19:50:58 +01:00
Simon Zeni 31cde143a1 c/[util/shaders]: Implement equirect2 layer for compute render 2023-10-28 19:47:51 +01:00
Simon Zeni ec26005952 c/shaders: Use fma in compute shader 2023-10-28 19:47:51 +01:00
Simon Zeni c4251cb907 c/util: Replace is_view_index_visible helper by is_layer_view_visible 2023-10-28 19:47:51 +01:00
BabbleBones 3aa2386950 d/steamvr_lh: handle unknown role hints 2023-10-25 23:27:30 -04:00
BabbleBones d5eeb65af9 d/steamvr_lh: clean up logs and clean up unused tracker inputs 2023-10-25 23:27:30 -04:00
BabbleBones 940a0290ea d/steamvr_lh: fix vive wand early hand enumeration 2023-10-25 23:27:30 -04:00
Jakob Bornecrantz 2f586030be t/common: Fix Rift-S builder 2023-10-25 14:34:55 +01:00
Jakob Bornecrantz cbf26357d1 c/client: Add helpers to unwrap native swapchains and compositors 2023-10-24 14:07:43 +00:00
Jakob Bornecrantz d0617c04d5 c/render: Remove old layer render shaders 2023-10-24 12:33:05 +00:00
Jakob Bornecrantz 2245811d1e c/main: Remove layer renderer 2023-10-24 12:33:05 +00:00
Jakob Bornecrantz 3293def0cb c/main: Remove layer renderer integration in renderer 2023-10-24 12:33:05 +00:00
Jakob Bornecrantz 958d62fcab c/main: Remove old graphics dispatch helpers 2023-10-24 12:33:05 +00:00
Jakob Bornecrantz 3dcd555a6f c/main: Use new comp_render helpers to render frame 2023-10-24 12:33:05 +00:00
Jakob Bornecrantz c5f4f0ab7a xrt: Remove old roles
Also remove all fallbacks helpers now.
2023-10-24 09:24:49 +00:00
Jakob Bornecrantz 1d476d4e32 st/oxr: Update role debug printing 2023-10-24 09:24:49 +00:00
Nico Marniok 5e48d22ecd st/oxr: Add input device hot-switch support
Co-authored-by: Korcan Hussein <korcan.hussein@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-10-24 09:24:49 +00:00
Korcan Hussein f60ffe5af7 st/oxr: Clone profiles to session on action sets attachment.
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-10-24 09:24:49 +00:00
Korcan Hussein d033955678 st/steamvr_drv: Add support for new dynamic device roles 2023-10-24 09:24:49 +00:00
Korcan Hussein 60ae73f571 ipc: Add support for dynamic device roles 2023-10-24 09:24:49 +00:00
Jakob Bornecrantz 5a38cbc4f0 st/prober: Add support for new dynamic device roles 2023-10-24 09:24:49 +00:00
Jakob Bornecrantz f6b1cc140d t/cli: Add support for new dynamic device roles 2023-10-24 09:24:49 +00:00
Jakob Bornecrantz 9331c8bb0a t/common: Add support for new dynamic device roles 2023-10-24 09:24:49 +00:00
Jakob Bornecrantz 2c49c0f9a7 t/sdl_test: Add support for new dynamic device roles 2023-10-24 09:24:49 +00:00
Jakob Bornecrantz dcdf270d13 d/remote: Add support for new dynamic device roles
Currently static.
2023-10-24 09:24:49 +00:00
Jakob Bornecrantz ccf6a4c8e3 u/system_helpers: Add static system device helper
As compared to one that can handle dynamic devices.
2023-10-24 09:24:49 +00:00
Nico Marniok 2718f0506e xrt: Add dynamic roles to xrt_system_devices
Doesn't fully remove the old way yet.

Co-authored-by: Korcan Hussein <korcan.hussein@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-10-24 09:24:49 +00:00
Jakob Bornecrantz d266b8d65a c/util: Add cylinder and equirect2 in graphics layer squasher
Co-authored-by: Simon Zeni <simon.zeni@collabora.com>
Co-authored-by: Charlton Rodda <charlton.rodda@collabora.com>
2023-10-23 22:20:41 +01:00
Jakob Bornecrantz 669e37220c c/util: Add to_tangent for view state 2023-10-23 22:20:41 +01:00
Simon Zeni 0d0addca82 c/util: Add calc_mv_inv_full function
Co-authored-by: Charlton Rodda <charlton.rodda@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-10-23 22:20:41 +01:00
Simon Zeni 38f1b35ac0 c/util: Compute eye and world inverse view matrix
Co-authored-by: Charlton Rodda <charlton.rodda@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-10-23 22:20:41 +01:00
Jakob Bornecrantz 2c2cacc8f1 c/util: Add mathinclude 2023-10-23 22:20:41 +01:00
Jakob Bornecrantz 3b174b0dab c/render: Add cylinder and equirect2 shaders
Co-authored-by: Simon Zeni <simon.zeni@collabora.com>
Co-authored-by: Charlton Rodda <charlton.rodda@collabora.com>
2023-10-23 22:20:41 +01:00
Jakob Bornecrantz 505a54bf8f c/render: Make UBO one shared layout available to fragment shader as well 2023-10-23 21:56:58 +01:00
Charlton Rodda f4980d35ea c/render: Fix typos [NFC] 2023-10-23 21:56:58 +01:00
Gabriele Boccone ce90c0a1c7 t/common: Fix creation on no driver available
Only say we can create a system if we have a driver in legacy builder.
2023-10-23 19:52:19 +01:00
Gabriele Boccone b500272c0b st/prober: Quit without crashing if no driver is available 2023-10-23 19:51:44 +01:00
Zhongwang Zhang 85fcbfaefe c/client: Make vulkan log configurable 2023-10-20 14:18:30 +01:00
Christoph Haag ef47498137 ipc: Fix session deactivation negative array index access
It is possible for s->global_state.active_client_index to be -1 when
update_server_state_locked is called:

ipc_server_activate_session is only called from
ipc_handle_compositor_predict_frame, which is only called from
ipc_compositor_wait_frame.

So it is possible to deactivate a session that was never activated.
2023-10-19 15:37:01 +02:00
Jakob Bornecrantz eee17ee2ff u/builders: Refactor space overseer creation helper 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz e805209fcd d/opengloves: Refactor creation 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 8b30819b35 t/common: Refactor WinMR builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 0a8fa312d6 t/common: Refactor SimulaVR builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 201ea799ac t/common: Refactor Simulated builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz fb8c941257 t/common: Refactor Rift-S builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 09c75b6aaf t/common: Refactor RGB builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 841fc7c644 t/common: Refactor QWERTY builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz d9329d1c7c t/common: Refactor Nreal Air builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 9a27a32b9c t/common: Refactor North Star builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 1d8bfc7532 t/common: Refactor Lighthouse builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz d2ceb81070 t/common: Refactor Legacy builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz e58926662f t/common: Don't destroy frame context on failure
This is handled later in the builder.
2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 0b9a8ea860 t/common: Return error message proper failure in legacy builder 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 08ec4e0259 u/system_helpers: Refactor hand-tracker helper getters 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 464a95abed u/system_helpers: Tidy functions [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 3184941c09 d/rs: Fix warnings [NFC] 2023-10-18 17:30:00 +01:00
Jakob Bornecrantz f5021dcf5a d/nreal_air: Silence warning [NFC] 2023-10-18 17:30:00 +01:00
Jakob Bornecrantz 8110fceb39 d/nreal_air: Tidy [NFC] 2023-10-18 17:28:24 +01:00
Jiali Zhang 8f70291cad c/client: Expose size limit for swapchains 2023-10-18 15:20:26 +01:00
Jiali Zhang 900c43a6e2 st/oxr: Verify max swapchain size 2023-10-18 15:14:21 +01:00