Commit graph

4027 commits

Author SHA1 Message Date
Jakob Bornecrantz 53a936a720 c/main: Ask for VK_KHR_image_format_list optionally 2022-06-12 11:09:36 +01:00
Jakob Bornecrantz 0682407ec6 c/null: Ask for VK_KHR_image_format_list optionally 2022-06-12 11:09:36 +01:00
Jakob Bornecrantz c026de6307 st/oxr: Ask for VK_KHR_image_format_list optionally 2022-06-12 11:09:36 +01:00
Jakob Bornecrantz bff61bec4b a/vk: Create image with mutable format if a sRGB on Android 2022-06-12 11:09:36 +01:00
Jakob Bornecrantz 2b29e925ea a/vk: Add check for VK_KHR_image_format_list device extension 2022-06-12 11:09:36 +01:00
Jakob Bornecrantz 4150028cb1 a/vk: Add a lot more formats vk_format_string 2022-06-12 11:09:36 +01:00
Moses Turner 633439e439 c/main: Fix rounding math and ensure even image sizes for readback 2022-06-12 00:50:28 +01:00
Moses Turner 18678786b7 a/gst: Complain if the image size is not divisible by two 2022-06-12 00:45:00 +01:00
Moses Turner 50e3a3cfa1 st/gui: Use main profile when recording videos 2022-06-11 22:26:56 +01:00
Julian Petrov 32fd49d52b st/oxr: Implement XR_KHR_win32_convert_performance_counter_time 2022-06-09 14:48:27 -04:00
Julian Petrov 1debb2e015 u/time: Implement QPC related functions 2022-06-09 14:48:27 -04:00
Julian Petrov 3b1e34ee20 a/os: Add QPC helper for getting win32 ticks 2022-06-09 14:48:27 -04:00
Moses Turner 3e87f9831d comp/main: Prettify nvidia allowlist and add Odyssey+ 2022-06-09 01:09:06 +01:00
zhibinw 1972fd3758 a/android: Add a flag to enable AHardwareBuffer GPU sampled usage. 2022-06-08 13:02:52 +00:00
zhibinw d17f232940 ipc/android: Extend timeout duration 2022-06-08 12:52:55 +00:00
zhibinw 9616606a2b c/client: Add protected content flag when create EGL images 2022-06-08 19:31:36 +08:00
Mateo de Mayo 604815cb51 d/wmr: Fix pose correction from Basalt
There was a confusion about whether this was needed for some apps. It was.
2022-06-02 15:47:57 +00:00
Mateo de Mayo e7c3376612 a/math: Add disabled test to show problem with current quat_exp implementation 2022-06-02 15:47:57 +00:00
Mateo de Mayo 6bc551d004 t/slam: Prioritize SLAM_CONFIG over driver calibration if set 2022-06-02 15:47:57 +00:00
Christoph Haag e24ec3d431 st/gui: Use int input for remote driver port 2022-06-02 15:29:57 +02:00
Christoph Haag 77ee72d4eb d/remote: Rename r_hub_system_devices_destroy
r_hub_destroy() taking a parameter of type struct xrt_system_devices* was weird.
2022-06-02 15:29:10 +02:00
Jakob Bornecrantz 9932e75db6 d/remote: Tidy and comment 2022-06-01 16:50:19 +01:00
Jakob Bornecrantz 7990ca9208 d/remote: Print out name values on wrong input name 2022-06-01 16:50:19 +01:00
Jakob Bornecrantz 93d92ec6a7 d/remote: Use vive_bindings helper library 2022-06-01 16:50:19 +01:00
Jakob Bornecrantz 7f73a58045 d/remote: Expose a Index controller instead of simple controller 2022-06-01 16:50:19 +01:00
Jakob Bornecrantz 46305b77db d/remote: Properly shut down the run_thread 2022-06-01 16:50:19 +01:00
Jakob Bornecrantz 2b35699d85 d/remote: Use better logging helpers 2022-06-01 16:50:19 +01:00
Jakob Bornecrantz d0cc7e4082 d/remote: Use xrt_system_devices directly in the driver
And also make shutdown properly work.
2022-06-01 16:50:19 +01:00
Jakob Bornecrantz 64694a7e56 st/prober: Remove remote code in legacy path
Implemented by a builder instead
2022-06-01 16:50:19 +01:00
Jakob Bornecrantz 3c1576fc44 st/gui: Make it possible to pass in remote address from the command line 2022-06-01 16:50:19 +01:00
Jakob Bornecrantz b782478571 st/gui: Make it possible to enter address and port for remote 2022-06-01 16:50:19 +01:00
Campbell Suter 0f8da1900b a/math: Fix math_pose_invert breaking on rotated poses, and add a test
Previously, math_pose_invert would apply a multiplication in the wrong
order. This lead to the position of the 'original' pose being rotated.

This patch fixes that, and adds a unit test to check this case.
2022-06-01 16:44:03 +01:00
Campbell Suter bb414f7d39 d/qwerty: Fix the aim pose not being HMD-relative
Commit e41cc1eec3 added support for the XRT_INPUT_SIMPLE_AIM_POSE pose
input in the QWERTY driver. Unfortunately it didn't change the code that
identifies whether the pose for a controller or HMD is being read.

In the QWERTY driver, the hands are positioned relative to the HMD, so
if you move or rotate the HMD the hands stay in the same place
on-screen. Whether a pose lookup is multiplied by the HMD transform
depends on whether the pose being looked up is that of a controller.

Thus the aim pose would not be positioned relative to the HMD.
2022-06-01 12:52:17 +00:00
Campbell Suter 45703f0952 d/remote: Mark pose as invalid when deactivated
Previously the pose on the remote driver controllers would always have
the set pose and the valid-tracking flags set. Leaving the pose set
makes sense (you might want to track how your game behaves when a
controller looses tracking but still has a pose set, for example
tracking issues caused by occlusion) but it wasn't possible to test with
the pose marked as not being tracked.

Therefore this patch deactivates the tracking flags when the controller
is not marked as active.
2022-06-01 17:36:49 +12:00
Moses Turner 68d3e117d8 t/hand: Remove gstreamer dependency 2022-05-31 22:39:17 +01:00
Jakob Bornecrantz fc469e7d5f a/tracking: Document and fix cond var loop in psvr 2022-05-31 13:38:56 +00:00
Jakob Bornecrantz d2a2005212 a/tracking: Document and fix cond var loop in psmv 2022-05-31 13:38:56 +00:00
Jakob Bornecrantz b41addbbe7 t/hand: Document and fix cond var loop 2022-05-31 13:38:56 +00:00
Jakob Bornecrantz 2300e4fa57 c/main: Document cond var loop 2022-05-31 13:38:56 +00:00
Ryan Pavlik bbda2bac48 d/wmr: Add TODO at suspicious code. 2022-05-31 13:38:56 +00:00
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
Jakob Bornecrantz 9b27fb1a2e WIP: aux/binding: Add dpad_emulation support 2022-05-31 13:25:48 +00:00
Jakob Bornecrantz 90df723853 st/oxr: Check requirements for EXT_dpad_binding 2022-05-31 13:25:48 +00:00
Jakob Bornecrantz 6a54b4e6e3 st/oxr: Generate headers for XR_KHR_binding_modification 2022-05-31 13:25:48 +00:00
Jakob Bornecrantz 6296c9ded5 st/oxr: Generate headers for XR_EXT_dpad_binding 2022-05-31 13:25:48 +00:00
Jakob Bornecrantz 2715b0e144 aux/bindings: Fix a few pep8 errors 2022-05-31 13:25:48 +00:00
Jakob Bornecrantz a8c254a8cf aux/bindings: Refactor path verify function generation 2022-05-31 13:25:48 +00:00
Jakob Bornecrantz 037c49ce30 aux/bindings: Update generated file copyright 2022-05-31 13:25:48 +00:00
Alex 642b36c5ad depthai : added missing target 2022-05-30 18:21:14 -07:00
Jakob Bornecrantz 7e45fc7dd9 t/common: Integrate null compositor 2022-05-28 17:30:19 +00:00
Jakob Bornecrantz c976c54008 c/null: Add null compositor
Based on sample compositor code.

Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>
2022-05-28 17:30:19 +00:00
Jakob Bornecrantz 8effde1d61 t/service: Do not depend directly on comp_main
Because target_instance does so already.
2022-05-28 17:30:19 +00:00
Jakob Bornecrantz fc769347a8 c/client: Better error logging when failing to make current context 2022-05-27 15:14:59 +00:00
Jakob Bornecrantz 7646fa64c8 st/oxr: Make sure to init session fields as early as possible
Noticed that on debug builds the mutex wasn't inited and the session
destroy function was called on failure to create the compositor.
2022-05-27 15:14:59 +00:00
Simon Zeni c8b4f7c64c c/client: implement EGL context begin and end 2022-05-27 15:08:40 +00:00
Simon Zeni f91ada32c2 ipc: add missing sys/types include 2022-05-27 15:08:40 +00:00
Mateo de Mayo 29aefe2ba8 misc: Use pretty printers and remove stale matrix print functions
Use u_pp_matrix_* instead.
2022-05-26 18:35:39 +00:00
Mateo de Mayo 7d80729358 u/pp: Add array and array2d f64 pretty printers 2022-05-26 18:35:39 +00:00
Mateo de Mayo 2785c6bcfa d/wmr: Wait until first IMU sample to send frames
In an Odyssey+, it seems that before the first IMU sample the frame timestamps
do not make sense and thus can make the SLAM system crash.

Also, this commit enables SLAM submission from start unless specified.
SLAM for WMR headsets now works "out of the box" :)
2022-05-26 18:35:39 +00:00
Mateo de Mayo 24be4b0a98 d/wmr: Send calibration to SLAM tracker
This makes it possible to use Basalt without having to create a calibration file
for the headset anymore.
2022-05-26 18:35:39 +00:00
Mateo de Mayo 8adbdc27e5 t/slam: Allow drivers to send calibration info to SLAM tracker
There were a couple of properties that didn't fit well in our current
calibration structs and so I created t_slam_calib_extras struct to store them.
2022-05-26 18:35:39 +00:00
Mateo de Mayo 3bf07a2711 d/wmr: Load IMU calibration 2022-05-26 18:35:39 +00:00
Mateo de Mayo 02abc49313 t/calib: Add IMU intrinsics struct 2022-05-26 18:35:39 +00:00
Mateo de Mayo 05b8e320a5 a/math: Add multiple isometry-related matrix functions
An isometry is a rigid body transform. In this context I'm using the term to
refer to 4x4 homogeneous matrices in SE(3). I.e., matrices comprised of a
3x3 rotation, a 3x1 translation, and a [0,0,0,1] last row.
This matrix represent both rigid body transforms.
2022-05-26 18:35:39 +00:00
Mateo de Mayo 8b2fa955b9 a/math: Fix matrix identities and use isometry
Isometry3f is a 4x4 matrix transform that performs only rotation and translation
(an SE(3) matrix). Its inverse can be computed trivially by Eigen compared to a
regular 4x4 transform.
2022-05-26 18:35:39 +00:00
Mateo de Mayo 2212cf95cf a/math: Add missing extern C 2022-05-26 18:35:39 +00:00
Mateo de Mayo 9281cb1d16 misc: Silence unused warnings on release builds 2022-05-26 18:35:39 +00:00
bjorn d3a0f10acb c/client: rm client swapchain layout transition;
This was only there to satisfy a validation layer bug, which appears
to have since been fixed.  It doesn't make sense to transition an XR
swapchain image to PRESENT_SRC, and the client transitions from
UNDEFINED anyway when acquiring the image.

This also fixes a case where monado violates the OpenXR specification:

> The list of OpenXR functions where the OpenXR runtime may access the
> VkQueue are:
> - xrBeginFrame
> - xrEndFrame
> - xrAcquireSwapchainImage
> - xrReleaseSwapchainImage
> The runtime must not access the VkQueue in any OpenXR function that is
> not listed above or in an extension definition.
2022-05-26 17:39:02 +00:00
bjorn 2d954d84af c/render: Fix invalid synchronization when uploading images;
`queue_upload_for_first_level_and_layer` uploads pixels to an image.

It performs a layout transition, does the copy, and does another layout
transition.  There is an execution dependency between the the copy and
the second layout transition, but the memory dependency was missing.

Caught/tested via enabling synchronization validation.
2022-05-26 17:27:15 +00:00
Ryan Pavlik e5f6045b57 gradle: Be able to fetch Eigen if it's not found on the system. 2022-05-26 11:43:11 -05:00
Jakob Bornecrantz 9c44bc98fa c/multi: Document why unsetting waiting so late 2022-05-26 14:06:18 +00:00
Jakob Bornecrantz 1b7631bd54 c/multi: Also check if a semaphore or fence has been pushed in layer_begin
Closes #171
2022-05-26 14:06:18 +00:00
Jakob Bornecrantz 433915b0bf u/pp: Add math object printers 2022-05-26 14:10:06 +01:00
Moses Turner 5652ddd718 a/util: Fix function signature for u_builder_find_prober_device
Was this ever working?
2022-05-25 20:53:46 +00:00
Moses Turner bbd6475da0 mercury: Better warn if we get bad aspect ratio 2022-05-25 20:53:46 +00:00
Jakob Bornecrantz f404cc4c50 c/multi: Document flattened out producer/consumer construct 2022-05-25 21:42:58 +01:00
Jakob Bornecrantz 2afdb79895 c/multi: Document spurious wakeups 2022-05-25 21:42:58 +01:00
Jakob Bornecrantz 72dbed3ab5 c/multi: Make sure that wait thread has started in creation
Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-05-25 21:42:58 +01:00
Jakob Bornecrantz 3e9a5da3c6 c/multi: Ensure that only one thread waits for wait thread 2022-05-25 21:42:58 +01:00
Ryan Pavlik fd3a0a1435 c/multi: Fix condition var waiting for wait thread.
Spurious wakeups happen, have to actually have a condition
to check in a loop with the cond var wait.
2022-05-25 20:41:10 +00:00
bjorn d523001b6e aux/vk: Use correct image type for 3D images; 2022-05-25 20:24:17 +00:00
Ryan Pavlik e3874383d0 st/oxr: Fix one conformance issue with d3d11 2022-05-25 18:12:22 +00:00
Ryan Pavlik 2da547ce66 a/util: Update pretty printing of results 2022-05-25 18:12:22 +00:00
Ryan Pavlik 596d15a50c a/d3d: Further namespace the d3d11-specific functions 2022-05-25 18:12:22 +00:00
Ryan Pavlik 79dffbf3f6 st/oxr: Split out some code that is d3d-version independent 2022-05-25 18:12:22 +00:00
zhibinw 38b22f9b8e oxr:check EGL_NO_CONTEXT and return error 2022-05-25 22:59:16 +08:00
Aidan Thornton 2fdd01afdd d/android: initialize our thread and mutex 2022-05-25 12:30:21 +01:00
Ryan Pavlik 4a91eb3d84 c/client: Sync/waiting in D3D11
Co-Authored-By: Jakob Bornecrantz <jakob@collabora.com>
2022-05-24 16:55:45 -05:00
Ryan Pavlik 903fd01272 a/d3d: Add a fence waiting helper 2022-05-24 16:55:45 -05:00
Ryan Pavlik 3f777350e1 a/d3d: Fix docs for fence helper 2022-05-24 16:11:36 -05:00
Ryan Pavlik bb94363f94 a/d3d: Turn off some swapchain formats that we can't roundtrip properly 2022-05-24 16:11:36 -05:00
Ryan Pavlik 8ee10c5a6b xrt: Factor out deleters 2022-05-24 13:11:41 -05:00
Mateo de Mayo 2cf07dedf2 t/euroc: Fix crash when recording euroc dataset by providing UI button
Previously, a crash occurred in some situations when the second sample was
written before the first sample was able to create the necessary CSV files.
2022-05-23 17:51:11 -03:00
Moses Turner 6ef55d1f73 d/survive: Initialize threading primitive 2022-05-23 14:27:42 +00:00
Jakob Bornecrantz a4983fa5b1 auxiliary: Break apart CMakeLists.txt file 2022-05-23 09:12:54 -05:00
Jakob Bornecrantz 935de808c0 a/bindings: Do not depend on util 2022-05-23 09:12:54 -05:00
Jakob Bornecrantz 38eac9dddc xrt: Do not depend on util 2022-05-23 09:12:54 -05:00