Commit graph

2742 commits

Author SHA1 Message Date
Christoph Haag ab209bcf18 c/main: Add return value for when asserts are disabled
It's not worth introducing a new error code for this case, just
return XRT_ERROR_VULKAN.

Fixes error with asserts disabled

../src/xrt/compositor/main/comp_compositor.c: In function 'compositor_mark_frame':
../src/xrt/compositor/main/comp_compositor.c:186:1: warning: control reaches end of non-void function [-Wreturn-type]
  186 | }
      | ^
2021-07-15 01:31:19 +02:00
Christoph Haag 86e42858b7 d/qwerty: Add reasonable alternative code paths for asserts
In release builds asserts will be disabled, so we should try to handle the
assert cases reasonably.

This commit fixes several unused variable warnings when asserts are disabled.
2021-07-15 01:19:13 +02:00
Christoph Haag 2b94b2b165 d/ns: Fix may be used uninitialized warnings 2021-07-15 01:10:40 +02: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
Christoph Haag e2e13b7ac3 st/gui: Don't access first vec3 member as float array
It produces a warning

../src/xrt/state_trackers/gui/gui_scene_debug.c:141:9: warning: ‘igInputFloat3’ accessing 12 bytes in a region of size 4 [-Wstringop-overflow=]
  141 |         igInputFloat3(name, (float *) &value.x, "%+f", ImGuiInputTextFlags_ReadOnly);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-07-15 00:59:09 +02:00
Jakob Bornecrantz cb9ce8b34e t/calibration: Add support for RGB images 2021-07-13 15:01:00 +00:00
Jakob Bornecrantz dbb6b1f43c t/calibration: Make it possible to select number distortion parameters 2021-07-13 15:01:00 +00:00
Jakob Bornecrantz 9aff6fb9b3 u/sink: Add special converter sink that passes through YUV, L8 and RGB 2021-07-13 15:01:00 +00:00
Jakob Bornecrantz f725924723 st/gui: Make it possible to select the DepthAI camera in Video select UI 2021-07-13 15:01:00 +00:00
Jakob Bornecrantz 6beb57bf98 st/gui: Add support to record from ELP 3D camera 2021-07-13 15:01:00 +00:00
Jakob Bornecrantz 33563ccb7e st/gui: Correct order of arguments to xrt_fs_stream_start 2021-07-13 15:01:00 +00:00
Jakob Bornecrantz ae3a2179b9 st/gui: Check that we actually opened the video device 2021-07-13 15:01:00 +00:00
Jakob Bornecrantz 9e5df0f504 st/oxr: Calculate normalized sub-image offsets and sizes 2021-07-10 17:59:17 +01:00
Jakob Bornecrantz 390b06b22a st/oxr: Put all sub-image handling in one place (NFC) 2021-07-10 17:59:17 +01:00
Jakob Bornecrantz 570e7a5702 st/oxr: Tidy oxr_session_frame_end.c (NFC) 2021-07-10 17:59:17 +01:00
Jakob Bornecrantz 189aea97aa st/oxr: Refactor out end frame function into own file 2021-07-10 17:59:17 +01:00
Jakob Bornecrantz b8d88113c2 st/oxr: Add gfx to session gfx files 2021-07-10 17:59:17 +01:00
Jakob Bornecrantz 7bd1dba1d8 xrt: Add normalized sub-image offset and size in layer data
This makes the compositor not have to care about texture size.
2021-07-10 17:58:54 +01:00
Moses Turner e312422e61 t/gui: Add tracing support 2021-07-09 20:24:38 -05:00
Jakob Bornecrantz 94d029ed15 d/dai: Add tracing support 2021-07-09 20:23:49 -05:00
Jakob Bornecrantz 09513d73af d/v4l2: Add tracing support 2021-07-09 21:43:21 +01:00
Jakob Bornecrantz c278618ec1 t/hsv: Add tracing support 2021-07-09 21:38:02 +01:00
Jakob Bornecrantz cdf30b00e1 u/sink: Add tracing support 2021-07-09 21:36:57 +01:00
Jakob Bornecrantz e04decbe64 u/trace_marker: Add sink category 2021-07-09 19:19:50 +01:00
Christoph Haag 9ba24e3b15 t/ctl: Fix error message when toggling io fails 2021-07-07 00:50:07 +02:00
Christoph Haag e21f4a2458 t/ctl: Add usage information 2021-07-07 00:49:28 +02:00
Christoph Haag 250ef94d71 st/oxr: Don't go to READY after EXITING
The STOPPING state has two possible follow up paths:

STOPPING -> IDLE -> READY
STOPPING -> IDLE -> EXITING

After EXITING, the application must call xrDestroySession; there is no meaningful
session state after EXITING.

To go to the READY state again, the application should first create a new session.

Applications that are lazy and drain the entire event queue and only handle
the last encountered state would be affected by "skipping" the EXITING state.
2021-07-02 15:19:00 +00:00
Jakob Bornecrantz 5838d737b3 u/sink: Tidy and add some comments to queue sink (NFC) 2021-06-27 00:59:24 +00:00
Jan Schmidt 8192e74f76 d/wmr: Compute visible region for render rectangle.
Use the distortion function to calculate the visible limits of the
display and then configure the rendered FoV angles accordingly.
2021-06-26 03:52:32 +10:00
Jan Schmidt dfe932ffd7 d/wmr: Add an extensible headset map.
Add a mechanism for recognising known headsets and handling specific
init/deinit sequences for those that need it.
2021-06-26 03:52:29 +10:00
Dan Weatherford 6bb3577b1b d/wmr: Implement Lenovo explorer support.
Recognise the Lenovo explorer device
2021-06-26 03:52:29 +10:00
Jan Schmidt bad625965a d/wmr: Extract JSON configuration from the firmware.
Pull in the WMR config obfuscation key and extract the JSON
calibration data.

Based on a patch from Dan Weatherford <sabretooth@gmail.com>
2021-06-26 03:52:26 +10:00
Dan Weatherford 3ca80e9607 d/wmr: Add functions to read raw config data
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2021-06-26 03:52:26 +10:00
Jan Schmidt 0cf7b4a9b3 d/wmr: Add render distortion configuration
Take the parameters from the headset configuration and the existing
render FoV, and use them to instantiate a distortion mesh.

TODO: Reverse the distortion in order to calculate good FoV range
that covers the full view for each headset.
2021-06-26 03:52:23 +10:00
Jan Schmidt f663727b07 d/wmr: Add some groundwork for config parsing.
Sketch out some groundwork for parsing WMR config blocks,
using some hard-coded values from my headset for now. Later,
this will be parsed from the headset JSON blob.
2021-06-26 03:52:16 +10:00
Dan Weatherford fabf01ff39 aux/math: Add math_quat_slerp() 2021-06-25 17:40:07 +01:00
Jan Schmidt 4581a7a9a6 aux/math: Implement math_matrix_3x3_inverse.
Add a function to invert 3x3 matrices, to reverse 2D
affine transforms.
2021-06-25 17:40:07 +01:00
Christoph Haag bcc50dbd4f st/oxr: Add checks for Vulkan graphics bindings 2021-06-25 01:10:25 +02:00
Moses Turner 7461c57043 cmake: make ulv2 build a little better 2021-06-23 23:40:43 +01:00
Jakob Bornecrantz 47470cc8e2 d/ns: Use fread when reading from config file 2021-06-21 12:29:31 -05:00
Moses Turner 3569e4f2ed d/ns: Fix 3D distortion FOV calc
co-authored-by: Nico Zobernig <nico.zobernig@gmail.com>
2021-06-21 12:29:31 -05:00
Moses Turner bcadbea3aa d/ns: Clean utility_northstar a bit 2021-06-21 12:29:31 -05:00
Moses Turner 7e385aa810 d/ns: Big refactor 2021-06-21 12:29:31 -05:00
Moses Turner 93ec678110 aux/util: Add North Star "VIPD" and "polynomial 2D" distortion methods 2021-06-21 12:29:31 -05:00
Moses Turner 017997fba3 aux/math: Add math_map_ranges function 2021-06-21 12:29:31 -05:00
Moses Turner 01bfed1694 aux/util: Make new u_extents_2d as alternative to u_device_simple_info 2021-06-21 14:49:35 +00:00
Jakob Bornecrantz e554f9ee02 ipc: Fix NULL check stopping main app visibility events from working 2021-06-18 20:13:46 +01:00
Christoph Haag ccb9777a47 d/vive: Set hand tracking values to actives
fixes !716 which introduced the need for setting hand joint active status.
2021-06-16 23:17:07 +02:00
Ryan Pavlik ad44f42b24 aux/vk: Add fence import for windows 2021-06-15 17:37:14 -05:00
Ryan Pavlik 2d20a6436c comp: Wrap a unistd include for Windows. 2021-06-15 17:37:14 -05:00
Jakob Bornecrantz ebc2208a73 c/main: Also resize on VK_SUBOPTIMAL_KHR 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 9996d686e4 c/main: Tidy 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 1eebc12780 c/main: Refactor out viewport calculation into own function 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 6d011e25d4 c/main: Give the correct queue family argument to vkGetPhysicalDeviceSurfaceSupportKHR 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz f38932cb64 c/main: Tidy comp_renderer fence creation a bit 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 65ca3113f8 c/main: Allow to specifiy image usage for target images 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz fd1a916e0b c/main: Tidy and add a bit of debug to comp_target_swapchain 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 0f07e5b899 c/main: Tweak swapchain formats a bit 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 928ae5b27a c/render: Add support for non-freeable descriptor pools 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 6c033658a8 c/render: Add support for storage image descriptors 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 8a7d857dde aux/vk: Add the option to handle optional device features 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 4bbc13f5d4 aux/vk: Add support for VK_EXT_robustness2 and tidy 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz bf27691280 aux/vk: Refactor out optional extension handling 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 57d24ecdbb aux/vk: Make it possible to get a compute only queue 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz c42d681db0 aux/vk: Add vkCmdCopyBufferToImage and vkCmdCopyImageToBuffer 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 8899b267a6 aux/vk: Add vkCmdDispatch, vkCreateComputePipelines and vkResetDescriptorPool functions 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz 4b9b1f991c xrt: Add xrt_device_compute_distortion helper 2021-06-15 19:45:14 +00:00
Jakob Bornecrantz b805742a53 c/main: Do not list VK_FORMAT_A2B10G10R10_UNORM_PACK32 as a supported format 2021-06-15 14:27:07 +00:00
Jakob Bornecrantz aa3f071d2b u/trace_marker: Refactor init to fix bug 2021-06-14 19:12:14 +01:00
Jakob Bornecrantz c2c49cb6d3 u/trace_marker: Make sure to include headers outside of extern block 2021-06-14 19:12:12 +01:00
Moses Turner 6285223fd2 d/dai: Even more tidy 2021-06-11 18:49:50 +01:00
Jakob Bornecrantz 576593010f d/dai: Add code so we can open mono cameras with compile time option 2021-06-11 16:48:30 +00:00
Jakob Bornecrantz 96248931cc d/dai: Refactor a bit so we can at compile time support OAK-D 2021-06-11 16:48:30 +00:00
Moses Turner d555b255fe st/gui: Add support for depthAI camera in record scene
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2021-06-10 14:32:07 -05:00
Moses Turner 37cbbb6660 d/dai: Add simple DepthAI driver
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2021-06-10 14:32:07 -05:00
Moses Turner 01283257b2 xrt: clarify camera type (NFC) 2021-06-10 19:25:14 +01:00
quic_zhibinw 76cf6aeae4 st/oxr: Transform projection layer pose to global space. 2021-06-10 17:08:04 +08:00
Ryan Pavlik 2c87f57ad1 cmake: Make sure st_oxr exposes its optional vulkan/gl dependencies
Fixes builds of tests on Windows
2021-06-08 12:05:23 -05:00
Jakob Bornecrantz f9b5097134 c/client: Use the EGL compositor's display in swapchain 2021-06-02 14:26:59 +00:00
Jakob Bornecrantz b7b469089c t/fm: Add simple FrameMat that wraps a cv::Mat 2021-05-31 13:43:19 +00:00
Christoph Haag 6ba07514ef ipc: Add env var to ignore client/service version conflicts 2021-05-26 22:22:04 +02:00
Christoph Haag f49d3ae404 ipc: Check that service and client are the same git revision 2021-05-26 22:21:08 +02:00
Jakob Bornecrantz b3e9653994 t/gui: Show git hash in Window title (NFC) 2021-05-26 16:33:47 +01:00
Jakob Bornecrantz 606b23b5c4 d/rs: Tidy code (NFC) 2021-05-18 03:48:50 +01:00
Jakob Bornecrantz 855cdb4c29 aux/vk: Tidy code (NFC) 2021-05-18 03:48:50 +01:00
Moses Turner 5cb130cd08 d/rs: cleanup and initialize u_config_json with zero 2021-05-18 01:22:39 +00:00
Moses Turner 36bc45b686 util: make sure u_config_json.file_loaded is false if we didn't load the file 2021-05-18 01:22:39 +00:00
Christoph Haag 82d9ed75c2 aux/vk: Check that native handles are importable 2021-05-18 03:01:44 +02:00
zhibinw 92565b7f21 ipc/android: support create surface from runtime. 2021-05-17 16:20:29 +00:00
Jae Lee df9ebf261f d/illixr: Update ILLIXR driver. 2021-05-16 22:59:32 +00:00
Ryan Pavlik bdc53b97a3 gradle: Apply suggestion from android studio 2021-05-14 14:55:08 -05:00
Ryan Pavlik d11ef4ae1e Revert "gradle: Only forward EIGEN3_INCLUDE_DIR definition if we actually have it set."
This reverts commit 0868a90a1f.
2021-05-14 14:54:52 -05:00
Moses Turner 302e72b2fe d/rs: remove superfluous rs_update_offset; add config options 2021-05-13 17:57:34 -05:00
Christoph Haag f6e831d8fb steamvr: Don't crash if we don't have bindings for device 2021-05-13 14:08:24 +02:00
Jakob Bornecrantz 13a5036b24 c/main: Make temp_vk be a pointer 2021-05-11 16:34:10 +00:00
Jakob Bornecrantz 9b6b5b7e6a c/main: Do not copy vk_bundle 2021-05-11 16:34:10 +00:00
Jakob Bornecrantz bd6e15c70c c/main: Follow style of using vk variable for vk_bundle interactions 2021-05-11 16:34:10 +00:00
Jakob Bornecrantz 3af65d60d2 c/client: Follow style of using vk variable for vk_bundle interactions 2021-05-11 16:34:10 +00:00
Christoph Haag 28a29f8152 st/oxr: Fix xrGetSystemProperties crash in headless mode
fixes #125

v2: Handle sys->xsysc being NULL
2021-05-11 02:10:58 +02:00
Moses Turner 4ff7fb74ff aux/util: only do tracing things if XRT_FEATURE_TRACING is enabled 2021-05-10 10:10:18 -05:00