Jakob Bornecrantz
b93ed31cce
a/vive: Constify config argument to get functions [NFC]
2023-05-16 23:34:32 +01:00
Jakob Bornecrantz
5e0b21cd18
a/vive: Tidy vive_config.h [NFC]
2023-05-16 23:34:32 +01:00
Jakob Bornecrantz
54083a99de
a/vive: Tidy vive_config.c [NFC]
2023-05-16 23:34:32 +01:00
Jakob Bornecrantz
67dd88ec4a
a/vive: Refactor out calibration getters into own file [NFC]
2023-05-16 23:34:32 +01:00
Jakob Bornecrantz
3487923eab
d/qwerty: Remove old prober code
2023-05-16 22:25:05 +00:00
Jakob Bornecrantz
fb30f5e077
t/common: Put simulated, remote and qwerty higher up in list
2023-05-16 22:25:05 +00:00
Jakob Bornecrantz
be58024ffb
t/common: Add Qwerty builder
2023-05-16 22:25:05 +00:00
Jakob Bornecrantz
76c5d677d7
d/qwerty: Add helper create function
2023-05-16 22:25:05 +00:00
Jakob Bornecrantz
ef59d8e85d
d/qwerty: Tidy header [NFC]
2023-05-16 22:25:05 +00:00
Ryan Pavlik
ae6b0ad445
st/p,t/common: Protect tracker-creation calls
2023-05-16 22:04:53 +00:00
Ryan Pavlik
cd79bef0cf
cmake: Fix build flags on MSVC
2023-05-16 22:04:53 +00:00
Ryan Pavlik
f0cc05d09b
cmake: Turn off two drivers that are currently incompatible with MSVC
2023-05-16 22:04:53 +00:00
Ryan Pavlik
173b36c3a2
t/sdl_test: Fix macro collision on Windows
2023-05-16 22:04:53 +00:00
Ryan Pavlik
8603e5d63e
i/client: Fix return type incompatibility on Windows
2023-05-16 22:04:53 +00:00
bjorn
d16576252f
c/main: Fix XRT_COMPOSITOR_FORCE_WAYLAND_DIRECT;
2023-05-16 14:40:10 -07:00
samuel degrande
ea7ec1bda8
xrt: Fail to build with Clang 16
2023-05-16 14:25:36 +00:00
Christoph Haag
2f4a926184
t/legacy: Ensure all legacy drivers can be disabled [NFC]
2023-05-16 08:53:55 +00:00
samuel degrande
1ad168cfc5
cmake: Fix build failure on msys2/mingw64
...
This is due to the use of `${SDL2_LIBRARIES}` over `SDL2::SDL2`.
On some 'old' OSes such as Ubuntu 20.04, the SDL2 CMake config does
not set an SDL2:SDL2 target but rather defines SDL2_LIBRARIES and
SDL2_INCLUDE_DIRS variables.
This patch creates an SDL2::SDL2 target, if not already set, based on
those 2 variables.
2023-05-15 16:41:34 +00:00
Jakob Bornecrantz
adc609d7c9
t/sdl_test: Compile as UTF-8 to fix MSVC warning
...
Fix the following warning:
sdl_program.cpp(25): warning C4566: character represented by universal-character-name '\u2603' cannot be represented in the current code page (1252)
2023-05-14 15:57:08 +01:00
Ryan Pavlik
4ffb271c6a
cmake: Build all math-heavy code with optimization.
2023-05-14 08:28:37 +00:00
Jakob Bornecrantz
8c97342732
u/pacing: Add minimum compositor time
2023-05-14 06:52:55 +00:00
Jakob Bornecrantz
f5e33e59c8
u/pacing: Add minimum app time option
2023-05-14 06:52:55 +00:00
Jakob Bornecrantz
fd55a0f1ef
u/pacing: Use helpers for ms <-> ns conversion
2023-05-14 06:52:55 +00:00
Jakob Bornecrantz
e3ce39926a
u/pacing: Improve comments
2023-05-14 06:52:55 +00:00
Jakob Bornecrantz
bfb3d7029c
u/time: Add ms to ns helper
2023-05-14 06:52:55 +00:00
Jarett Millard
f1bc10003d
d/pssense: Basic 3DoF pose tracking from IMU data
2023-05-13 10:58:33 -04:00
Jakob Bornecrantz
ca20f359b5
ipc: Allow UWP/AppContainer and others to connect
...
Including: UWP/AppContainer, Authenticated user and Administrator. Currently
guarded with IPC_RELAXED_CONNECTION_SECURITY env variable.
2023-05-06 16:21:30 +01:00
Jakob Bornecrantz
5e19ae6a5b
st/oxr: Refactor wait frame function to avoid setting state before we should
...
We would leak frame_id and active_wait_frames increment that would cause bad
states where we hadn't fully waited but would allow xrBeginFrame to complete.
Also improve error handling so that on error conditions the semaphore is
properly decremented and the application can call xrWaitFrame again.
This was caused by unreal doing something like this:
* xrBeginFrame <-- Error
* xrWaitFrame
* xrBeginFrame
* xrEndFrame
* Called at the same time:
* xrWaitFrame
* xrBeginFrame <-- Would get state from non-completed xrWaitFrame
2023-05-03 16:18:10 +01:00
Jakob Bornecrantz
cfb63abac1
ipc: Do not leak arguments before fully having waited
2023-05-03 16:16:13 +01:00
Jakob Bornecrantz
0fc9796a74
u/pacing: Improve debug printing in app pacer
2023-05-03 16:16:11 +01:00
Jakob Bornecrantz
5511be3c2d
u/pacing: Add variable tracking to fake pacer
2023-05-03 12:23:20 +01:00
Jakob Bornecrantz
04d5942fa5
c/main: Try to detect when we miss frames
2023-05-03 12:23:20 +01:00
Jakob Bornecrantz
73f68fd111
c/main: Prefer only two swapchain images
2023-05-03 12:23:19 +01:00
Jakob Bornecrantz
2ab43f7494
c/main: Only do early acquire if we are ready
2023-05-03 12:23:02 +01:00
Jakob Bornecrantz
27fafacf63
c/main: Refactor frame handling a bit
2023-05-03 12:23:02 +01:00
Jakob Bornecrantz
2a17212d7f
c/main: Use vk_surface_info when creating images
2023-05-03 12:23:01 +01:00
Jakob Bornecrantz
622e09bc19
a/vk: Add vk_surface_info helpers
2023-05-03 00:09:03 +01:00
Jakob Bornecrantz
5432e4c1b0
d/twrap: Log errors in twrap_slam_create_device
2023-05-02 23:39:58 +01:00
Jakob Bornecrantz
1f2d444ffc
t/common: Fix typo
2023-05-02 23:27:57 +01:00
Fernando Velazquez Innella
6096f2199d
c/client: Signal D3D12 fence from GPU instead of CPU
2023-05-02 21:23:19 +00:00
Ryan Pavlik
887b79f577
t/common: Add a missing result and null check in North Star builder
2023-05-02 21:19:40 +00:00
Jan Schmidt
2d418ac14a
d/wmr: Allow direct BT HP Reverb G2 controllers
...
Don't skip HP Reverb G2 controllers when they are directly
connected via bluetooth
2023-05-01 16:32:33 +01:00
Jan Schmidt
51097c9ecd
d/wmr: Implement HP Reverb G2 controller
...
Implement the HP Reverb G2 controller subclass
and device specific input parsing.
2023-05-01 16:32:33 +01:00
Jan Schmidt
3c641c8490
xrt: Add extra HP Reverb G2 controller click controls
...
Add XRT_INPUT defines for HP G2 WMR controller home and squeeze click
inputs
2023-05-01 16:32:33 +01:00
Jan Schmidt
7e18fac224
d/wmr: Differentiate Odyssey+ controller
...
Switch the device name and input/binding mappings for
Odyssey+ controllers to differentiate them from OG WMR
controllers, allowing applications to load the correct
controller model
2023-05-01 16:32:33 +01:00
Jan Schmidt
3d0c898e22
d/wmr: Add Home button click to the OG WMR controller
2023-05-01 16:32:33 +01:00
Jan Schmidt
ea53d274a5
d/wmr: Split out OG WMR controller handling
...
Move the original WMR controller specific handling
into a subclass of wmr_controller_base, and add
a stub placeholder for HP Reverb G2 controllers
2023-05-01 16:32:33 +01:00
Jan Schmidt
f33326e90b
d/wmr: Fix crash on invalid firmware
...
Don't access invalid memory on a short firmware read.
2023-05-01 16:32:33 +01:00
Jan Schmidt
d326ff9890
d/wmr: Split the connection from controller
...
Factor out the bluetooth connection behaviour from
the WMR controller, so the connection can be
provided from the headset as well.
2023-05-01 16:32:33 +01:00
Jan Schmidt
35f72696fb
xrt: Add WMR and Odyssey home click
...
Add xrt input entries to expose the home button on OG and
Odyssey+ WMR controllers
2023-05-01 16:32:33 +01:00
Jakob Bornecrantz
cb6201f297
st/oxr: Set extensions earlier
2023-05-01 14:03:41 +01:00
Jakob Bornecrantz
ce5669aabb
st/oxr: Handle LOCAL_FLOOR enums
2023-05-01 14:03:41 +01:00
Jakob Bornecrantz
2b921ab673
t/slam: Enable some tracing
2023-05-01 14:03:41 +01:00
Jakob Bornecrantz
c0cc22e101
d/wmr: Expand tracing in camera
2023-05-01 14:03:40 +01:00
Jakob Bornecrantz
cfdea265f4
c/client: Avoid using shared context on synchronization
2023-05-01 14:03:01 +01:00
Jan Schmidt
96d188803c
d/wmr: Fix typo in debug output
...
correnntly -> currently
2023-05-01 13:51:44 +01:00
Jan Schmidt
236e732404
d/wmr: Fix prober crash after failing to load fw
...
Fix a double-free. The wmr_hmd_create() method
already cleans up the hid devices on failure.
2023-05-01 13:51:44 +01:00
Jan Schmidt
87d804c7d6
d/wmr: Log larger Device Status messages
...
HP Reverb G2 sends larger device status messages with unknown
content. Log how large they are, and at least dump the first
11 bytes
2023-05-01 13:51:44 +01:00
Jan Schmidt
ed54b7899c
d/wmr: Don't wait forever for HMD firmware
...
Add a 100ms timeout for firmware reads from the HMD,
and error out if it takes longer. Fixes problems
sometimes waiting forever on my G2 when it gets
into a bad state.
2023-05-01 13:51:44 +01:00
Jan Schmidt
7b4fffed8f
d/wmr: Improve readability in the camera source
2023-05-01 13:51:44 +01:00
Jan Schmidt
e9c977243f
u/logging: Add hexdump logging method
...
Add macros for logging hexdumps of memory blocks to help
with driver development. Only macros for trace and debug
level logging are provided, as noone should be logging
hexdumps except for development.
2023-05-01 13:51:44 +01:00
Jakob Bornecrantz
5197b4a42f
d/vive: Add a slider to adjust all tracked pose timestamps
2023-04-26 22:17:36 +01:00
Jakob Bornecrantz
ce3c5d59fb
d/wmr: Add a slider to adjust all tracked pose timestamps
2023-04-26 22:17:36 +01:00
Jakob Bornecrantz
9d8668a0a6
cmake: Remove _SLAM suffixes on KIMERA and BASALT have defines
2023-04-26 21:39:16 +01:00
Ryan Pavlik
c924157c59
a/android: Only look up the standardized intent to find our own package.
...
Should allow a constrained query manifest in client apps.
2023-04-25 10:40:58 -05:00
Christoph Haag
aa052046a8
cmake: Delete active_runtime.json if it already exists
2023-04-24 13:57:00 +00:00
Jakob Bornecrantz
c0d242e1ed
a/vk: Fix doccomment style [NFC]
2023-04-21 14:28:18 +01:00
Jakob Bornecrantz
17ea4a73eb
a/vk: Mark unexported function as static [NFC]
2023-04-21 14:28:18 +01:00
Jakob Bornecrantz
c7fa7fe701
a/vk: Loop over all optional extensions, not just the first
...
This caused the event thread to not start
because the needed extensions where not enabled.
2023-04-21 14:27:33 +01:00
Jakob Bornecrantz
05792ff150
st/oxr: Refactor OXR_NO_PRINTING env vars
2023-04-18 22:28:53 +01:00
Jakob Bornecrantz
fa0b3ad73c
st/oxr: Refactor logging functions and use OutputDebugStringA on Windows
...
The OXR logging functions are not called during normal opperation so it's okay
to always copy into a full buffer.
2023-04-18 22:28:53 +01:00
Jarvis Huang
0d31791092
comp/android: Refine surface creation flow
...
Reuse MonadoView when "Display over other apps" is enabled. Move surface
creation logic to compositor for consistency. With this approach, compositor
implementer controls the way surface is created.
2023-04-18 16:24:35 -05:00
Jarvis Huang
cf7e44b710
aux/android: Refactor MonadoView
2023-04-18 16:22:42 -05:00
Jarvis Huang
d60db29295
aux/android: Refactor SystemUiController
2023-04-18 16:22:42 -05:00
Jakob Bornecrantz
7147e47508
c/client: Implement excplicit transitions in Vulkan and D3D12
2023-04-18 14:31:55 +01:00
Jakob Bornecrantz
45fe1d6ed0
st/oxr: Refactor swapchains to use explicit transitions
2023-04-18 14:31:55 +01:00
Jakob Bornecrantz
6415480f1c
st/oxr: Tidy includes [NFC]
2023-04-18 14:21:10 +01:00
Jakob Bornecrantz
b49cd74114
st/oxr: Rename and document common swapchain creation function [NFC]
2023-04-18 14:21:10 +01:00
Jakob Bornecrantz
9055b9d2ec
st/oxr: Remove unneeded prefixes on functions [NFC]
2023-04-18 14:21:10 +01:00
Jakob Bornecrantz
52f790289d
st/oxr: Swapchain destroy was the same for all APIs
2023-04-18 14:21:10 +01:00
Jakob Bornecrantz
a56caf762e
st/oxr: Refactor swapchain functions a bit
2023-04-18 14:21:10 +01:00
Jakob Bornecrantz
505e4e8c2f
c/client: Refactor image barrier submission into a helper function
2023-04-18 14:21:10 +01:00
Jakob Bornecrantz
0d21b73b05
c/client: Implement transition image stubs
2023-04-18 14:21:10 +01:00
Jakob Bornecrantz
b7362f27e6
xrt: Add image transition inteface
2023-04-18 14:21:10 +01:00
Ryan Pavlik
9840730169
ipc/android: Run spotlessApply to format Java and Kotlin code
2023-04-17 10:58:38 -05:00
Ryan Pavlik
fc3af6f711
a/android: Run spotlessApply to format Java and Kotlin code
2023-04-17 10:58:38 -05:00
utzcoz
b5b0c30936
t/android: Run spotlessApply to format Java and Kotlin code
...
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-04-17 10:58:38 -05:00
utzcoz
8e93bbde4b
gradle: Integrate spotless to format Java and Kotlin code
...
See https://github.com/diffplug/spotless .
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-04-17 10:58:38 -05:00
utzcoz
c8c5d6444e
gradle: Remove redundant dependency of lifecycle-viewmodel
...
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-04-15 16:20:50 +00:00
Mario Kleiner
ff9ad4016f
c/multi: Refine some logging messages a bit.
...
Add some timestamps and extra logging to the frame scheduling code.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-04-15 00:43:20 +00:00
Mario Kleiner
ae2e7405dd
c/multi: Move log_frame_time_diff() to avoid false late frame reports.
...
In its original call location, this diagnostic/warning function gets
called for each composition cycle even for client frames which have
not yet been delivered for display, because the frames target display
time "XrFrameEndInfo frameEndInfo.displayTime" (as provided by the
OpenXR client) has not been reached yet. Iow. if a OpenXR client
specifies a target frameEndInfo.displayTime in the future, to request
frame presentation in the future, this will cause a flood of false
"Frame late ..." messages by the compositor, despite nothing being
wrong with the timing, until the frame is actually delivered.
E.g., if frameEndInfo.displayTime is 1 second in the future, we'll
get this for each client xrEndFrame() invocation:
WARN [log_frame_time_diff] Frame late by 11.11ms!
WARN [log_frame_time_diff] Frame late by 22.22ms!
... another 87 like these ...
WARN [log_frame_time_diff] Frame late by 988.43ms!
I think what we want is to only check client frames that are actually
delivered the first time by multi_compositor_deliver_any_frames() for
initial display in the current compositor work cycle, and then report
if this first frame display onset was not on or close to the OpenXR
client requested frameEndInfo.displayTime, but too early or too late,
in violation of the clients wishes.
Moving the call check and call of log_frame_time_diff() achieves this
and gives meaningful debug output.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-04-15 00:43:20 +00:00
Mario Kleiner
1c96ee619d
u/metrics: Add option to fflush after writing each metrics record.
...
This allows to use the metrics logging in "streaming mode" where
records are written out with low delay, e.g., into a Unix fifo
file / pipe for live consumption by some tracing or recording
application.
XRT_METRICS_EARLY_FLUSH=true enables this "streaming mode".
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-04-15 00:32:22 +00:00
Mario Kleiner
9e647f9a46
d/vive: Parse/Recognize HTC Vive Pro Eye HMD headphone audio buttons.
...
Does not do anything yet within Monado, but documents how to parse
button state of left headphone volume up/down buttons and right
headphone microphone mute button.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-04-14 10:48:39 +00:00
Mario Kleiner
0116a76db5
d/vive: Add Vive Wand controller name string for the HTC Vive Pro Eye.
...
Behave like other Wands, just a different name string.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-04-14 10:48:39 +00:00
Jakob Bornecrantz
86262e8b4e
a/vk: Remove global command pool
2023-04-14 02:34:49 +01:00
Jakob Bornecrantz
e9475b1313
c/main: Use cmd helpers for main submission
2023-04-14 02:34:49 +01:00
Jakob Bornecrantz
231a743896
c/main: Use cmd pool helpers in peek code
2023-04-14 02:34:49 +01:00
Jakob Bornecrantz
185bc2bc3c
c/main: Use cmd pool helpers in mirror window code
2023-04-14 02:34:49 +01:00
Jakob Bornecrantz
5ef2b647f1
c/main: Use cmd pool helpers in layer render
2023-04-14 02:34:49 +01:00
Jakob Bornecrantz
1ddfcaa5ab
c/client: Use cmd pool helpers
2023-04-14 02:34:49 +01:00
Jakob Bornecrantz
d1906d1cf8
c/util: Use cmd pool helpers in swapchain code
2023-04-14 02:34:49 +01:00
Jakob Bornecrantz
197461b4cd
c/render: Refactor close loops [NFC]
2023-04-14 02:34:49 +01:00
Jakob Bornecrantz
6598760522
c/render: Put distortion image functions in own file
2023-04-14 02:34:49 +01:00
Jakob Bornecrantz
f536ec2009
c/render: Use cmd pool helpers in init code
2023-04-14 02:34:49 +01:00
Jakob Bornecrantz
e5fed9c3be
c/render: Improve error handling
2023-04-14 02:34:49 +01:00
Jakob Bornecrantz
68b8a2f371
a/vk: Add command pool helpers
2023-04-14 02:34:49 +01:00
Moshi Turner
4d3c1cf7c5
t/common: Parse upside-down DepthAI device in North Star builder
2023-04-13 11:50:38 +00:00
Moshi Turner
bdc33510a1
h/mercury: Dump camera calibration if debugging
2023-04-13 11:50:38 +00:00
utzcoz
667a0404c2
a/util: Remove unused headers for u_var.cpp
2023-04-13 06:41:06 +00:00
Moshi Turner
ec59e97bda
st/gui: Use IMU in EuRoC recorder scene
2023-04-12 16:43:20 -05:00
Moshi Turner
c05c5d5c2e
st/gui: Add EuRoC recorder for DepthAI cameras
2023-04-12 12:19:13 +00:00
Moshi Turner
53e738a093
d/dai: Add manual exposure controls
2023-04-12 12:11:06 +00:00
Jakob Bornecrantz
ee0dad22d5
c/main: Tidy readback code [NFC]
2023-04-12 12:49:24 +01:00
Moshi Turner
f2bea2c7c6
d/ns; a/util: Remove old name from Moshi's distortion correction method
...
I don't hate my old name that much, but this is my last chance to change it before there's some "moshi-style" North Stars floating around.
2023-04-11 23:45:23 -05:00
Moshi Turner
19e0af55d2
c/main: Bounce readback images off temporary image
...
Most NVidia graphics cards don't support blitting straight from device memory to host memory, but all GPUs support doing it this way.
2023-04-11 22:27:36 -05:00
Moshi Turner
51ff80e802
st/gui: Lazily create debug sinks so that they can be created at any time
...
Useful for deferred-creation compositors, and for repositories submoduling Monado.
2023-04-11 19:50:41 -05:00
utzcoz
39d701a30c
t/common: Fix small typo for target_builder_simulated.c's comment [NFC]
2023-04-11 12:00:01 +00:00
utzcoz
5565564e70
gradle: Fix building with JDK11+
...
1. Bump Kotlin version to 1.7.10.
2. Bump Hilt version to 2.45.
3. Add implementation of lifecycle-viewmodel-ktx dependency explicitly
to fix duplicate class error.
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-04-11 11:43:57 +00:00
utzcoz
08831237f5
gradle: Migrate compileSdkVersion to compileSdk
...
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-04-11 11:43:57 +00:00
Christoph Haag
c248670f2f
d/survive: Add vive ipd range
2023-04-11 11:42:21 +00:00
Ryan Pavlik
af29da2545
gradle: Use static C++ runtime library by default when building Monado, for compatibility.
...
We do not export any C++ symbols.
Added property to allow selection of shared C++ standard lib.
2023-04-10 14:11:41 -05:00
Ryan Pavlik
788973926a
gradle: Fix warning related to dagger
2023-04-10 14:11:41 -05:00
Ryan Pavlik
8bc8abe904
gradle: Fix parsing OpenXR version
2023-04-10 14:11:41 -05:00
Ryan Pavlik
048552f914
gradle: Adjust where we generate files to
2023-04-10 14:11:41 -05:00
Ryan Pavlik
8b50c5cb9e
gradle: Do not need the CDDL anymore because Dagger changed its deps
2023-04-10 14:11:41 -05:00
Ryan Pavlik
4369640ecc
android: Clean up manifest and silence warnings
2023-04-10 14:11:41 -05:00
Ryan Pavlik
35b1bc063d
gradle: Update dependencies further and fix conflicts
2023-04-10 14:11:41 -05:00
Jakob Bornecrantz
5f1b54bcd5
a/vk: Add blit and copy helpers
2023-04-09 14:04:53 +01:00
Jakob Bornecrantz
c0287b690b
a/vk: Add command helpers
2023-04-09 12:01:27 +01:00
Jakob Bornecrantz
14f15284a1
a/vk: Update comments for command buffer writers
2023-04-08 00:03:20 +01:00
Jakob Bornecrantz
585e23054d
a/vk: Use helper define in vk_csci_get_image_usage_flags
2023-04-07 21:44:22 +01:00
Jakob Bornecrantz
732c4a23ae
a/vk: Don't unconditionally set colour attachment usage bit for swapchains
2023-04-07 21:44:22 +01:00
Jakob Bornecrantz
748ec59ddf
a/vk: Don't hardcode sampled bit anymore
2023-04-07 21:44:22 +01:00
Jakob Bornecrantz
9f06b1a25e
c/util: Always request sampled in extra bits
2023-04-07 21:44:22 +01:00
Jakob Bornecrantz
a03d1421b8
c/client: Respect native compositor's extra usage bits
2023-04-07 21:44:22 +01:00
Jakob Bornecrantz
1adf46b02a
c/client: Use correct format in get_swapchain_create_properties funtions
2023-04-07 21:44:20 +01:00
Jakob Bornecrantz
94c9c8a253
xrt: Allow compositor to request extra usage bits
...
Some compositors might need extra usage bits set beyond just the constant
sampled bit, make it all generic and extend the xrt interface to allow it.
2023-04-07 21:33:52 +01:00
Jakob Bornecrantz
b193c3bdd2
t/sdl_test: Make sure to init devices before system devices
2023-04-07 16:11:16 +01:00
Jakob Bornecrantz
bab4a126ae
xrt: Remove product_name from xrt_prober_device struct
...
And move it to an internal struct instead. Better to keep it internal to the
prober as it was only used for the bluetooth probing. And there was a function
that applications should use to get strings from xrt_prober_device.
2023-04-07 15:37:22 +01:00
Jakob Bornecrantz
d40805e777
c/client: Silence VK_FORMAT_R32_SFLOAT warning in OpenGL code
2023-04-07 14:27:08 +00:00
Jakob Bornecrantz
8e087ac5ac
d/vive: Use vive_poses helpers for offsets of poses
2023-04-07 13:37:05 +00:00
Jakob Bornecrantz
ea97960b9e
d/vive: Change how the pose GUI variable is updated
2023-04-07 13:37:05 +00:00
utzcoz
990ce39fa1
c/main: Remove unused headers for comp_renderer.c
2023-04-07 11:23:43 +00:00
Mateo de Mayo
c0f7a5ed01
d/vive: Improve handling of controller pose
2023-04-06 16:46:11 +00:00
Jakob Bornecrantz
e9c43a7ca6
d/wmr: Remove legacy found functions
2023-04-05 16:53:24 +01:00
Jakob Bornecrantz
2ddf868735
d/wmr: Do device creation via builder interface
2023-04-05 16:53:24 +01:00
Jakob Bornecrantz
56dd75c14d
d/wmr: Add stub WinMR builder
2023-04-05 16:53:24 +01:00
Jakob Bornecrantz
05b83d5102
d/wmr: Move wmr_headset_type to wmr_common.h
2023-04-05 16:53:24 +01:00
Jakob Bornecrantz
3819a21e44
d/wmr: Tidy interface and common headers
2023-04-05 16:53:24 +01:00
Jakob Bornecrantz
6ee235ac3b
d/wmr: Tidy camera destroy function
2023-04-05 16:53:24 +01:00
Jakob Bornecrantz
1410afc330
d/wmr: Reject timestamps that are older then the last sample received
2023-04-05 16:53:24 +01:00
Jakob Bornecrantz
a5d3fff573
t/common: Add NorthStar to doxygen
2023-04-05 16:53:24 +01:00
Jakob Bornecrantz
85886e53e1
c/client: Make it clear where we break the OpenXR spec
2023-04-04 13:56:55 +01:00
Jakob Bornecrantz
a6764b751a
c/client: Don't use vkDeviceWaitIdle
...
As per the documentation for vkDeviceWaitIdle, it requires that the VkQueue
host access is externally synchronized. And the application may have other
VkQueue's in use that we do not know about.
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkDeviceWaitIdle.html
2023-04-04 13:56:55 +01:00
Jakob Bornecrantz
50838f5801
xrt: Introduce xrt_layer_frame_data
2023-04-04 13:38:21 +01:00
Jakob Bornecrantz
bec9a30bfe
xrt: Re-order compositor header for better grouping [NFC]
2023-04-04 13:30:22 +01:00
Mateo de Mayo
3a11afa846
d/wmr: Fix null dereference
2023-04-03 17:55:08 -03:00
Mateo de Mayo
3ecee6d0ca
d/wmr: Support head tracking with more than two cameras
2023-04-03 12:17:11 -03:00
utzcoz
629c4b67f1
ipc/android: Remove unnecessary toString for log
...
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-04-02 16:14:15 +00:00
utzcoz
d30b015b39
aux/android: Remove unnecessary toString for log
...
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-04-02 16:14:15 +00:00
utzcoz
a4cea7c0e3
t/android: Remove unnecessary toString for log
...
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-04-02 16:14:15 +00:00
Jakob Bornecrantz
a2081db38a
st/oxr: Fix typo in OXR_CHECK_XRET define usages [NFC]
...
Fix typo that I introduced in !1727 (95512594a0
).
2023-04-01 16:32:03 +01:00
Mateo de Mayo
24de185b6c
t/openvr: Add openvr tracker for recording lighthouse groundtruth
...
With the SLAM_OPENVR_GROUNDTRUTH_DEVICE we can select a device (HMD, right/left
controller, vive tracker) to use as the groundtruth provider for a SLAM tracker.
This is useful to record euroc datasets with lighthouse groundtruth.
2023-04-01 14:56:39 +00:00
Jarvis Huang
95512594a0
st/oxr: Convert session IPC error to XR_ERROR_SESSION_LOST
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-04-01 15:44:32 +01:00
Jakob Bornecrantz
c006ac138f
st/oxr: Add helper for xrt_result_t checking
2023-04-01 15:44:32 +01:00
Jarvis Huang
c560ff5592
st/oxr: xrPollEvent should not return XR_SESSION_LOSS_PENDING
2023-04-01 14:43:40 +01:00
Jarvis Huang
7cd1d4886f
st/oxr: Support session lost error in session related APIs
2023-04-01 14:43:40 +01:00
Jarvis Huang
f9d83c8b1f
st/oxr: Handle XR_SESSION_STATE_LOSS_PENDING
2023-04-01 14:43:40 +01:00
Jarvis Huang
971947f722
c/multi: Implement xrt_multi_compositor_control::notify_surface_lost
2023-04-01 14:43:40 +01:00
Jarvis Huang
aa9c559f96
xrt: Add new API in xrt_multi_compositor_control interface
2023-04-01 14:43:40 +01:00
utzcoz
982932158c
c/main: Remove unused comp_renderer including for comp_window_peek
2023-04-01 10:37:09 +00:00
Ryan Pavlik
c1ba8ff74f
t/oxr_android: Fix manifest by specifying the full classname of the activity
...
Needed in order to fix the move of the default namespace.
2023-03-29 14:10:17 -05:00
utzcoz
62d1510458
c/main: Remove unused header files from comp_target_swapchain.c
2023-03-29 17:36:56 +00:00
utzcoz
7676fa0a93
gradle: Bump AGP to 7.1.2
...
1. Bump AGP to 7.1.2.
2. Bump hiltVersion to 2.38.1.
3. Migrate lintOptions to lint.
4. Move package from AndroidManifest to Gradle.
5. Fully qualify application class name.
6. Fix packagingOptions usage with resources wrapper.
Signed-off-by: utzcoz <utzcoz@outlook.com>
Signed-off-by: Ryan Pavlik <ryan.pavlik@collabora.com>
2023-03-29 16:48:16 +00:00
Jakob Bornecrantz
92f7e36083
st/oxr: Validate view array types
2023-03-28 19:30:57 +01:00
utzcoz
c1f4f41dd7
xrt/comp: Clean up comp_client's cmake conditions with D3D
2023-03-27 12:12:19 +00:00
Jakob Bornecrantz
3000028512
d/pssense: Link with aux_util
...
Fixes build with tracing, and should be linked since utilities are used.
2023-03-22 15:07:04 +00:00
utzcoz
2d6db97ea0
sdl_test: Fix building on Windows platform
2023-03-22 14:18:25 +00:00
Jarett Millard
b975545764
d/pssense: Add PlayStation Sense controller driver
...
The driver probes the Sense controller devices and interprets the button presses from HID packets
2023-03-20 23:20:34 -04:00
Jakob Bornecrantz
191ca7dbfd
u/hand: Remove unused field
...
When we need this enum we can add it back in the xrt headers.
2023-03-16 14:19:38 +00:00
Jakob Bornecrantz
531b10fa4c
xrt: Tidy various header includes
2023-03-16 14:19:38 +00:00
Jakob Bornecrantz
0c83cd350b
xrt: Do not include util headers in xrt headers
...
This lead to some files getting u_misc for free, and also
other things being pulled in when they shouldn't have been.
2023-03-16 14:19:38 +00:00
Jakob Bornecrantz
7ce5a729b1
d/survive: Add SURVIVE_TIMECODE_OFFSET_MS to set timecode offset at launch
2023-03-16 13:07:22 +00:00
Jakob Bornecrantz
ea7fbd4444
d/survive: Use u_var_draggable_f32 for timecode offset
2023-03-16 13:07:22 +00:00
Jakob Bornecrantz
0be1a3c512
u/debug_gui: Fix assert if window has been closed before exiting service
2023-03-16 12:27:43 +00:00
Moshi Turner
749d034a14
d/vive, d/survive, aux/vive: Fix hand offsets
2023-03-15 23:57:27 +00:00
Moshi Turner
570a5513be
d/opengloves: Remove left-over code
2023-03-15 23:42:46 +00:00
Jakob Bornecrantz
6b45e22164
d/survive: Make it possible to add offset to timecode calculation
2023-03-13 23:55:00 +00:00
Jakob Bornecrantz
b4e901f674
t/common: Print what driver is being used in Lighthouse driver
2023-03-13 23:49:50 +00:00
Mateo de Mayo
5503d75c43
d/vive: Fallback to v4l2 camera timestamps when lighthouse is on
...
The pulse 0xFD of the report 0x25 comes at 54hz and thus we are assuming its
timestamp are the camera frame timestamps. However, it seems that this report
stops coming when the lighthouses are enabled and instead we get a 0x28 report.
This commit silently handles the 0x28 instead of throwing errors and fallbacks
to using v4l2 timestamps instead of the previous timestamps from pulse 0xFD.
2023-03-13 17:58:24 +00:00
Mateo de Mayo
642549b5a0
t/euroc: Fix race condition in imu and gt csv writers
...
Multiple cameras were flushing the imu/gt queues but only one should do so.
2023-03-13 17:58:24 +00:00
Fernando Velazquez Innella
4b78b4c58e
aux/d3d: Add missing cubemap support
2023-03-13 17:29:56 +00:00
Jakob Bornecrantz
fc6fb265ff
t/file: Only read matrix sizes that are with in reasonable limits
2023-03-13 16:50:01 +00:00
Christoph Haag
be093c4e06
a/tracking: Fix psvr tracker OpenCV parameters
...
Fixes OpenCV exception on startup with Playstation Move controller:
what(): OpenCV(4.7.0) /usr/src/debug/opencv/opencv-4.7.0/modules/features2d/src/blobdetector.cpp:93: error: (-5:Bad argument) 0<minArea<=maxArea in function 'validateParameters'
2023-03-13 01:36:26 +00:00
Christoph Haag
9dbfdf97ce
d/ohmd,svr: Fix build
...
fixes d601f893da
2023-03-13 01:32:34 +00:00
Jakob Bornecrantz
63a180cb97
h/mercury: Remove unused variable to fix warning
2023-03-11 14:06:59 +00:00
Jakob Bornecrantz
7c024b3994
st/oxr: Use xrt_space
2023-03-10 00:03:46 +00:00
Jakob Bornecrantz
c70bc60084
xrt: Also create a space overseer when creating system devices
2023-03-10 00:03:46 +00:00
Jakob Bornecrantz
4aaefc7588
ipc: Add xrt_space support
2023-03-10 00:03:46 +00:00
Jakob Bornecrantz
ad2542124b
u/builders: Add helper function to create space overseer
2023-03-10 00:03:46 +00:00
Jakob Bornecrantz
4d782620d1
u/space: Add default Space Overseer
2023-03-10 00:03:46 +00:00
Jakob Bornecrantz
1c00a596af
xrt: Add xrt_space interface
2023-03-09 20:42:58 +00:00
Jakob Bornecrantz
bff220b6f8
ipc: Implement xrt_device::compute_distortion
2023-03-09 15:51:29 +00:00
Jakob Bornecrantz
d601f893da
xrt: Tidy compute_distortion function
2023-03-09 15:51:12 +00:00
Christoph Haag
b0e164db19
d/survive: Fix warning
2023-03-08 22:12:18 +01:00
Christoph Haag
8cc5db3a6c
d/survive: Add some debug gui entries
2023-03-08 21:46:42 +01:00
Christoph Haag
24b53c0f1a
d/survive: Apply device IPD to view poses
2023-03-08 21:46:19 +01:00
Jakob Bornecrantz
062dec59b7
cmake: Sort print list and general tidy [NFC]
...
* Sort lists
* Add all entries to exposed cmakedefines list
* Remove duplicate hand-tracking entry
* Move SLAM entry to feature list as it's called feature
2023-03-08 01:03:21 +00:00
Moshi Turner
03546e0b99
h/mercury: Add wrist pose initialization guesser
2023-03-07 17:41:49 -06:00
Moshi Turner
3f2b71a9d5
h/mercury: Use post-rotation residual that'll handle big rotations
...
Fixes a long-standing bug
2023-03-07 17:41:49 -06:00
Moshi Turner
cdd0a6df67
h/mercury: Have a post-translation as well as post-rotation
...
For better numerical stability. Shouldn't significantly affect tracking besides slight jitter reduction and very slightly higher accuracy.
2023-03-07 17:41:49 -06:00
Moshi Turner
7c93b1ccfd
h/mercury: Move all defines to lm_defines.hpp
2023-03-07 17:40:45 -06:00
Moshi Turner
4ccc133ac5
h/mercury: Split lm_rotations into two files to make copyright ownership clear
2023-03-07 17:40:45 -06:00
Moshi Turner
7485afbeaa
xrt: Refactor oxr_sdl2_hack to u_debug_gui
...
And OXR_DEBUG_GUI to XRT_DEBUG_GUI
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-03-06 16:39:52 -06:00
Jakob Bornecrantz
e338d57945
st/gui: Remove unused pointer [NFC]
2023-03-06 14:38:36 +00:00
Moshi Turner
c0af2327fd
h/mercury: Push frame timestamp back before predicting next frame ROIs
...
Fixes minor logic error and stops crash if hands are detected on the very first frame
2023-03-05 22:41:10 -06:00
Moshi Turner
bc152f6983
h/mercury: Dynamically allocate arrays for stereographic projection
...
Also factor out stereographic_unprojection into its own file because we're gonna need it elsewhere
2023-03-04 17:52:15 -06:00
Moshi Turner
0931cbaf0f
h/mercury: Add option to run hand detection model in all views
2023-03-03 20:27:39 -06:00
Moshi Turner
7f5562c765
h/mercury: Don't show hands until tracked for 10 frames
2023-03-03 20:27:39 -06:00
Moshi Turner
84bae0b8ca
h/mercury: Add debug instrumentation header
...
So that we can run automated tests on our hand tracking
2023-03-03 20:27:39 -06:00
Moses Turner
a934bf4ae3
h/mercury: Bump the hand detection threshold up
2023-03-03 20:27:39 -06:00
Jakob Bornecrantz
006bdbc400
u/pp: Add new xrt input enums to printing function
2023-03-03 21:38:54 +00:00
Jakob Bornecrantz
3ab34071be
st/oxr: Extract space type conversions
2023-03-03 21:38:54 +00:00
Jakob Bornecrantz
a980392b9e
st/oxr: Refactor out conversion helper to own header
2023-03-03 21:38:54 +00:00
Jakob Bornecrantz
b15ac35e76
st/oxr: Refactor some things into oxr_defines.h
2023-03-03 21:38:54 +00:00
Jakob Bornecrantz
d84a679eb9
u/builders: Move setup tracking origin function here
2023-03-03 21:38:54 +00:00
Jakob Bornecrantz
05de788168
d/multi: Remove all uses of tracking_origin offsets
2023-03-03 21:38:54 +00:00
Moshi Turner
5519aecd2c
cmake: Don't build t_euroc_recorder on Windows
2023-03-03 15:13:23 -06:00
Moshi Turner
8d2d90432a
cmake: Add XRT_MODULE_MONADO_GUI
2023-03-03 15:13:23 -06:00
Moshi Turner
ed086ea423
cmake: Add XRT_MODULE_MONADO_CLI
2023-03-03 15:13:23 -06:00
Moshi Turner
ae7167dbab
cmake: Add XRT_MODULE_AUX_VIVE
2023-03-03 15:13:23 -06:00
Moshi Turner
85a701a4a0
cmake: Add XRT_MODULE_MERCURY_HANDTRACKING
2023-03-03 15:13:23 -06:00
Moses Turner
58399cd993
h/mercury: Remove duplicate include
2023-03-03 15:13:23 -06:00
Moshi Turner
54bd4b844f
a/math: Fix m_filter_f32_run -> m_filter_euro_f32_run
...
This is currently used in the delay filter in the Mercury SteamVR driver
2023-03-03 15:13:23 -06:00
Moses Turner
c596b31327
h/mercury: Add interface header define
2023-03-03 15:07:45 -06:00
Moshi Turner
c750d714a9
d/ht_ctrl_emu: Fix pinch detection
2023-03-03 15:07:45 -06:00
Jakob Bornecrantz
4b6491aa16
cmake: Introduce a new module category
2023-03-03 20:56:59 +00:00
Ryan Pavlik
2a3157b087
cmake: Do not install a test binary
2023-03-03 01:06:11 +00:00
Ryan Pavlik
fd77b84938
st/oxr: Suppress clang-tidy removing a forward declaration.
2023-03-03 01:05:14 +00:00
Ryan Pavlik
ae61287f4c
a/vk: Enlarge buffer to fix warning
2023-03-03 01:05:14 +00:00
Ryan Pavlik
124c9ecf3f
st/oxr: Suppress a warning.
...
It looks more serious than it actually is, this is normal usage.
2023-03-03 01:05:14 +00:00
Ryan Pavlik
9348130fe7
a/util: Fix bitwise operation on signed integer warnings
2023-03-03 01:05:14 +00:00
Ryan Pavlik
bdc526b77d
xrt: Fix bitwise operation on signed integer warnings
2023-03-03 01:05:14 +00:00
Ryan Pavlik
cff131da36
st/oxr: Fix bitwise operation on signed int warnings.
2023-03-03 01:05:14 +00:00
Ryan Pavlik
f43ac4841b
d/wmr: Fix warnings/issues, mostly related to 32-bit builds
2023-03-03 01:05:14 +00:00
Ryan Pavlik
f230446cec
c/util: Fix printf on 32-bit
2023-03-03 01:05:14 +00:00
Ryan Pavlik
06b91dabc8
c/main: Fix printf formatting on 32bit
2023-03-03 01:05:14 +00:00
Ryan Pavlik
43ac5d44cf
d/euroc: Fix printf formatting on 32bit
2023-03-03 01:05:14 +00:00
Ryan Pavlik
fd2c7c6a98
a/util: Fix printf formatting on 32-bit
2023-03-03 01:05:14 +00:00
Ryan Pavlik
172a5baf23
st/oxr: Add missing calling convention macros for entry points.
...
Fixes 32-bit Windows build.
2023-03-02 13:48:25 -06:00
Moshi Turner
3c1880448e
a/vive: Remove unused zlib linkage
2023-03-02 04:35:44 +00:00
Moshi Turner
e26a272c17
d/dai, st/gui, t/common: Make DepthAI frameserver work with multicam sinks
2023-03-01 14:37:26 -06:00
Ryan Pavlik
9cf124254e
c/main: Constify target factories
2023-03-01 19:54:36 +00:00
Ryan Pavlik
3058f1c149
c/main: Fix typo
2023-03-01 19:54:11 +00:00
Mateo de Mayo
59c3c911e6
d/rift_s: Add initial multicamera support
...
Tested-by: Nova <technobaboo@gmail.com>
2023-03-01 19:47:10 +00:00
Mateo de Mayo
813cb31cc6
t/euroc: Support euroc recording for multiple cameras
2023-03-01 19:43:06 +00:00
Mateo de Mayo
c39dc977c4
d/euroc: Support datasets with more than two cameras
2023-03-01 19:43:06 +00:00
Mateo de Mayo
186ca8258e
t/slam: Adapt camera calibration data for multiple cameras
2023-03-01 19:43:06 +00:00
Mateo de Mayo
d8e1b7d921
t/slam: Handle multiple camera sinks
2023-03-01 19:43:06 +00:00
Mateo de Mayo
09d7aac89e
external/slam: Update interface to support multiple cameras
2023-03-01 19:43:06 +00:00
Mateo de Mayo
52cac31d3a
xrt: Support more than two cameras in a SLAM sink
2023-03-01 19:43:06 +00:00
Mateo de Mayo
a93dc650a1
u/debug: Export debug_to_num function
2023-03-01 19:43:06 +00:00
Jakob Bornecrantz
84ccf3a78e
a/math: Tidy m_filter_one_euro.[h|c]
2023-03-01 19:34:50 +00:00
Ryan Pavlik
534d2e9f66
a/math: Improve comments for one euro filter
2023-03-01 19:33:48 +00:00
Ryan Pavlik
8f02541c27
a/math: Add a zeroing in the generic init for one euro
2023-03-01 19:31:59 +00:00
Ryan Pavlik
0c8d78fe49
a/bindings: JSON schema for bindings
2023-03-01 17:10:48 +00:00
Ryan Pavlik
2d056e6606
a/math: Add comment for searching in the lever arm math.
2023-03-01 17:08:39 +00:00
Ryan Pavlik
66a303f809
st/oxr: Internal docs
2023-03-01 17:08:39 +00:00
Jan Schmidt
699a92d9f8
rift_s: Ignore the first 100 samples for the clock
...
After turning on the display, the Rift S
sends a burst of stale data and it can lead to
wildly incorrect clock estimates that then
recover really slowly and cause SLAM tracking to
lag horribly.
Throw away the first 100 samples, which seems to be
enough (only the first 20 or so seem to be bad).
Also reduce the clock a2b cutoff frequency, for
faster adaptation to changes.
Tested-By: Nova <technobaboo@gmail.com>
2023-03-01 17:08:09 +00:00
Ryan Pavlik
f6ab734b2e
a/math: Add floating point conversion methods to Rational
2023-03-01 10:53:18 -06:00
Jakob Bornecrantz
9a19a91f2d
ipc: Refactor out common ipc_client_xdev
2023-02-28 21:27:56 +00:00
Jakob Bornecrantz
a86cb86c80
st/oxr: Remove unused out_xdev argument
2023-02-28 21:27:53 +00:00
Jakob Bornecrantz
78f069a10d
a/math: Make argument const
2023-02-28 21:27:19 +00:00
Ryan Pavlik
f66d60cb2c
aux/android: The Android XINA already always adds "sampled"
2023-02-28 13:56:58 -06:00
Jarvis Huang
9b2384f1fb
t/android: Fix unable to connet to runtime if process is still alive
2023-02-28 19:38:41 +00:00
Jakob Bornecrantz
494e17e173
c/util: Filter Vulkan formats for AHardwareBuffer formats
...
Some drivers says that they can export/import Vulkan formats that doesn't
have a direct mapping to a AHardwareBuffer format. Our import/export code
doesn't handle that case so make sure to filter out those formats.
2023-02-28 16:05:39 +00:00
Jarvis Huang
5380b6c149
st/oxr: Use xrt_device_is_form_factor_available
2023-02-22 23:52:21 +00:00
Jarvis Huang
693641b70b
ipc: Add support for xrt_device::is_form_factor_available
2023-02-22 23:52:21 +00:00
Jarvis Huang
b93d1ea8b8
xrt: Add xrt_device::is_form_factor_available
2023-02-22 23:52:21 +00:00
Simon Zeni
fdec80cd99
d/survive: add hand tracking pose offsets to controller
2023-02-22 23:51:50 +00:00
Simon Zeni
0402a1e1a0
aux/vive: add hand tracking values to vive_poses transforms
2023-02-22 23:51:50 +00:00
Fernando Innella
80a8048c39
c/render: Fix handling of alpha channel in compute layer renderer
2023-02-21 11:10:10 -05:00
Mateo de Mayo
e9e0cf9f2c
t/slam: Recover fallback measurements for systems without timing extension
...
Fixes #235
2023-02-18 13:49:56 +00:00
Mateo de Mayo
b666b8b017
t/slam: Use accel for prediction by default
...
Before we were not doing this because we have a hardcoded gravity vector.
Due to this, if the IMU gravity is too different, it causes the prediction to
bounce around slightly.
In practice the difference seems to be sufficiently small so as to be almost
not noticeable and we get the latency improvements we get are probably worth it.
2023-02-17 15:31:59 -06:00
Mateo de Mayo
4ac9d985e5
st/steamvr_drv: Silence warning
2023-02-17 15:31:53 -06:00
Mateo de Mayo
5ba9efd522
t/euroc: Implement trajectory recording
2023-02-17 21:03:08 +00:00
Connor Smith
8b8358f0c9
Fix typo in Magic Leap 2 controller shoulder button path.
2023-02-17 15:05:41 -05:00
Moses Turner
3bfc87f76d
(NFC) h/mercury: Fix typo
2023-02-16 17:03:17 -06:00
Moses Turner
8621acd899
d/ht, h/mercury: Use u_file_get_hand_tracking_models_dir
...
Needed for Windows SteamVR driver
2023-02-16 17:03:17 -06:00
Moses Turner
8b2d62cf57
a/util: Add u_file_get_hand_tracking_models_dir
...
Needed for Windows SteamVR driver
2023-02-16 17:03:15 -06:00
Moses Turner
266aec20e1
(NFC) h/mercury: Random nit in if case
2023-02-16 17:01:12 -06:00
Moses Turner
79701d8567
h/mercury: Remove __builtin_expect on MSVC
2023-02-16 17:01:12 -06:00
Moses Turner
3155765aed
h/mercury: IWYU hg_image_distorter
2023-02-16 17:00:48 -06:00
Moses Turner
b32ee5bbfb
a/vive: Add extern "C" so we can use from C++
...
Needed for Windows SteamVR driver
2023-02-16 17:00:48 -06:00
Moses Turner
2835b597be
a/tracking: Support JPEG output in euroc recorder
2023-02-16 16:53:13 -06:00
Moshi Turner
73416db7ba
a/tracking: Remove break statement that broke OPENCV_RADTAN promotion/demotion
2023-02-13 11:30:44 -06:00
Ryan Pavlik
0b7c822007
a/bindings: Fix typos
2023-02-08 17:35:58 -06:00
Ryan Pavlik
f32ed406d8
a/android,ipc/android: Fix typos
2023-02-08 17:35:49 -06:00
Ryan Pavlik
a87fb2be93
a/tracking: Fix typo
2023-02-08 17:35:33 -06:00
Ryan Pavlik
a51c2bcb1a
d/rift_s: Fix typo
2023-02-08 17:35:22 -06:00
Ryan Pavlik
992066ea7e
c/shaders: Fix typos
2023-02-08 17:35:14 -06:00
Christoph Haag
60b8b6e8fc
a/binding: reverb g2 input/menu/click is on both hands
...
Spec:
On both hands
…/input/menu/click
2023-02-07 11:27:39 +00:00
Ryan Pavlik
999c67975a
st/oxr: Fix inconsistent naming related to subaction paths
2023-02-06 17:58:00 -06:00
Ryan Pavlik
b2e65ed08c
st/oxr: Add some const correctness
2023-02-06 17:58:00 -06:00
Ryan Pavlik
573cbb12ee
st/oxr: Fix typo
2023-02-06 17:58:00 -06:00
Daniel Willmott
795de613c1
d/survive: Add aim pose offset to index controllers
2023-02-05 20:19:52 +00:00
Daniel Willmott
ab857e8f74
aux/vive: Add vive_poses
2023-02-05 20:19:52 +00:00
Daniel Willmott
e383609cbc
aux/math: Add math_quat_from_euler_angles()
2023-02-05 20:19:52 +00:00
Moses Turner
e9f79c45bf
h/mercury: Update hand tracking with new half-artificial model
2023-02-04 15:23:04 -06:00
Moses Turner
bfdeaa7d8f
a/tracking: Introduce t_camera_models.h
2023-02-04 15:23:04 -06:00
Mateo de Mayo
3cdc02c1bb
a/vk: Small improvements
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-02-04 18:52:59 +00:00
Jakob Bornecrantz
a8c4d1299e
a/vk: Fix crash caused by different signedness comparisons
...
Closes #234 .
All credit for debugging and figuring out what the problem is goes to Mateo, I
made a different fix for it.
Co-authored-by: Mateo de Mayo <mateo.demayo@collabora.com>
2023-02-04 18:52:35 +00:00
Mateo de Mayo
5b431152e1
t/common: Remove invalid parameter
2023-02-03 10:13:41 -03:00
Jakob Bornecrantz
c7e3a358b3
c/main: Prettier print of VkSurfaceFormats
2023-02-02 20:50:42 +00:00
Jakob Bornecrantz
e5b28c491a
c/main: Refactor instance extension selection
...
Add also add VK_EXT_swapchain_colorspace
2023-02-02 20:50:42 +00:00
Jakob Bornecrantz
a7f7023570
c/main: Add optional VK_KHR_format_feature_flags2
2023-02-02 20:40:20 +00:00
Jakob Bornecrantz
3a143cadd1
a/vk: Print more color space formats
2023-02-02 20:40:20 +00:00
Jakob Bornecrantz
7576ce0960
a/vk: Track VK_EXT_swapchain_colorspace
2023-02-02 20:40:20 +00:00
Jakob Bornecrantz
b7addee249
a/vk: Track VK_KHR_format_feature_flags2
2023-02-02 20:40:20 +00:00
Jakob Bornecrantz
3dc0415374
ipc: Tidy client includes (NFC)
...
Fixes some clang-tidy warnings about duplicated includes.
2023-02-02 20:05:06 +00:00
Jakob Bornecrantz
0938a1a02b
xrt: Fix missing function declaration without a prototype warnings
...
Found by clang-15.
src/xrt/auxiliary/math/m_permutation.c:133:15: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
m_do_the_thing()
^
void
2023-02-02 13:03:08 +00:00
Patrick Nicolas
559e145934
c/main: Record pose used in compositor
2023-01-31 09:30:47 +00:00
Patrick Nicolas
7a0d87db25
c/main: Allow providing comp_target_factory in constructor
2023-01-31 09:30:47 +00:00
Guillaume Meunier
76dff0b42f
ipc: make the pid filename, the socket filename, and the client library suffix customizable
2023-01-31 09:30:47 +00:00
Moses Turner
86e31f54f3
xrt: Refactor t_camera_calibration to use a tagged union instead of a bare array
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-01-30 17:09:27 -06:00
Jakob Bornecrantz
3b0f938028
d/simulated: Add builder
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
d1b7e3e557
d/simulated: Add controllers
...
Supports simulating Simple, WinMR and ML2 controllers
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
c562930cdc
d/simulated: Export logging level
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
0494777d1a
d/simulated: Make hmd center be pose and make it possible to pass it in at start
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
121bcf028a
d/simulated: Make it possible to pass in movement mode
...
And a little bit of tidy.
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
06806cc6ef
t/common: Tidy builder list
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
9b8de2f155
t/common: Sort builder definitions alphabetically
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
84ebd4d687
t/common: Add comment to NorthStar builder create function
2023-01-30 13:20:57 +00:00
Jakob Bornecrantz
17a14d5b10
t/cli: Add calib-dump command
2023-01-29 01:38:01 +00:00
Moses Turner
7d72b74a68
c/main: Make peek window struct private, and fix build with old SDL2
2023-01-28 12:47:57 -06:00
Jakob Bornecrantz
9bd63cb37d
d/dai: It's using aux_util so depend on it
2023-01-27 20:17:27 +00:00
Moses Turner
1bba34e944
xrt: Remove old_rgb hand tracking
2023-01-27 12:37:33 -06:00
Moses
10cdde859a
a/math, comp/main, comp/render: Change math_matrix_2x2_* to m_mat2x2_*
2023-01-27 12:37:22 -06:00
Moses Turner
7d8d1ad8e7
a/math: Add m_matrix_2x2_invert
2023-01-27 12:37:22 -06:00
Moses Turner
da16e64982
a/math: Move m_matrix_2x2 functions into their own header
2023-01-27 12:37:22 -06:00
Moses Turner
2c73485ecd
d/ht: Tidy header
2023-01-26 19:10:57 -06:00
Mateo de Mayo
da50a2499f
d/wmr: Adjust exposure and gain individually for each camera
2023-01-26 18:07:10 +00:00
Mateo de Mayo
60b996239c
u/aeg: Add optional prefix for having multiple aeg UIs
2023-01-26 18:07:10 +00:00
Mateo de Mayo
d22f58bee4
u/var: Add nested headers
2023-01-26 18:07:10 +00:00
Christoph Haag
6f263dbda4
a/vk: allow VkImageViewUsageCreateInfo in Vulkan 1.1
...
Some drivers do not advertise support for VK_KHR_maintenance2 in
Vulkan 1.1, because it has been promoted to core.
This caused a validation error on compositors that use Vulkan 1.1
because the scratch image is allocated with unorm format and STORAGE
usage: an image view with srgb format can not be created with STORAGE
usage on many GPUs.
2023-01-26 12:30:13 +00:00
Christoph Haag
a188ef219c
a/vk: Store vulkan version in vk_bundle
...
Also adds code in c/util's Vulkan code to store it.
2023-01-26 12:30:13 +00:00
Christoph Haag
e7fff3e435
d/hdk: handle 0 bytes read
2023-01-26 00:23:18 +01:00
Christoph Haag
bc1d355e26
d/hdk: Zero initialize buffer
2023-01-26 00:17:37 +01:00
Christoph Haag
4030b474ad
d/hdk: Use 100 ms hid read timeout
...
Avoids burning cpu cycles with busy looping
2023-01-26 00:17:37 +01:00
Moses Turner
c9405e946f
t/common: Add environment variable for replacing RiftS controllers with hand tracking
2023-01-25 22:24:53 +00:00
Jakob Bornecrantz
c21a8ef0cc
st/oxr: Add controller extensions
...
Extensions enabled:
* XR_EXT_hp_mixed_reality_controller
* XR_EXT_samsung_odyssey_controller
* XR_ML_ml2_controller_interaction
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
6ce2978648
xrt: Add ML2 controller
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
d231850771
xrt: Add Samsung Odyssey Controller
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
958911fd0b
xrt: Add HP Reverb G2 Controller
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
ed1f18bb74
xrt: More space in xrt_input_name enum list
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
213cc271f6
xrt: Sort xrt_device_name enums
2023-01-24 22:40:53 +00:00
Jakob Bornecrantz
da5323642d
m/space: Correct comments
2023-01-24 16:11:56 +00:00
Jakob Bornecrantz
c7fdaacd02
m/space: Make sure to use valid poses in linear and angular calculations
2023-01-24 16:11:56 +00:00
Jakob Bornecrantz
f7118d7a93
m/space: Refactor pose part first
2023-01-24 16:11:56 +00:00
Jakob Bornecrantz
02aad19c78
m/space: Make pose validity upgrading clearer
2023-01-24 16:11:56 +00:00
Jakob Bornecrantz
2c1d413bf0
m/space: Add missing extern "C"
2023-01-24 16:11:56 +00:00
Jakob Bornecrantz
1c046dc523
m/space: Move functions to correct section
2023-01-24 16:11:56 +00:00
Robbie Bridgewater
17560d0618
a/util,st/gui: Add i64 as a debug GUI type
2023-01-24 15:35:39 +00:00
Fernando Velazquez Innella
e035d060d1
c/render: implement render_resources_get_duration
...
Useful for systems that don't support calibrated timestamps and caseas where only execution time measuring is needed.
2023-01-24 15:35:31 +00:00
Ryan Pavlik
85a897a0b5
a/d3d,a/vk,c/client,ipc: D3D Depth texture / DXGI handle support
...
a/d3d: Improve allocation
Enable D3D11 and D3D112 depth images using DXGI handles
Allow D3D depth by default
D3D: only use DXGI handles
NT handles don't support depth formats and may fail to properly interop with Vulkan with some image dimensions.
Removed D3D_COMPOSITOR_ALLOW_DEPTH env.
D3D now always imports depth.
Added authorship.
Format pass
Fix D3D compositor tests
ipc: Fix HANDLE bit twiddling code
Merge into commits related to D3D depth changes. Makes the code compile
as C++, useful for Windows traceing
Co-authored-by: Robbie Bridgewater <ebridgewater@magicleap.com>
Co-authored-by: Fernando Velazquez Innella <finnella@magicleap.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-01-24 15:35:22 +00:00
Robbie Bridgewater
3802e737bb
a/d3d,a/vk: Add R32_SFLOAT formats
...
Co-authored-by: Catalin Slobodeanu <cslobodeanu@magicleap.com>
2023-01-24 15:35:01 +00:00
SJakab
e4a40a6e4e
st/oxr: Skip oxr_session_end if connected to Unreal 4.
2023-01-24 11:42:46 +00:00
Moses Turner
4709ab85ca
d/wmr: Fix grammar
2023-01-23 14:24:28 -06:00
Christoph Haag
87680c69d4
d/ohmd: Get rid of enum alias
...
The last enum index was used to determine the size of the inputs array.
The "clever" solution of aliasing enum values saved a minor amount of space
when allocating the xrt_device, while still allowing to dynamically assign
any input profile.
It also has drawbacks of being confusing and making it impossible to
validate that inputs from the correct xrt_input_name is requested.
Therefore just get rid of it, the minor space savings is not worth it.
fixes 2be4cbf4c3
2023-01-23 17:46:33 +01:00
Mario Kleiner
887b770f9e
aux/binding: Implement optional "steamvr_controllertypes" for SteamVR input bindings
...
Add an optional switch -s or --steamvr to steamvr_profiles.py, which enables
a different naming scheme for the "controller_type" field in the generated
SteamVR profile json files.
If the switch is provided and an interaction profile in bindings.json
provides the optional new property "steamvr_controllertype", that property
will be used for the "controller_type" field of the written out .json,
instead of the regular auto-generated name.
This allows to generate json files which use controller_type names normally
used by SteamVR, so Monado provided controllers are mapped to the same
OpenXR interaction profiles that SteamVR would normally map them to.
E.g., the standard controller_type for Oculus touch controllers used by
SteamVR is "oculus_touch" instead of Monado's "monado_oculus_touch_controller".
That in turn allows OpenXR clients to use the SteamVR/OpenXR runtime to
access controllers provided by Monado's SteamVR driver plugin. Without such
compatible json files, only standard OpenVR clients can use controllers
exposed by Monado's SteamVR driver by default, but not OpenXR clients.
Tested with an Oculus Rift CV-1, and shown to now enable OpenXR clients
to make full use of the Oculus touch controllers.
The mappings for controllers other than Oculus Touch are derived from
SteamVR log output, but not actually tested due to lack of suitable hw.
Per discussion for the merge request, we enable this '-s' flag by
default in the make file for SteamVR style naming scheme.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-01-23 16:30:27 +00:00
Mario Kleiner
d3893c229f
aux/binding: Implement optional "steamvr_path" for SteamVR input bindings
...
When using the Monado SteamVR driver plugin together with an Oculus
Rift CV-1 and Oculus touch controllers, the grip / squeeze sensors
(e.g., /user/hand/left/input/squeeze/value) and the thumbsticks did not
work.
This because SteamVR expects those controls to be exposed under a
different path than what one would use for OpenXR, e.g.,
OpenXR /input/squeeze --> SteamVR /input/grip and
OpenXR /input/thumbstick --> SteamVR /input/joystick
The same is true for some other controller types.
To fix this, add some new code for input subpath substitution, to perform
this remapping, depending on binding type:
For type "trigger": Substitute squeeze with grip
For type "joystick": Substitute thumbstick with joystick
For rare controller types where this would be the wrong thing to do,
e.g., Valve Index (for type "joystick", needs the path to remain
"thumbstick" as before), and for special cases not covered, we add
a new optional parameter 'steamvr_path' which can be used in bindings.json
to handle such mismatches in path flexibly to allow a dedicated path
name for SteamVR, overriding the regular "OpenXR style" input path or
auto-substituted path is if the parameter is omitted.
This makes the Oculus Rift CV-1 touch controllers fully work under SteamVR.
I haven't tested this with other controllers, as I only have Oculus
controllers for testing atm. But after reading about the HTC Vive controllers,
i did add a "steamvr_path" override for /input/menu -> /input/application_menu.
Cfe. https://github.com/ValveSoftware/openvr/wiki/IVRDriverInput-Overview
Also, a minor typo fix in steamvr_profiles.py as a bonus.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-01-23 16:30:27 +00:00
Mario Kleiner
50f7b5ba5f
d/ohmd: Fix input from controls_mapping[0].
...
Use INPUT_INDICES_LAST instead of 0 for checking if control_mapping[i]
is unassigned for index i, ie. for skipping input.
As 0 is a valid mapping assignment defined in "enum input_indices", this
lead to dead input for SIMPLE_SELECT_CLICK and OCULUS_TOUCH_X_CLICK, both
assigned to 0.
This commit makes the Oculus Rift CV-1 left touch controllers X-Button
work in Monado OpenXR native and SteamVR via. Monado driver plugin.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2023-01-23 16:30:27 +00:00
Jakob Bornecrantz
cb94bc2df0
t/common: Fix warning in lighthouse builder (NFC)
2023-01-23 13:42:20 +00:00
Christoph Haag
694baebd07
d/ohmd: Fix build
...
fixes 2be4cbf4c3
2023-01-22 22:04:47 +01:00
Christoph Haag
2be4cbf4c3
d/ohmd: Support generic trackers and clean up
2023-01-21 19:21:59 +00:00
Moses Turner
dcbdcede5a
a/util: Fix edge cases in Moses's distortion method
...
Before this, we read out of bounds at the bottom of the display. Unsure why nothing but Valgrind caught it.
2023-01-21 03:50:20 +00:00
Jarvis Huang
503dae2883
ipc/android: Early reject if server failed to start
2023-01-19 19:50:28 +00:00
Moses Turner
8d8b0d03b0
a/util: Constify u_box_iou's Box constructor
2023-01-17 23:46:46 -06:00
Moses Turner
1ef49b92f2
d/dai: Control floodlight brightness with an env var
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-01-15 09:54:54 -05:00
Jakob Bornecrantz
4643d4f089
st/gui: Add small hand-tracking demo scene
2023-01-14 20:11:49 -05:00
Christoph Haag
01dd02dc83
d/hdk: initialized thread helper
...
Fixes assert in debug mode.
2023-01-08 23:42:31 +01:00
Mateo de Mayo
6bd921b390
d/wmr: Fix unused corrected IMU timestamp
2023-01-02 16:21:08 -03:00
Jarvis Huang
aa6b8cd88d
ipc: Change init order to avoid assertion
2023-01-01 17:00:43 +00:00
Moses Turner
cd163e366b
c/main: Add another string for Reverb G2 to the nvidia direct mode allowlist
2022-12-31 03:11:41 -06:00
Moses Turner
946141ce40
h/mercury: Remove kine_ccdik optimizer
...
Goodbye, sweet prince.
This was my first attempt at the "optimizer" piece of our optical hand tracking, and it *did work* dammit! It just wasn't anywhere near as flexible or efficient as Levenberg-Marquardt.
It's worse in every way to the `kine_lm` optimizer, and getting hard to maintain, so we're getting rid of it. Gone, but never forgotten.
2022-12-29 20:03:05 +00:00
Jakob Bornecrantz
966878b1db
t/sdl_test: Make sure to include inttypes.h for PRIu64 define
2022-12-21 00:49:06 +00:00
Jakob Bornecrantz
814170469a
t/sdl_test: Include m_mathinclude to fix compile on Windows
2022-12-20 16:02:18 +00:00
Jakob Bornecrantz
1472bdf6b6
c/client: Create a share context instead of using context directly
2022-12-19 16:38:51 +00:00
Jakob Bornecrantz
0cf18ae044
c/client: Refactor context mutex locking to helper function
2022-12-19 16:38:51 +00:00
Jakob Bornecrantz
b87239e7d8
d/wmr: Increase display init sleep and also add debug variable to control it
2022-12-14 12:20:10 +00:00
Malek
5c013bcecd
a/math: Add stdbool include to m_lowpass_integer.h
2022-12-12 00:45:05 -08:00
Christoph Haag
2abcc17178
c/main: Add XRT_COMPOSITOR_DISABLE_DEFERRED env var
2022-12-09 16:38:06 +00:00
SeungHoon Han
a594d6d86e
a/android: fixed forced applied alpha=0.8 window after Android S
2022-12-08 21:41:16 +00:00
SeungHoon Han
a2f5e5f1b9
a/android: hide display cutout to use full screen
2022-12-08 20:24:53 +00:00
Jakob Bornecrantz
040764c4f1
ipc: Trace around ipc_dispatch
2022-12-08 00:24:42 +00:00
Jakob Bornecrantz
50783a4c35
u/trace_marker: Add U_TRACE_[BEGIN|END] for greater control of zones/tracks
2022-12-08 00:24:42 +00:00
Jakob Bornecrantz
f8d2c095ee
u/trace_marker: Ensure ENABLE_TRACE is set before including Tracy headers
2022-12-08 00:24:42 +00:00
Jakob Bornecrantz
87f7b3426a
t/sdl_test: Fix build on Windows
2022-12-08 00:24:42 +00:00
Jakob Bornecrantz
a29a3c5ef3
c/mutli: Error log on failing semaphore wait
2022-12-06 15:26:40 +00:00
Jakob Bornecrantz
ebb7c3cac2
d/wmr: Tidy prober code
2022-12-05 15:21:20 +00:00
zhibin wang
828dacc10b
c/client: Fix eglDestroyImageKHR error and add AHB buffer release
2022-12-05 14:44:53 +00:00
Jakob Bornecrantz
9b3f9baff3
ipc: Properly cast assignment
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
6450cba854
ipc: Clarify code around xrt_comp_begin_session call
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
bc83130354
ipc: Use correct cast
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
2ffaf7fd46
ipc: Add C++ guards to generated headers
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
09975b0d24
ipc: Use XRT_STRUCT_INIT
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
4a8448fcc3
c/multi: Clarify code around xrt_comp_layer_begin call
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
840febfb57
c/multi: Do not declare variable in switch statement
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
f343bb709c
c/multi: Use XRT_STRUCT_INIT
2022-12-04 18:07:53 +00:00
Jakob Bornecrantz
f0021c359f
xrt: Add XRT_STRUCT_INIT define
...
This helps with code that needs to be compiled with both C and C++.
2022-12-04 18:07:53 +00:00
Moses Turner
8c0735feec
d/rift_s: Link to hand tracking driver if necessary
2022-12-04 18:05:02 +00:00
Mateo de Mayo
dad7957fb2
a/math: Add clock_offset.h
...
For now it only has our simple exponential smoothing clock offset estimator.
But more advanced ones can go here too.
2022-12-02 16:10:09 +00:00
Bailey Morgan
35061c1d80
a/vk: Select graphics device based on prefered device type
2022-12-02 14:05:34 +00:00
Maxim Kizub
e600cdaabf
c/main,ipc/android: Deferred render target initialization for Android.
2022-11-30 09:32:18 -06:00
Maxim Kizub
f6e1ea7aa9
t/oxr_android: fixed libmonado-service.so not found UnsatisfiedLinkError in inProcess build variant
...
Co-authored-by: SeungHoon Han <senicy.han@samsung.com>
2022-11-30 09:30:02 -06:00
Maxim Kizub
950f6cc506
a/android: Improve waiting for surface holder
2022-11-30 09:26:38 -06:00
Maxim Kizub
0ee891e7d6
c/main: Deferred render target initialization for windows
2022-11-30 09:25:43 -06:00
Jakob Bornecrantz
f28f3a27e6
c/main: Fix crash on debug print
2022-11-30 13:31:36 +00:00
Moses Turner
85c0c78ac6
a/math: Fix m_vec3_angle function
...
Dot product is equivalent to a.length*b.length*cos(theta), not a.length_squared*b.length_squared*cos(theta)
2022-11-29 03:11:53 -06:00
Jakob Bornecrantz
69238be306
ext/openxr: Update XR_MNDX_force_feedback_curl
2022-11-26 14:26:58 +00:00
Jakob Bornecrantz
2a12f7d661
os/time: Use timePeriod[Begin|End] when sleeping in precise sleeper
...
One alternative to this is to use the CreateWaitableTimerExW function
with the CREATE_WAITABLE_TIMER_HIGH_RESOLUTION flag. On my systems the
function/flag was either as good or worse then timePeriod[Begin|End].
Setting the state globally or just just around the wait didn't seem to
have an impact on the precision.
2022-11-25 17:02:00 +00:00
Jakob Bornecrantz
96552a6caa
t/common: Fix leak of calibration data in RGB-Tracker builder
2022-11-25 16:44:24 +00:00
Jakob Bornecrantz
c195608602
a/tracing: Do more tracing in PSMV tracking code
2022-11-25 16:44:24 +00:00
Jakob Bornecrantz
f552aacb87
a/tracking: Fix data waiting logic in PSMV tracking
2022-11-25 16:44:24 +00:00
Jakob Bornecrantz
fb15e8aa50
ipc: Tidy Windows mainloop code
2022-11-25 16:04:20 +00:00
Jakob Bornecrantz
8271d213f5
ipc: Use u_winerror helper
2022-11-25 16:04:20 +00:00
Jakob Bornecrantz
6fc6968387
t/service: Try to raise priority and privilege on Windows
2022-11-25 16:04:20 +00:00
Jakob Bornecrantz
3b465b4241
u/windows: Add helper for trying priority or privilege from args
2022-11-25 16:04:20 +00:00
Jakob Bornecrantz
9e57a745b2
u/windows: Add function to raise CPU priority
2022-11-25 16:00:49 +00:00
Jakob Bornecrantz
ef77cb08d0
u/windows: Add function to enable privileges on processes
...
Also add a small helper to add the privilege
SeIncreaseBasePriorityPrivilege, which is needed on
NVIDIA for HIGH and REALTIME priority Vulkan queues.
2022-11-25 15:54:45 +00:00
Jakob Bornecrantz
57820394f4
u/windows: Add files and u_winerror string format helper
2022-11-24 16:17:26 +00:00
Jakob Bornecrantz
ad4c6a7215
u/pacing: More Tracy plots
2022-11-24 15:34:59 +00:00
Jakob Bornecrantz
8d817b773e
st/prober: Print the deviecs we got when looping throught the builders
2022-11-24 12:08:17 +00:00
Jakob Bornecrantz
d1db1dabfd
u/pacing: Work around asserts on slow compositors
...
This isn't the most ideal solution but a proper fix will take longer.
2022-11-24 12:03:53 +00:00
Jakob Bornecrantz
ad045fd271
t/sdl: Increase FPS
2022-11-24 12:03:53 +00:00
Jakob Bornecrantz
37da46b709
u/pacing: Add metrics output
2022-11-24 00:34:50 +00:00
Jakob Bornecrantz
87fdedeb68
u/pacing: Track more variables in app pacer
2022-11-24 00:34:50 +00:00
Jakob Bornecrantz
f0cbb8a7aa
t/service: Add metrics support
2022-11-24 00:34:50 +00:00
Jakob Bornecrantz
7fa20a8b46
u/metrics: Add functions to write a metrics file
2022-11-24 00:34:50 +00:00
Moses Turner
f580271291
d/wmr: Guess camera orientation for Reverb G2 based on HT0 twist value
2022-11-23 13:02:35 -06:00
Moses Turner
f5d4d49607
a/math: Add math_quat_to_swing_twist
2022-11-23 13:02:35 -06:00
Moses Turner
b3c277196e
a/math: Add faster (and correct!) math_quat_from_swing_twist
2022-11-23 13:02:35 -06:00
Moses Turner
9af195fea3
h/mercury: Add faster SwingTwistToQuaternion
2022-11-23 13:02:35 -06:00
Moses Turner
e06dc0dda1
a/math: Correct documentation for math_quat_ln and math_quat_exp
2022-11-23 13:02:35 -06:00
Jakob Bornecrantz
6fe06068e8
c/main: Make XCB window deferred
2022-11-23 16:03:15 +00:00
Jakob Bornecrantz
3e1760fd04
c/main: Introduce comp_target_factory
2022-11-23 16:03:15 +00:00
Jakob Bornecrantz
93fdf0bd74
a/vk: Expose vk_select_physical_device function
2022-11-23 14:53:26 +00:00
Jakob Bornecrantz
d8eb6865da
c/render: Don't include comp_compositor.h
2022-11-23 14:53:26 +00:00
Maxim Kizub
f5a06f9c46
c/main: Add code to defer render target initialization
2022-11-23 14:44:51 +00:00
Jakob Bornecrantz
8efb55403c
d/psvr: Switch to reading sensors from its own thread
...
Tested-by: number-g <g@imagination.eu.org>
2022-11-22 17:58:07 +00:00
Jakob Bornecrantz
58596a5830
u/pacing: Add Tracy plots
2022-11-21 16:46:12 +00:00
Jakob Bornecrantz
7bc145d184
cmake: Add XRT_HAVE_TRACY variable
2022-11-21 16:46:12 +00:00
Jakob Bornecrantz
65e76e1277
u/trace_marker: Tracy support
2022-11-21 16:46:12 +00:00
Jakob Bornecrantz
b1b63a9397
d/vive: Do more tracing during packet handling
2022-11-21 13:47:58 +00:00
Jakob Bornecrantz
60099fdd71
t/common: Do more tracing during init and fini
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
8637617833
c/main: Do more tracing during init
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
44599a7de7
c/main: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
432bf03981
c/multi: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
3a2dfd850c
t/hand: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
c9bbeac70a
d/v4l2: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
36d1734377
d/vive: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
5142fa7e88
d/psmv: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
0691ed9b89
d/wmr: Use U_TRACE_SET_THREAD_NAME
2022-11-20 14:36:37 +00:00
Jakob Bornecrantz
386aa510bd
ipc: Use U_TRACE_SET_THREAD_NAME
2022-11-20 13:52:38 +00:00
Jakob Bornecrantz
d48de0d832
u/worker: Use U_TRACE_SET_THREAD_NAME
2022-11-20 13:52:38 +00:00
Jakob Bornecrantz
8b0e7675e4
u/sink: Use U_TRACE_SET_THREAD_NAME
2022-11-20 13:52:38 +00:00
Jakob Bornecrantz
b49dc593b8
u/pacing: Use U_TRACE_PERFETTO define
2022-11-20 13:52:37 +00:00
Jakob Bornecrantz
469a79493c
u/trace_marker: Add U_TRACE_SET_THREAD_NAME
2022-11-20 11:24:27 +00:00
Jakob Bornecrantz
d1e116cb58
u/trace_marker: Check for both tracing and percetto
2022-11-20 00:31:24 +00:00
Jakob Bornecrantz
f4a5e599ef
u/trace_marker: Add convenience U_TRACE_PERCETTO define
2022-11-20 00:31:24 +00:00
Jakob Bornecrantz
648f91d35c
u/trace_marker: Refactor define names and split idents from func
2022-11-19 17:38:48 +00:00
Jakob Bornecrantz
4ee8aa4054
u/trace_marker: Reorg file (NFC)
2022-11-19 17:38:48 +00:00
Jakob Bornecrantz
7d2bd5b3e0
u/trace_marker: Fix copy paste error (NFC)
...
Define was unused till now.
2022-11-19 17:38:48 +00:00
Simon Zeni
9293c628d7
a/vk: add VK_FENCE_IMPORT_TEMPORARY_BIT to vk_create_fence_sync_from_native
2022-11-18 16:43:07 -05:00
Simon Zeni
278aa4cd41
c/main: use swapchain semaphores for peek window rendering
2022-11-18 11:14:41 -05:00
Jakob Bornecrantz
98b7f7d1c6
xrt: Remove xrt_gfx_native
2022-11-15 23:24:20 +00:00
Jakob Bornecrantz
8d6b794878
c/main: Add own interface for creating the main compositor
2022-11-15 23:24:20 +00:00
Moses Turner
cb2c355ba6
t/hand: fix 90 degree rotation for hand detection
2022-11-15 01:58:41 +00:00
Moses Turner
a9d04045e6
c/main: Add Reverb G2's display to nvidia direct allowlist
2022-11-14 19:50:03 -06:00
Jakob Bornecrantz
89aee1892b
d/remote: Update protocol to allow per view data
2022-11-14 16:07:15 +00:00
Patrick Nicolas
a8dc902468
a/vk Add extentions for DMA-buf
2022-11-13 22:56:06 +00:00
Ryan Pavlik
58e4cb6e15
st/steamvr: can not -> cannot
2022-11-09 14:52:03 -06:00
Ryan Pavlik
eac703a106
st/prober: can not -> cannot
2022-11-09 14:52:03 -06:00
Ryan Pavlik
aa01868d0f
xrt: can not -> cannot (comments)
2022-11-09 14:52:03 -06:00
Ryan Pavlik
678b27145a
ipc/client: can not -> cannot
2022-11-09 14:52:03 -06:00
Ryan Pavlik
11bdba7e64
drivers: can not -> cannot
2022-11-09 14:52:03 -06:00
Ryan Pavlik
73f48d12ec
comp/util: can not -> cannot
2022-11-09 14:51:58 -06:00
Ryan Pavlik
2eb259f26a
aux: can not -> cannot
2022-11-09 14:48:38 -06:00
Ryan Pavlik
724b2288f9
st/oxr: can not -> cannot
2022-11-09 14:48:17 -06:00
Ryan Pavlik
1fb6270194
a/util: Resolve a bothersome clang-tidy complaint in iterators.
2022-11-09 08:26:16 -05:00
Ryan Pavlik
290fafa4f7
a/util: Fix missing pragma once
2022-11-09 08:26:16 -05:00
Ryan Pavlik
a072af398c
t/hand: Fix doxygen warnings
2022-11-09 03:47:44 +00:00
Moses Turner
00bf669e61
t/common: Disable SLAM by default for Valve Index
2022-11-08 12:32:23 -06:00
Mateo de Mayo
77f8972f36
d/vive: Add hardcoded quaternions for SLAM extrinsics
...
These come from my own calibration and are hopefully better than the wrong ones
reported by the factory data.
2022-11-08 12:02:34 -06:00
Mateo de Mayo
c3757792d7
d/vive: Generate SLAM calibration automatically from factory data
...
Use factory data for SLAM calibration. Sensor rotations are off in most calib
files we saw (or at least we can't figure something better) so this won't work
very well. It's still necessary to properly calibrate the headset for good
results but at least now something works without that step.
2022-11-08 17:41:43 +00:00
Mateo de Mayo
0ebc7e042f
d/vive: Improve readability of precompute_sensor_transforms (NFC)
2022-11-08 17:41:43 +00:00
Jakob Bornecrantz
ca83275671
ipc: Move struct declaration into same place
2022-11-07 23:48:59 +00:00
Jakob Bornecrantz
f9cd474156
ipc: Use XRT_MAX_IPC_HANDLES and also validate input from client
2022-11-07 23:48:59 +00:00
Jakob Bornecrantz
26c4771bfb
ipc: Make _sync struct have the right indentation
2022-11-07 23:48:59 +00:00
Jakob Bornecrantz
86a6b4b3e3
ipc: Generated code doesn't need to care about line length
2022-11-07 23:48:59 +00:00
Jakob Bornecrantz
8601499a5a
xrt: Add XRT_MAX_IPC_HANDLES
2022-11-07 23:48:59 +00:00
Jakob Bornecrantz
736f1fd671
c/util: Slightly improve device and queue creation
2022-11-04 10:46:42 +00:00
Jakob Bornecrantz
3f3e19299f
c/null: Use VK_KHR_global_priority if available
2022-11-04 10:46:42 +00:00
Jakob Bornecrantz
04f930d99a
c/main: Use VK_KHR_global_priority if available
2022-11-04 10:46:42 +00:00
Jakob Bornecrantz
1253d58717
t/sdl: Use VK_KHR_global_priority if available
2022-11-04 10:46:42 +00:00
Jakob Bornecrantz
6ba07d564c
a/vk: If global priority is not available, only allow medium queues
2022-11-04 10:46:42 +00:00
Jakob Bornecrantz
379bf36860
a/vk: Also try to use VK_KHR_global_priority when creating device
2022-11-04 10:46:42 +00:00
Jakob Bornecrantz
b6803b4bf8
a/vk: Add VK_KHR_global_priority
2022-11-04 10:46:42 +00:00
Mateo de Mayo
9d6c29397f
misc: Fix multiple compile warnings in gcc and clang
2022-11-03 20:08:52 +00:00
Jakob Bornecrantz
45937312bd
a/vk: Print out error on too many images to allocate
2022-11-03 17:43:06 +00:00
Jakob Bornecrantz
a41ccb0467
a/vk: Use xrt limits for number of collection images max
2022-11-03 17:43:06 +00:00
Jakob Bornecrantz
04ab47ef3b
st/oxr: Use xrt limits for number of swapchain images max
2022-11-03 17:43:06 +00:00
Jakob Bornecrantz
cf2dbb9334
ipc: Use xrt limits for number of swapchain handles max
2022-11-03 17:43:06 +00:00
Jakob Bornecrantz
589a898c74
xrt: Start collection of limits in one place
2022-11-03 17:43:06 +00:00
Moses Turner
f41596f176
h/mercury: Replace old detection model, and discard overlapping hands
2022-11-03 16:46:33 +00:00
Moses Turner
b8a586175d
a/util: Add header for box intersection over union
2022-11-03 16:46:33 +00:00
Mateo de Mayo
8f14c572ee
d/vive: Apply IMU pose correction for SLAM tracking
...
The offset between IMU and middle-of-eyes for the Index is quite noticeable and
tracking felt very off before this.
2022-11-03 13:08:02 +00:00
Gustavo Alvarez
21788f8650
t/cli: Link with aux_os_ble
...
Fixes build on certain configurations.
2022-11-03 10:03:25 +00:00
Moses Turner
0cd2f4f081
h/mercury: Fix data home
2022-11-02 22:35:27 +00:00
Moses Turner
32da562bc5
h/mercury: Remove really old keypoint estimator and NCNN stuff
2022-11-02 22:35:27 +00:00
Jakob Bornecrantz
ede2292690
d/psvr: Paranoia
2022-11-02 17:55:58 +00:00
Jakob Bornecrantz
200bbc9da0
d/psvr: Protect sensore reads with device_mutex
...
Fixes asserts by the fusion code where samples where pushed in the wrong
order to the fusion code.
2022-11-02 17:55:58 +00:00
Jakob Bornecrantz
fdac0b5137
d/psvr: Make sure to init the device_mutex before teardown can be called
2022-11-02 17:55:58 +00:00
Jakob Bornecrantz
c4a734e546
a/tracking: Do not push empty frames to debug sink
2022-11-02 17:55:58 +00:00
Jakob Bornecrantz
0f17fa0f5f
a/tracking: Fix data waiting logic in PSVR tracking
2022-11-02 17:55:58 +00:00
Jakob Bornecrantz
f32eb0d662
c/main: Refactor comp_renderer init/fini slightly
2022-11-02 15:24:26 +00:00
Jakob Bornecrantz
f6d7bfbe0a
c/main: Init render shaders and resources earlier
2022-11-02 15:24:26 +00:00
Jakob Bornecrantz
e76b382bc9
c/main: Destroy target before render resources
2022-11-02 15:24:26 +00:00
Jakob Bornecrantz
f6fb9f715e
c/main: Reorder fields to make dependency slightly clearer (NFC)
2022-11-02 15:24:26 +00:00
Jakob Bornecrantz
7b1c18255a
u/pacing: Work around issues with frame reuse
...
The code creates a frame with the timing information, and keeps track of the
times the applications does various things during the frame loop. Like
starting to render and finished rendering and so on. It keeps track of that
frame until it has determined that the application or the system compositor
will never do anything thing with that frame.
Now the allocation side of thing is very simple, just a long array of
FRAME_COUNT size that is reused with frame_id % FRAME_COUNT. So if the
application or the compositor keeps a frame along for too long it will try to
reuse that frame. The code has asserts to catch this. Making FRAME_COUNT makes
that re-use more unlikely.
2022-11-02 00:22:19 +00:00
Jakob Bornecrantz
a5f10e7aa2
c/multi: Rework logging with session transition a bit
2022-11-02 00:21:31 +00:00
Jakob Bornecrantz
01d195808d
st/oxr: Use snprintf to safely write strings to app
2022-10-31 12:12:35 +00:00
Jakob Bornecrantz
51730d2db1
a/vk: Improve the VkResult to string printing (NFC)
2022-10-30 20:17:09 +00:00
Mateo de Mayo
bf66a9595c
build: Fix undefined reference to u_sink_create_queue
...
When XRT_FEATURE_SLAM is on, t_euroc_recorder.cpp is linked.
This depends on u_sink_queue.c.
2022-10-30 11:34:57 -03:00
Boris-Chengbiao Zhou
cd2f204414
st/oxr: Check if user has already enabled timeline semaphores
...
We aren't allowed to add a second struct of the same type to the pNext
chain during Vulkan device creation.
2022-10-28 23:19:50 +02:00
Jakob Bornecrantz
35b941812a
c/client: Merge have EGL conditional file adding
2022-10-27 17:19:57 +00:00
Jakob Bornecrantz
f9c6c0d016
a/ogl: Only link to EGL on Android
2022-10-27 17:19:57 +00:00
Jakob Bornecrantz
d33b2b136f
a/os: Add comments about DSOs
2022-10-27 17:19:57 +00:00
Jakob Bornecrantz
637c49c1ea
a/os: Refactor out BLE functions into own library
2022-10-27 17:19:57 +00:00
Jakob Bornecrantz
96eabd1347
a/os: Add BLE stub functions
2022-10-27 17:19:57 +00:00
Jakob Bornecrantz
d4a77da827
a/util: Add comments about DSOs
2022-10-27 17:19:57 +00:00
Jakob Bornecrantz
e629bbbe2b
a/util: Split out process functions into own library
2022-10-27 17:19:57 +00:00
Jakob Bornecrantz
8ca60f4304
a/util: Split out sink functions into own library
2022-10-27 17:19:57 +00:00
Jakob Bornecrantz
c9ef44dd28
t/common: Remove stale comment
2022-10-27 17:19:57 +00:00
Bailey Morgan
67c47fbcb3
st/oxr: Change result code for invalid OpenGL context to match spec
2022-10-25 18:18:15 +00:00
Christoph Haag
9054dc01ca
d/ht_ctrl_emu: Stub set_output
2022-10-24 17:20:59 +00:00
Christoph Haag
7dd0a6e473
st/oxr: Disable XR_KHR_convert_timespec_time on windows
...
This avoids a current CTS issue.
2022-10-20 12:33:02 +02:00
Mateo de Mayo
80fdf7317f
t/slam: Add SLAM_UI option to enable the external system UI
2022-10-17 21:33:17 +00:00
Julian Petrov
fb28f940b5
Fix an IPC protocol issue on windows when receiving zero HANDLEs
2022-10-14 10:49:50 -04:00
Julian Petrov
d0f713c4c4
ipc: Add Windows support
2022-10-13 17:07:27 +00:00
Julian Petrov
7669d2c545
t/ctl: Don't build on Windows
2022-10-13 17:07:27 +00:00
Julian Petrov
5f4f7530d4
xrt: Introduce a new xrt_ipc_handle_t for IPC connections
2022-10-13 17:07:27 +00:00
Jakob Bornecrantz
12bb18a34c
u/file: Fix define checks being erroneous
2022-10-12 13:05:39 +01:00
Jakob Bornecrantz
1cafa92c3b
u/pacing: Refactor out tracing writing to own function
2022-10-11 20:33:56 +01:00
Jakob Bornecrantz
5ed13c6cc2
u/pacing: Account for present slop in assert
2022-10-11 20:33:56 +01:00
Jan Schmidt
fc3fbd6093
d/ht: Fix rotation/flipping of right hands
...
When dealing with rotated cameras, rotate them backward
to vertical, and then flip the right hand image in
the affine transform to get correct orientation of hands
for the keypoint estimator. Before, the left hand images
were being fed in upside down.
2022-10-10 23:50:58 +00:00
Jakob Bornecrantz
9077261ada
d/dai: Set fields after nullptr check
2022-10-10 22:39:38 +00:00
Jakob Bornecrantz
00c3cc4c2f
d/dai: With the latest depthai-core we can support color OV9782 sensors
2022-10-10 22:39:38 +00:00
Jakob Bornecrantz
4814f627c6
d/dai: Fix conversion warnings
2022-10-10 22:39:38 +00:00
Jakob Bornecrantz
504a2a288e
d/dai: Fix typo
2022-10-10 22:39:38 +00:00
Jakob Bornecrantz
52d225ae3b
t/north_star: Fix build when we have depthai but no hand-tracking
2022-10-10 22:39:38 +00:00
Christoph Haag
751c8034bc
c/main: Remove useless base_space from get_view_poses
...
The compositor doesn't know the concept of requesting view poses in
respect to a "space", so remove this vestigial code.
2022-10-10 15:47:19 +02:00
Julian Petrov
2e4c857a5a
u/process: Make u_process work on non-linux systems
2022-10-09 15:21:37 +01:00
Julian Petrov
c7a5a0bc1b
u/file: Make more functions work on Windows
2022-10-09 15:21:37 +01:00
Robbie Bridgewater
cc2e7b6da3
ipc: Allow IPC path to be set dynamically
...
Uses cache for XRT_IPC_MSG_SOCK_FILE
2022-10-09 15:21:11 +01:00
Christoph Haag
74d82ff37f
d/ht_ctrl_emu: Set xdev serial
2022-10-03 19:23:24 +02:00
Jan Schmidt
e409264ba7
d/wmr: Fix Reverb G2 detection
...
196bf24276
broke Reverb G2
detection. Use the right PID to match the Reverb G2 headset
again.
2022-10-02 03:57:19 +11:00
Jakob Bornecrantz
5fc30a4e22
c/multi: Make sure to retire delivered frames once the session goes invisible or non-active
...
Launching two instances of hello_xr will cause an assert in the app pacer.
2022-10-01 13:10:42 +01:00
Jakob Bornecrantz
88ce42dbf9
c/multi: Paranioa
2022-10-01 13:10:42 +01:00
Christoph Haag
f6821402fd
c/main: Hook up layer squasher in main compositor
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Fernando Velazquez Innella <finnella@magicleap.com>
2022-10-01 13:10:42 +01:00
Christoph Haag
95fb034b92
c/render: Implement layer squashing for compute shader
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Fernando Velazquez Innella <finnella@magicleap.com>
2022-09-30 22:43:58 +01:00
Christoph Haag
fa71462d86
c/render: Move COMP_MAX_LAYERS to render_interfaces.h
2022-09-30 22:38:54 +01:00
Jakob Bornecrantz
13124f019e
d/opengloves: Fix left/right typos
2022-09-29 21:12:44 +00:00
Jakob Bornecrantz
2673787429
d/opengloves: Fix leak of config JSON
2022-09-29 21:12:44 +00:00
Jakob Bornecrantz
1e639fc2f3
d/opengloves: Fix leaks of udev objects
2022-09-29 21:12:44 +00:00
Moses Turner
034099211f
d/dai: Initialize mutex and thread helper
2022-09-28 18:37:49 -05:00
Jakob Bornecrantz
127a467efc
h/mercury: Add missing break statement
2022-09-28 22:56:01 +00:00
Jakob Bornecrantz
da571275c2
st/oxr: Fix enum comparison warning
2022-09-28 22:56:01 +00:00
Jakob Bornecrantz
676e071aca
c/main: Pass GPU info to pacer
2022-09-28 21:46:56 +00:00
Jakob Bornecrantz
08f6440aa4
u/pacing: Trace GPU info
2022-09-28 21:46:56 +00:00
Jakob Bornecrantz
f63c786ac9
u/pacing: Add gpu_info to u_pacing_compositor
2022-09-28 21:46:56 +00:00
Jakob Bornecrantz
da542e3f5e
u/pacing: Introduce latched and retired calls on app pacer
2022-09-28 21:46:56 +00:00
Jakob Bornecrantz
7eacf6bd7a
u/pacing: Refactor out tracing writing to own function
2022-09-28 21:46:56 +00:00
Jakob Bornecrantz
4ec3512641
u/pacing: Track session_id on app pacer
2022-09-28 21:46:56 +00:00
Jakob Bornecrantz
b6b9004fb2
u/pacing: Tidy
2022-09-28 21:46:56 +00:00
Jakob Bornecrantz
d1d845e430
u/pacing: Make sure to set predicted_display_time_ns
2022-09-28 21:46:56 +00:00
Ryan Pavlik
109e373e0c
c/main: Move ownership of present/render semaphores to comp_target
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-09-28 21:34:06 +00:00
Jan Schmidt
3b7f95b39e
d/rift_s: Rework hw2mono clock tracking
...
Use the common hw2mono/a2b clock code from vive_source
2022-09-26 00:32:28 +10:00
Jan Schmidt
942df72c26
d/rift_s: Reduce camera frame delay to 2
2022-09-26 00:32:28 +10:00
Jan Schmidt
32cc6e05da
d/rift_s: Move builder to targets/common
...
Move the builder into the common area.
2022-09-26 00:32:28 +10:00
Jan Schmidt
5c573152a8
d/rift_s: Set camera orientation in calibration
...
Put the right rotation of the front cameras
into the camera calibration struct
2022-09-26 00:32:28 +10:00
Jan Schmidt
495eecb65f
d/rift_s: Add 6DOF SLAM tracking and hand tracking
...
Find and capture input from cameras, and split according to
frame type. Send long exposure tracking frames through
the AEG module, and SLAM and hand tracking trackers.
Add controller emulated hand devices.
The native "fisheye62" camera distortion model is
dynamically converted to OpenCV Kannala-Brandt
parameters using a TinyCeres solver.
2022-09-26 00:32:28 +10:00
Jan Schmidt
9fbe81e494
d/rift_s: Port OpenHMD Oculus Rift S driver
...
Port across the Oculus Rift S driver from OpenHMD as a native
Monado driver.
This is mostly the same as the OpenHMD 3DOF driver, with
slightly better HMD distortion correction, various small
fixes, some capsense touch detection support.
Controller poses are rotated 40° to match grip pose.
2022-09-25 02:17:44 +10:00
Jakob Bornecrantz
b5b832f612
u/trace_marker: Silence deprecation from percetto defines
2022-09-22 22:00:32 +01:00
Moses Turner
47714ed650
h/mercury: Add 2D model input and output visualizers
2022-09-22 13:22:55 -05:00
Moses Turner
812cc01104
h/mercury: Fix for blackbar in 180 degree orientation
2022-09-22 14:02:21 +01:00
Jakob Bornecrantz
098bd5e773
st/gui: Add discrete steps in video preview scale
2022-09-22 14:02:21 +01:00
Moses Turner
9a9878a850
st/gui: Improve record window scaling and add 180 degree flipping
2022-09-22 12:09:25 +00:00
Moses Turner
d5dd9a264e
a/util: Remove C++ guards and pragma once from C source file
2022-09-22 01:11:33 -05:00
Moses Turner
6ec9b73e1e
d/wmr: Provide camera orientation to hand tracking
2022-09-21 23:11:58 -05:00
Jakob Bornecrantz
5c958d096d
d/vive: Make sure to free the source
2022-09-22 00:41:10 +01:00
Moses Turner
45e52dee8f
d/ns: Switch NS driver to builders
2022-09-21 07:57:03 -05:00
Moses Turner
6fdd790da0
d/dai: Update DepthAI driver
...
* Removed depthai_tracked_device - now you create a "SLAM" device, plug any frameserver into it and you're done
* Consolidated the grayscale frameservers into just one that gives you SLAM sinks
* Allows for different framerates and half-size for ov9282s
* Added debug frame sinks
* Added the ability to wait at startup for a number of frames for the streams to stabilize before submitting them to SLAM
2022-09-21 07:57:03 -05:00
Moses Turner
201708dee5
d/ht: Remove DepthAI hand tracking device
...
This was super crufty. Instead now you use a builder to create SLAM sinks with the DepthAI builder and plug them into a regular HT device
2022-09-21 07:57:03 -05:00
Moses Turner
074e18cac9
d/twrap: Add tracking wrapper driver
2022-09-21 07:57:03 -05:00
Moses Turner
ef767af2ad
cmake: Always build ht_ctrl_emu driver
2022-09-21 07:57:03 -05:00
Moses Turner
16dffc8d3b
cmake: Link drv_ht and drv_cemu in t/common instead of vive/survive
2022-09-21 07:57:03 -05:00
Moses Turner
5c18f83e8d
d/ulv2: Convert Ultraleap driver create function to helper
2022-09-21 01:54:40 +01:00
Moses Turner
833787c492
u/tracked: Add u_tracked_imu_3dof
2022-09-21 01:52:15 +01:00
Moses Turner
d48792d9a9
u/sink: Ensure that image frames have monotonic timestamps
2022-09-21 01:52:15 +01:00
Moses Turner
17e0c39df2
u/sink: Add u_imu_sink_force_monotonic and u_imu_sink_split
2022-09-21 01:52:15 +01:00
Moses Turner
48e8894b74
u/json: Add u_json_get_pose_permissive
...
To parse poses from non-Monado configs with non-standard member names.
2022-09-21 01:52:15 +01:00
Moses Turner
b31eb76718
u/json: Add u_json_get_pose
2022-09-21 01:52:15 +01:00
Moses Turner
d91975299d
u/config: Use cJSON_Delete instead of cJSON_Free for gui scene parsing
2022-09-21 01:52:15 +01:00
Moses Turner
714925e1b8
t/common: Use cJSON_Delete instead of cJSON_Free in SimulaVR
2022-09-21 01:52:15 +01:00
Moses Turner
e1fbb5b619
cmake: Improve seperation between categories (NFC)
2022-09-21 01:52:15 +01:00
Moses Turner
a23bf9ab36
d/ns: Use math/m_mathinclude.h to fix Windows build
2022-09-21 01:45:24 +01:00
Moses Turner
956ee5ae9d
d/ns: Allow for freeing the 3D optical system
2022-09-21 01:45:24 +01:00
Jakob Bornecrantz
e06608533f
c/multi: Pass in option to do warm start-ups
2022-09-19 22:31:35 +00:00
Jakob Bornecrantz
6faea9224e
c/multi: Add warm start and invalid states
2022-09-19 22:31:35 +00:00
Jakob Bornecrantz
4b3f97c65d
c/multi: State paranioa
2022-09-19 22:31:35 +00:00
Daniel Willmott
c83c21ef90
d/opengloves: Clarify encoding constants
2022-09-19 22:08:28 +00:00
Daniel Willmott
f953ed7846
d/opengloves: Clarify input enums
2022-09-19 22:08:28 +00:00
Daniel Willmott
ddda9ec727
d/opengloves: Add force feedback extension support
2022-09-19 22:08:28 +00:00
Daniel Willmott
74f14f2414
d/opengloves: Communication api change
2022-09-19 22:08:28 +00:00
Daniel Willmott
0bed585018
st/oxr: Add force feedback extension implementation
2022-09-19 22:08:28 +00:00
Daniel Willmott
b710127fad
xrt/device: Add force feedback role
2022-09-19 22:08:28 +00:00
Daniel Willmott
903aced023
xrt/include: Update xrt defines for force feedback output
2022-09-19 22:08:28 +00:00
Daniel Willmott
3c8e738e77
st/oxr: Update openxr extension support
2022-09-19 22:08:28 +00:00
Moses Turner
d2e2c3a988
cmake: Run cmake-format.sh
2022-09-19 21:57:37 +01:00
Christoph Haag
196bf24276
d/wmr: Add HP VR1000 support
2022-09-19 18:16:21 +00:00
Mateo de Mayo
3d366b9243
gui: Fix layout file not being created for the first time on Windows
...
By ensuring imgui.ini exists.
Also enabled u_config_json_open_or_create_file for Windows as this OS has an
implementation of u_file_get_path_in_config_dir available now.
2022-09-19 17:19:12 +00:00
Moses Turner
bd265c611d
d/ns: update Moses's distortion method
2022-09-19 11:20:04 -05:00
Moses Turner
1836182e24
t/common: Remove superfluous PID/VIDs from SimulaVR builder
...
And remove outdated comments
2022-09-19 11:17:34 -05:00
Moses Turner
33226dd892
d/rs: Add PID/VIDs for T265
2022-09-19 11:17:34 -05:00
Moses Turner
34d158b299
d/dai: Use setXLinkChunkSize(0) to reduce latency
2022-09-19 11:17:34 -05:00
Moses Turner
81764273ca
h/mercury: Use much faster quaternion change of basis
2022-09-19 11:17:34 -05:00
Moses Turner
e8225b273c
t/common: Switch SimulaVR builder to u_file_read_content_from_path
2022-09-19 11:17:34 -05:00
Moses Turner
d04139bedd
u/file: Add u_file_read_content_from_path
...
Useful for Simula builder and North Star builder which both read straight from a path
2022-09-19 11:17:34 -05:00
Moses Turner
a285294d7f
h/mercury: Fix crop calculation for 180 degree rotations
2022-09-19 11:01:04 -05:00
Moses Turner
0ddf3e0e19
t/c/builder_lighthouse: Set camera orientation correctly
2022-09-16 23:41:18 +01:00
Moses Turner
b735d99569
t/c/builder_lighthouse: Move state out of static storage
...
Also reword/rework some stuff to make it more obvious
which parts are specific for Valve Index cameras
2022-09-16 23:41:09 +01:00
Moses Turner
e95d21586f
h/mercury: Use camera orientation for keypoint model input
2022-09-15 21:36:37 -05:00
Jakob Bornecrantz
0fedf6fe7d
sdl_test: Add SDL test framework
2022-09-15 14:06:20 +01:00
Moses Turner
bea3569016
d/dai: Enable IR floodlight code and allow the floodlight to be controlled with an env var
...
IR floodlight support has been merged into DepthAI core
2022-09-13 19:56:27 -05:00
Moses Turner
0f40a4be8f
t/c/builder_lighthouse: Fail more clearly when cameras aren't available
2022-09-13 22:10:58 +00:00
Moses Turner
4c55364d95
d/vive: Always give a vive config
2022-09-13 22:10:58 +00:00
bjorn
8d9244af53
c/render: Avoid potentially-unsupported memory type;
2022-09-13 19:21:13 +00:00
Jakob Bornecrantz
43526f48b7
c/multi: Do not draw apps that are not visible
...
Closes #197
2022-09-13 14:31:24 +00:00
Jakob Bornecrantz
c6aa252796
c/multi: Do not keep track of current and sent state
2022-09-13 14:31:24 +00:00
Jakob Bornecrantz
b95481ebaa
t/ctl: Ensure connection is initialized properly
2022-09-13 14:31:24 +00:00
zhibinw
0cec22e907
ipc/android:allow none activity context for overlay app
2022-09-13 14:21:21 +00:00
Moses Turner
e8054cd682
t/common: Use correct condition for building SimulaVR builder
2022-09-13 02:45:19 -05:00
Ryan Pavlik
a7d553d93e
xrt,comp,ipc...: Clarifying docs about "system compositor" and "multi compositor"
2022-09-12 10:59:41 -05:00
Moses Turner
9d6ca80af3
xrt: Add SimulaVR driver
2022-09-12 12:20:51 +00:00
Moses Turner
cc62600972
d/rs: Allow Realsense device to be created outside of normal target list
2022-09-12 12:20:51 +00:00
Moses Turner
17acb376f9
xrt: Fix some typos that codespell caught
2022-09-11 23:32:28 -05:00
Jakob Bornecrantz
93ab662682
c/main: Destroy peek semaphores
2022-09-09 10:47:31 +01:00
Jakob Bornecrantz
c0a3d53c0a
c/main: Only create not begin peek command buffer
2022-09-09 10:47:30 +01:00
Jakob Bornecrantz
cfa99000a9
c/main: Add image usage to make silence image view creation warnings
2022-09-09 10:46:43 +01:00
Jakob Bornecrantz
d152c1f9db
c/main: The source image starts in SHADER_READ_ONLY_OPTIMAL
2022-09-09 10:46:43 +01:00
Jakob Bornecrantz
dedfd022b8
c/main: Tidy peek code
2022-09-09 10:46:43 +01:00
Jakob Bornecrantz
11a4f776e5
a/vk: Add vk_cmd_buffer_create helper
2022-09-09 10:46:21 +01:00
Jakob Bornecrantz
500d5b9954
a/vk: Rename command buffer helpers
2022-09-09 10:43:49 +01:00
Jakob Bornecrantz
eeaaaf398b
a/vk: Add helper to get buffer handle types
...
The image version of it was used for buffers as well.
2022-09-07 20:42:27 +01:00
Jakob Bornecrantz
115bf93487
st/oxr: Use precise sleeper for extra wait frame sleeps
2022-09-07 15:06:57 +00:00
Jakob Bornecrantz
828246a5cd
c/util: Use wait helper to implement wait frame
2022-09-07 15:06:57 +00:00
Jakob Bornecrantz
0b2c7e207d
c/multi: Use precise sleeper for scheduled frame waiting
2022-09-07 15:06:57 +00:00
Jakob Bornecrantz
e21b74059c
c/multi: Use wait helper to do wait frame on main loop
2022-09-07 15:06:57 +00:00
Jakob Bornecrantz
221aea883a
c/multi: Use wait helper to implement wait frame
2022-09-07 15:06:57 +00:00
Jakob Bornecrantz
1772baa90e
ipc: Use wait helper to implement wait frame
2022-09-07 15:06:57 +00:00
Jakob Bornecrantz
a0d63d2f9c
u/wait: Add wait helper
2022-09-07 15:06:57 +00:00
Jakob Bornecrantz
b09aa79f4a
c/multi: Improve frame timing printing a little bit
2022-09-06 18:08:10 +00:00
Jakob Bornecrantz
f2b8855e51
st/oxr: Correct error message
2022-09-06 18:08:10 +00:00
Jan Schmidt
1811951dd6
t/ht: Add support for camera orientation
...
Add a way to pass in extra information about camera views, this new
struct is merged with the old image boundary information struct.
Co-authored-by: Moses Turner <moses@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-09-06 18:36:53 +01:00
Simon Zeni
a6c30b4083
c/main: stop allocating vkCommandBuffer each blit
2022-09-05 17:58:38 +00:00
Mateo de Mayo
d47d0ce2d9
u/logging: Log to stderr in Windows
2022-09-02 22:43:24 +00:00
Jarvis Huang
7be4163b91
d/android: Fix errors while getting display metrics
2022-09-02 16:25:12 +00:00
Jarvis Huang
52c790d1a9
t/android: Store jvm/context in service-lib
2022-09-02 16:25:12 +00:00
Jarvis Huang
25e96a508c
aux/android: Using DexClassLoader to load class
2022-09-02 16:25:12 +00:00
Mateo de Mayo
dfd37bba78
c/render: Fix forloop bounds innocuous typo
2022-08-31 09:50:17 -03:00
Jakob Bornecrantz
1d4c4cc4a0
c/render: Add scratch image
2022-08-25 16:58:03 +01:00
Christoph Haag
10e5e75a1d
c/render: Default mock image to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
...
Since it's only used as a default/fallback read image it's
best to put it in that layout and keep it there.
2022-08-25 16:58:03 +01:00
Jakob Bornecrantz
4505bf09ff
c/render: Rename scratch to mock
...
Can't use default as it's a keyword in C.
2022-08-25 16:58:03 +01:00
Christoph Haag
eec55c5102
c/render: Put clear and distortion shaders in own sub structs
2022-08-25 16:58:03 +01:00
Jakob Bornecrantz
8b654c76cc
c/render: Spelling
2022-08-25 16:58:03 +01:00
Jakob Bornecrantz
7a52814c26
c/render: Code style
2022-08-25 16:58:03 +01:00
Jakob Bornecrantz
e02f47ef72
c/null: Request VK_KHR_maintenance[1|2]
2022-08-25 16:58:03 +01:00
Jakob Bornecrantz
acd5655a79
c/main: Request VK_KHR_maintenance[1|2]
2022-08-25 16:58:03 +01:00
Jakob Bornecrantz
767637abb8
a/vk: Add image view with usage creation helper
2022-08-25 16:57:56 +01:00
Jakob Bornecrantz
fa02407726
a/vk: Add mutable R8G8B8A8_[UNORM|SRGB] image creation helper
2022-08-25 16:57:54 +01:00
Jakob Bornecrantz
a5efaceba5
a/vk: Add small chain helper
2022-08-25 16:57:36 +01:00
Jakob Bornecrantz
e79b23275b
a/vk: Remove unused vk_get_access_flags function
2022-08-25 15:06:09 +01:00
Jakob Bornecrantz
90f3adcdd1
a/vk: Group code
2022-08-25 15:06:09 +01:00
Jakob Bornecrantz
e7c217cea5
a/vk: Track various limits
2022-08-25 15:06:09 +01:00
Jakob Bornecrantz
b0f51acf77
a/vk: Track maintenance extensions
2022-08-25 15:05:44 +01:00
Jakob Bornecrantz
fc55d623c0
xrt: Deal with vulkan underscore compat issues
2022-08-25 15:05:14 +01:00
Christoph Haag
3c9ef82060
a/math: Add math_matrix_4x4_transform_vec3
2022-08-25 12:41:07 +01:00
Jakob Bornecrantz
06ee685e9a
c/util: Enable swapchain to be sub-classed
2022-08-24 19:56:42 +00:00
Jakob Bornecrantz
d578203a8e
c/util: Refactor comp_swapchain interface a bit
2022-08-24 19:56:42 +00:00
Jakob Bornecrantz
ff4ce5f7e2
d/remote: Reset timout argument to select
...
Select can modify the argument, so need to reset it.
2022-08-24 14:36:56 +01:00
Ryan Pavlik
570f27d486
st/oxr: Wire up Win32 OpenGL
2022-08-22 19:53:50 +00:00
Jakob Bornecrantz
a681252ac1
st/oxr: Tidy includes
2022-08-22 19:53:50 +00:00
Ryan Pavlik
bdcc5be476
c/client: Win32 OpenGL client compositor
...
Co-authored-by: Milan Jaros <milan.jaros@vsb.cz>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-08-22 19:53:50 +00:00
Milan Jaros
afe84a2c35
c/client: Swapchain for Win32 GL
...
Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-08-22 19:53:50 +00:00
Ryan Pavlik
dc470ca6fe
c/client: Adjust minimum GL version for clients to 3.0.0.
2022-08-22 19:53:50 +00:00
Ryan Pavlik
fc0f390a87
aux/ogl: Add WGL wrapper to the build.
2022-08-22 19:53:50 +00:00
Ryan Pavlik
483b0ecbc9
xrt: Header for Win32 OpenGL.
2022-08-22 19:53:50 +00:00
Ryan Pavlik
f2967e834c
xrt: Include wingdi.h for WGL
2022-08-22 19:53:50 +00:00
Moses Turner
4de631285b
u/hand: Fix finger ordering
2022-08-22 13:19:48 +01:00
Ryan Pavlik
1b02783113
d/sample: Clean up, specify a blend mode
2022-08-18 16:45:45 -05:00
Jakob Bornecrantz
074121e371
st/oxr: Use correct device to check for hand tracking support
2022-08-15 15:57:42 +00:00
Jakob Bornecrantz
97874a524a
st/oxr: Remove old unused device role index system
2022-08-15 15:57:42 +00:00
Jakob Bornecrantz
4fa509034d
st/oxr: Print out all roles
2022-08-15 15:57:42 +00:00
Jakob Bornecrantz
2632c2239d
c/multi: Start and stop the native session
...
This depends on the number of active app sessions.
2022-08-15 14:46:26 +00:00
zhibinw
601143bfb7
st/oxr: Support FOCUSED to SYNCHRONIZED transfer in oxr_session_poll
2022-08-15 14:38:18 +01:00
Jakob Bornecrantz
8e70290ec1
d/opengloves: Pass in identity pose to hand simulation
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
936733d4b7
d/vive: Pass in identity pose to hand simulation
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
d978a863c1
d/vive: Tidy
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
7e24b1dfe7
u/hand: Move common init into init helper function
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
e6efcd7a02
u/hand: Take xrt_hand enum instead of bool
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
2b05bfc709
u/hand: Constify arguments
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
dc28c1f04a
d/remote: Fix hand tracking
2022-08-14 16:16:27 +01:00
Jakob Bornecrantz
f535135c13
d/survive: Fix warning and org code (NFC)
2022-08-14 13:19:00 +01:00
Moses Turner
386117c5ee
NFC: a/math: Make math_quat_from_swing prettier
2022-08-13 19:31:58 +00:00
Simon Zeni
778900cd3c
c/main: add hmd peek window
2022-08-12 14:19:13 -04:00
Jakob Bornecrantz
b6cab2fe07
c/main: Treat cube as the other optional layers
2022-08-11 13:42:17 +01:00
Simon Zeni
90f708d91c
xrt: Enable XR_KHR_composition_layer_cube
...
Co-authored-by: Bjorn Swenson <bjorn@collabora.com>
2022-08-11 13:42:09 +01:00
Jarvis Huang
5063e76d16
ipc: Update active client id while activate session changed
2022-08-11 11:57:07 +08:00
Jan Schmidt
f8a486884b
u/u_json: Implement u_json_get_int_array()
2022-08-10 18:30:08 +01:00
Jan Schmidt
ce13de9484
aux/math: Add math_matrix_3x3_from_quat()
...
Add a function to get a 3x3 rotation matrix
from a quaternion.
2022-08-10 18:30:08 +01:00
Moses Turner
e5466553a2
d/euroc: Allow zero timestamps
...
Negative timestamps are still not allowed, but artificially generated datasets might start at exactly zero
2022-08-10 15:09:53 +00:00
Jakob Bornecrantz
d6df203d03
d/opengloves: Fix warning (NFC)
2022-08-10 16:03:33 +01:00
Mateo de Mayo
dabf592d59
t/euroc: Add lock for IMU recording queue
2022-08-10 14:28:59 +00:00
Jakob Bornecrantz
39f80f2ef5
d/vive: Remove unsued variable
2022-08-10 14:18:45 +00:00
Jakob Bornecrantz
54b43f1f31
t/common: Fix warnings in lighthouse builder
2022-08-10 14:18:45 +00:00
Jakob Bornecrantz
45e268dd16
st/oxr: Don't use mysterious time variable for error printing
2022-08-10 14:18:45 +00:00
Jakob Bornecrantz
42f5cf4c9d
d/opengloves: Use correct argument when casting
2022-08-10 14:18:45 +00:00
Aidan Thornton
3485babd71
comp: rotate the compute compositor's distortion texture
...
Some devices like Android smartphones have displays which are
rotated, meaning the compositor needs to rotate its output.
Add support for this to the compute compositor by rotating the
contents of the textures it uses for distortion lookups. This
requires postponing the calculation of that texture and adding
code to recreate it if the rotation changes (which is allowed,
but unlikely to happen in practice.)
2022-08-10 12:39:44 +00:00
Aidan Thornton
4840def448
a/math: add math_matrix_2x2_transform_vec2
2022-08-10 12:39:44 +00:00
Jan Schmidt
96fb9ce34a
wmr: Clean up camera debug last.
...
Make sure to stop the USB thread before destroying the debug sink
as cancelling the transfers is not sufficient to guarantee
there will be no final callback (or one in progress)
2022-08-08 17:31:53 +00:00
Ryan Pavlik
11525976fa
c/client: Fix doc warning
2022-08-08 16:44:24 +00:00
Ryan Pavlik
831c2aefaf
a/math: Fix doc warning
2022-08-08 16:44:24 +00:00
Ryan Pavlik
e6da9b8090
a/d3d: Fix doc warning
2022-08-08 16:44:24 +00:00
Ryan Pavlik
094498dbf3
a/vk: Fix up and factor out external image support check
2022-08-08 16:44:24 +00:00
bjorn
987bc48edc
Fix XrNegotiateRuntimeRequest::structVersion check;
2022-08-08 16:21:40 +00:00
Christoph Haag
c24e482e5e
st/oxr: Make OpenXR timestamps relative to service startup
...
This solves a problem where OpenXR timestamps could become invalid
(negative) in certain circumstances:
The timestamps that the OpenXR state tracker returned were offset such
that they appeared to start at OpenXR application startup time.
However monado-service is a long running service using system timestamps.
Because of this, if monado-service started work using a system timestamp
acquired before an OpenXR application started, then this system timestamp
could not be converted into an OpenXR without becoming invalid.
With this change, the OpenXR timestamps for OpenXR applications are offset
such that they appear to start at monado-service startup time instead.
As a side effect, all OpenXR applications connected to the same
monado-service instance will receive timestamps from the same domain.
2022-08-08 15:52:18 +00:00
Charlton Rodda
996aefe596
Improve validation in xrLocateViews
2022-08-04 19:21:39 +01:00
danwillm
c4a290aa97
xrt/util: Fix typo with number of joints per finger
2022-08-01 17:33:40 +00:00
danwillm
76f96686d1
xrt/drivers: Convert hand tracking drivers to use hand simulation
...
Co-authored-by: Moses Turner <moses@collabora.com>
2022-08-01 17:33:40 +00:00
danwillm
1dee288459
aux/util: Share joint width hand tracking function
2022-08-01 17:33:40 +00:00
danwillm
9e7f814328
aux/util: Remove old hand tracking code
2022-08-01 17:33:40 +00:00
danwillm
9dc8632b0f
aux/util: Add u_hand_simulation
...
Co-authored-by: Moses Turner <moses@collabora.com>
2022-08-01 17:33:40 +00:00
Supreeeme
501d2c4fd5
Fix crash when no hand tracking or controllers
2022-07-31 17:09:19 -04:00
danwillm
72ff5cab80
st/steamvr_drv: add skeletal input from openxr hand tracking
...
Co-authored-by: Moses Turner <moses@collabora.com>
2022-07-28 12:19:20 +01:00
danwillm
9c9f4bb5c5
st/steamvr_drv: comment out "action binding reloaded" log message
2022-07-28 12:19:20 +01:00
danwillm
75995fede0
external, st/steamvr_drv: update OpenVR to 1.16.8
2022-07-28 12:19:20 +01:00
Christoph Haag
ee450e6f29
comp/main: Fix chosen vk display mode debug print
2022-07-27 15:04:31 +02:00
Moses Turner
2868348e8c
t/common: Make controllers work again with the Lighthouse builder
...
!1418 briefly broke controller setup.
2022-07-27 10:49:29 +00:00
Moses Turner
0c4b45c6c2
a/util: Add DEBUG_GET_ONCE_TRISTATE_OPTION
2022-07-27 10:49:29 +00:00
Moses Turner
c0eed827c5
xrt: Remove t_hand_tracking_output_space
...
LEFT_CAMERA is the only one that remained useful
2022-07-27 10:49:29 +00:00
Moses Turner
a5c0f0b426
h/mercury: Fix debug log
2022-07-27 10:49:29 +00:00
Jakob Bornecrantz
65d88f00aa
t/common: Fix warning
2022-07-26 18:15:04 +00:00
Jakob Bornecrantz
19302a5d21
c/util: Fix warning
2022-07-26 18:15:04 +00:00
Jakob Bornecrantz
086a702b79
c/main: Fix warning
2022-07-26 18:15:04 +00:00
Jakob Bornecrantz
86ae6a5bb1
d/wmr: Fix warning
2022-07-26 18:15:04 +00:00
Ryan Pavlik
3fb162ea3a
c/client: Turn off depth formats for D3D11, they are breaking Vulkan right now
2022-07-26 14:45:29 +00:00
Ryan Pavlik
980ad86008
a/vk: Get and show some external buffer data on startup, too.
2022-07-26 14:45:29 +00:00
Ryan Pavlik
490559ee6c
st/oxr: Wire in D3D12 support
2022-07-26 14:45:29 +00:00
Ryan Pavlik
a4d2740b4b
c/client: D3D12 client compositor
2022-07-26 14:45:29 +00:00
Ryan Pavlik
a9facfe671
c/client: Extract some utilities usable by D3D11 and 12
2022-07-26 14:45:29 +00:00
Ryan Pavlik
576b158a83
a/d3d: Add some d3d12 features
2022-07-26 14:45:29 +00:00
Ryan Pavlik
f718ff151f
st/oxr: Add d3d12 support to the extension support header.
2022-07-26 14:45:29 +00:00
Ryan Pavlik
5c24b8e637
xrt: Define D3D12 interface
2022-07-26 14:45:29 +00:00
Ryan Pavlik
189be3300c
st/oxr: Add helper to verify compatible usage flags.
2022-07-26 14:45:29 +00:00
Ryan Pavlik
ee26b5f575
a/d3d: Split out some d3d11 stuff from generic
2022-07-26 14:45:29 +00:00
Ryan Pavlik
79f86ff0e3
c/client: Fix swapchain leak in D3D11.
2022-07-26 14:45:29 +00:00
Ryan Pavlik
842c160c49
a/util: Guard against bad defs of "max"
2022-07-26 14:45:29 +00:00
Ryan Pavlik
8f55f87f3d
build: Let compositor util consumers get to the includes.
2022-07-26 14:45:29 +00:00
Ryan Pavlik
a8bb821cf5
ipc: Fix typo
2022-07-26 14:45:29 +00:00
Ryan Pavlik
46ad907dac
ipc: Replace size_t usages.
...
Not safe to use any type whose size differs between 32 and 64 bit builds.
2022-07-26 14:45:29 +00:00
Ryan Pavlik
413c8230ff
a/d3d: Clean up formats
2022-07-26 14:45:29 +00:00
danwillm
53bbe0a293
t/common: add opengloves fixer-upper to lighthouse builder
2022-07-25 23:57:45 +01:00
danwillm
fd61dd08b2
drivers: add all of opengloves driver
2022-07-25 23:57:45 +01:00
danwillm
0943ce10be
a/util, xrt: u_hand_tracking interface change
2022-07-25 23:57:45 +01:00
Mateo de Mayo
36ca9260cf
d/vive: Update tracking status to fix segfault
...
Co-authored-by: Moses Turner <moses@collabora.com>
2022-07-25 19:08:46 +00:00
Mateo de Mayo
6e16959098
d/vive: Add vive_source to convert v4l2 timestamps into monotonic clock
...
Use a sink in the middle of the stream to correct for v4l2 timestamps with
hardware timestamps to monotonic clock.
This sink, together with other utilities related to data streaming, lives in a
new vive_source entity, with similar functionality to wmr_source or rs_source.
The vive_source lifetime is managed by the builder xfctx, which prevents
deallocation dependencies between vive_device and the v4l2_fs to cause segfaults.
2022-07-25 19:08:46 +00:00
Mateo de Mayo
13d90bff77
d/vive: Implement 3DoF/SLAM switching button and pose offset
2022-07-25 19:08:46 +00:00
Mateo de Mayo
f0ceb40f6a
d/vive: Prepare data streaming and SLAM tracker
2022-07-25 19:08:46 +00:00
Mateo de Mayo
3cbb7f6b9f
d/vive: Pass status of visual tracking into the driver
2022-07-25 19:08:46 +00:00
Mateo de Mayo
4f81967e8a
t/common: Refactor lighthouse builder to prepare for more visual trackers
...
The idea here is to follow a similar approach to how we are doing it in the
WMR driver with the setup_visual_trackers() function.
2022-07-25 19:08:46 +00:00
Mateo de Mayo
8d929fe2fa
d/v4l2: Split some definitions into a new header
2022-07-25 19:08:46 +00:00
Mateo de Mayo
ae8305f324
u/deque: Add generic wrapper for std::deque
2022-07-25 19:08:46 +00:00
danwillm
6d6ddc0b12
inc/xrt: add XRT_HAVE_BLUETOOTH
2022-07-25 16:20:07 +01:00
danwillm
de53e431ed
d/multi: fix untested codepath
2022-07-25 15:23:49 +01:00
Nova
0954bd0dd8
d/wmr: Clean up check_and_get_interface in wmr_prober.c
2022-07-25 12:19:48 +01:00
Nova
e141aa2d55
d/wmr: Add initial support for original Odyssey HMD
2022-07-25 12:19:48 +01:00
Christoph Haag
ffb0346ba4
d/survive: Fix compilation on clang
...
Fixes error
/home/haagch-collabora/monado/src/xrt/drivers/survive/survive_driver.c:384:53: error: passing 'const union xrt_output_value *' to parameter of type 'union xrt_output_value *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
int ret = survive_controller_haptic_pulse(survive, value);
^~~~~
/home/haagch-collabora/monado/src/xrt/drivers/survive/survive_driver.c:340:89: note: passing argument to parameter 'value' here
survive_controller_haptic_pulse(struct survive_device *survive, union xrt_output_value *value)
2022-07-24 23:48:57 +02:00
Mateo de Mayo
997f4451b8
st/gui: Make debug frame sinks a bit more compact
2022-07-22 16:19:49 +00:00
Mateo de Mayo
aaf5fe1b7b
d/vive: Improve ticks-to-nanoseconds conversion
2022-07-22 16:19:49 +00:00
Mateo de Mayo
aa617a9d8b
d/vive: Group 3dof IMU fusion fields and add a mutex
2022-07-22 16:19:49 +00:00
Mateo de Mayo
c181909b0d
t/slam: Add debug sinks
2022-07-22 16:19:49 +00:00
Moses Turner
f6ef1d8f28
d/dai: Add code to control IR floodlight and exposure behind ifdef
2022-07-21 00:23:32 +01:00
Moses Turner
4d0e46a5ac
d/dai: Remove depthai::opencv dependency
2022-07-21 00:23:32 +01:00
bjorn
6275c4de10
c/main: comp_renderer uses queue from vk bundle;
...
The vk bundle currently creates a single queue, calls vkGetDeviceQueue,
and stores it in the bundle. There's only ever 1 queue from 1 queue
family right now, even when using the compute compositor.
It doesn't really make sense for the renderer to re-request this queue
instead of using the one in the bundle. If we wanted to store a local
version to it, it should probably be assigned directly (i.e. r->queue =
vk->queue) to ensure that it's the same. If we decide we want multiple
queues later, that would be a good time to add this sort of thing back.
2022-07-19 16:26:18 +00:00
Ryan Pavlik
12fab0653c
xrt: Compositor doc improvement
2022-07-15 16:30:06 -05:00
Ryan Pavlik
de4bf3be0a
st/oxr: Doc improvment
2022-07-15 15:37:08 -05:00
Ryan Pavlik
4c5327fc65
xrt: Improve code docs
2022-07-15 12:50:04 -05:00
Ryan Pavlik
8f7eed3521
state_trackers: Remove obsolete documentation stub
2022-07-15 12:49:55 -05:00
bjorn
919936991c
ipc: make all IPC input aggregates const;
2022-07-14 20:31:38 +00:00
Ryan Pavlik
b08797a4a5
st/oxr: Fix missing return, resolve warnings
2022-07-14 14:17:35 +00:00
Ryan Pavlik
7e4c7d8407
c/client: Resolve warnings
2022-07-14 14:17:35 +00:00
Ryan Pavlik
f69b6d6320
a/vk: Annotate some must-check-return functions
2022-07-14 14:17:35 +00:00
Ryan Pavlik
b0405023b7
st/oxr: Resolve warning
2022-07-14 14:17:35 +00:00
Ryan Pavlik
593a277dd7
st/steamvr_drv: Resolve warnings
2022-07-14 14:17:35 +00:00
Ryan Pavlik
107f56b6d9
a/util: Resolve warnings
2022-07-14 14:17:35 +00:00
Ryan Pavlik
88389ae0ca
a/math: Resolve warnings.
2022-07-14 14:17:35 +00:00
bjorn
f703355761
c/main: rm unused wireframe setting;
2022-07-13 10:29:27 -07:00
Moses Turner
fa2554f289
st/oxr: Don't use the debug gui by default in out-of-process
2022-07-12 16:18:17 +00:00
Mateo de Mayo
f55ac05578
t/slam: Implement feature count metric UI and recording
2022-07-12 12:47:05 +00:00
Mateo de Mayo
789111daf8
u/var: Add u_var_curves
2022-07-12 12:47:05 +00:00
Mateo de Mayo
0324fbae6c
u/var: Add u_var_curve
...
Let's you draw any arbitrary curve from a getter function.
2022-07-12 12:47:05 +00:00
Mateo de Mayo
bf9e6fa370
u/var: Add u_var_ro_ftext
2022-07-12 12:47:05 +00:00
Mateo de Mayo
db3fe110ba
u/var: Auto width and match XYZ to RGB colors for ff_vec3
2022-07-12 12:47:05 +00:00
Mateo de Mayo
c2009b6acc
t/slam: Allow timing extension to be toggled on runtime
2022-07-12 12:47:05 +00:00
Mateo de Mayo
536001e2ad
external/slam: Update header to 4.0.0
...
1. Add feature info pose extension
2. Make pose extensions toggleable on runtime
3. Add timestats helper for external system to keep track of info for pose extensions
2022-07-12 12:47:05 +00:00
Mateo de Mayo
49cd45b24e
d/euroc: Fix typo
2022-07-12 12:47:05 +00:00
bjorn
ce498e18ed
a/vk: Relax compute-only queue family check;
...
This changes the search to prefer compute-only queues, but consider
compute-enabled queues as acceptable fallbacks.
2022-07-11 17:33:59 +00:00
Xaver Hugl
94407f6679
compositor/direct_wayland: don't warn about connector removals
...
The connector being withdrawn has no effect on active leases, printing a
warning is unnecessary.
2022-07-11 16:37:34 +02:00
Mateo de Mayo
afa7f7ade9
u/vector: Add generic wrapper for std::vector
2022-07-07 15:35:04 +00:00
Ryan Pavlik
f4cc2f3bf4
cmake: Fix some details of Clang on Windows.
2022-07-05 11:17:53 -05:00
bjorn
128ea42915
c/render: inline vk_command_buffer helper;
...
It's not really abstracting much anymore, and makes it more difficult to
see what's going on.
2022-07-01 22:01:32 +00:00
bjorn
4c09d20f80
c/render: render_resources has its own command pool;
...
Currently, there is a single command pool in the vk bundle, shared by
everyone. Since command pools (and command buffers allocated from those
pools) can only be used on one thread at a time, this requires locking.
However, the main point of having these annoying command pool things in
the first place is that you can use one for each thread/lifetime/area in
the app and avoid the overhead of the locks (both computational and
cognitive).
In this change I have given the rendering bits of the compositor its own
command pool. Instead of allocating and freeing a command buffer every
frame, a single command buffer is allocated from the pool during
initialization, and the pool is reset at the beginning of each frame.
Normally, multiple pools would need to be used, but this is not
necessary in monado because frames are serialized. The `TRANSIENT` and
`ONE_TIME_SUBMIT` flags have been added, which can allow for some driver
optimizations. The render code no longer takes out the command pool
mutex. The shared command pool is still there for a few remaining
places where vulkan work needs to be done outside the compositor.
I used the command buffer vulkan helpers when possible, but I would
maybe propose the idea of removing them, since they aren't really
wrapping much at this point. The `C` macro helps a lot and it's a bit
easier to see the Vulkan details in front of you instead of needing to
switch back and forth between the helper.
Later, I think it would be cool to apply and document some constraints
like "the queue is only accessed in functions XYZ, the render_resources
command pool must only be accessed in layer_commit from 1 thread" etc.
2022-07-01 22:01:32 +00:00
bjorn
24c9dabfbb
aux/vk: Add vkResetCommandPool;
2022-07-01 22:01:32 +00:00
Ryan Pavlik
0496ba9c5c
aux/vk: Add additional include dirs conditionally.
2022-07-01 21:57:07 +00:00
bjorn
a4e5a2d027
Support cubemap swapchains;
2022-07-01 12:23:53 -07:00
Moses Turner
e552ef6bf3
t/common: Better error-checking in lighthouse builder
2022-06-30 15:20:46 +01:00
Moses Turner
567304374d
d/v4l2: Factor out format setup so we can catch errors in stream_start
2022-06-30 15:19:51 +01:00
Jakob Bornecrantz
2cbad30823
u/pacing: Introduce a app pacing factory
2022-06-27 19:09:46 +01:00
Jakob Bornecrantz
6e2644dea7
u/pacing: Tidy comments
2022-06-27 19:09:46 +01:00
Jakob Bornecrantz
0fb155b886
c/multi: Include interface header
2022-06-27 19:09:46 +01:00
Jakob Bornecrantz
23aca9c0b9
c/multi: Document multi_system_compositor
2022-06-27 18:35:40 +01:00
Jakob Bornecrantz
202f37be63
t/common: Include config build for null compositor
2022-06-27 18:35:40 +01:00
utzcoz
34c97c48ef
ipc,t/oxr_android: Add FLAG_IMMUTABLE for PendingIntent from S+
...
Signed-off-by: utzcoz <utzcoz@outlook.com>
2022-06-27 09:59:27 -05:00
Ryan Pavlik
62c87d27d6
android: Request new android.permission.HIGH_SAMPLING_RATE_SENSORS
2022-06-25 09:59:37 +08:00
Ryan Pavlik
cec89ae751
targets: Update manifests for Android 12
2022-06-25 09:59:37 +08:00
Ryan Pavlik
e1a0486f30
gradle: Update some deps slightly to cope with gradle 7
2022-06-25 09:59:37 +08:00
Ryan Pavlik
98f430f6f7
gradle: More dependency updates.
2022-06-25 09:59:37 +08:00
Moses Turner
4aaa61350b
t/common: Add lighthouse builder
2022-06-24 01:58:51 +01:00
Moses Turner
bd421e683c
d/vive: Handle not-found devices correctly
2022-06-24 01:58:51 +01:00