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
Jakob Bornecrantz
037872e2b8
c/client: Include u_time.h in D3D11 compositor
2022-05-23 09:12:54 -05:00
Jakob Bornecrantz
a75e00d25e
d/qwerty: Include u_time.h in device file
2022-05-23 09:12:54 -05:00
Jakob Bornecrantz
b64660d458
a/util: Include u_time.h in hand tracking helper
2022-05-23 09:12:54 -05:00
Jakob Bornecrantz
08d100d7b0
d/hydra: Depend on util
2022-05-23 09:12:54 -05:00
Ryan Pavlik
5656de8b72
a/d3d: Fence helpers
2022-05-23 14:11:43 +00:00
Jakob Bornecrantz
658a21a177
a/d3d: Tidy headers
2022-05-23 14:11:43 +00:00
Jakob Bornecrantz
b8b42a4bcb
c/client: Tidy D3D11 flip comments
2022-05-23 14:11:43 +00:00
Jakob Bornecrantz
d91d6e2aa3
c/client: Do not flip projection layers in D3D11
2022-05-23 14:11:43 +00:00
Jakob Bornecrantz
0d055bb740
d/vive: Fix threading primitive initialization
2022-05-23 13:54:42 +00:00
Moses Turner
96d3896664
t/hand/mercury: Initialize the frame timing widget correctly
2022-05-23 13:19:58 +00:00
Moses Turner
9386e56c3d
a/util: Paranoia for u_frame_times_widget
2022-05-23 13:19:58 +00:00
Mateo de Mayo
bcac379cf5
ipc: Init connection mutex
2022-05-21 23:57:55 -03:00
Mateo de Mayo
dd802f7fef
c/main: Init vblank.even_thread
2022-05-21 23:50:19 -03:00
Mateo de Mayo
7a0a142dba
misc: Fix some uninitialized mutexes
2022-05-21 23:31:18 -03:00
Jakob Bornecrantz
490e90b493
a/vk: Also check for d3d12 fence semaphores
2022-05-21 13:37:28 +01:00
Ryan Pavlik
ea35e79ec7
ipc: Clarify that wait_image timeout is nanoseconds
2022-05-20 23:31:59 +01:00
Ryan Pavlik
e54d336844
c/util: Clarify that wait_image timeout is nanoseconds
2022-05-20 23:31:59 +01:00
Ryan Pavlik
1b01eb808c
c/mock: Clarify that wait_image timeout is nanoseconds
2022-05-20 23:31:59 +01:00
Ryan Pavlik
1cd435f321
c/client: Clarify that wait_image timeout is nanoseconds
2022-05-20 23:31:59 +01:00
Ryan Pavlik
753f37c41f
xrt: Clarify that wait_image timeout is nanoseconds
2022-05-20 23:31:59 +01:00
Jakob Bornecrantz
4fa406610f
a/os: Fix fallout from name change
2022-05-20 23:07:33 +01:00