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