Christoph Haag
edd6a4cf70
xrt: Move oxr_binding_data.h to json profile generator
...
Move json profile generator to auxiliary/bindings and make generated_bindings static library.
aux/bindings: Add hardware type
aux/bindings: Add various steamvr specific things to bindings
Paths like "/input/menu/click" are used in SteamVR input profiles.
2021-01-20 18:23:09 +01:00
Christoph Haag
1b597bdd65
st/oxr: Rename sub_path variables to subaction_path
...
Subaction paths are the /user/X/Y part of the full path describing the input source/device.
"Subaction paths are a mechanism that enables applications to use the same action name and handle on multiple devices. Applications can query action state using subaction paths that differentiate data coming from each device."
Subpaths, are the input or output specific part of the full path, e.g.
"Each input source path must match the following pattern: …/input/<identifier>[_<location>][/<component>]"
2021-01-20 18:23:09 +01:00
Christoph Haag
5764365427
steamvr: Use simple vibration as fallback
2021-01-20 18:23:09 +01:00
Christoph Haag
609b834670
steamvr: Add comment about pose time offset
2021-01-20 18:23:09 +01:00
Jakob Bornecrantz
afea93f297
xrt: Remove prepare function from xrt_compositor
2021-01-20 15:04:09 +00:00
Jakob Bornecrantz
2b8c835b68
xrt: Introduce xrt_system_compositor
2021-01-20 15:04:09 +00:00
Jakob Bornecrantz
a0598c07ae
st/gui: Tidy code and clang-format
2021-01-19 18:15:02 +00:00
Jakob Bornecrantz
b48036a3ff
st/oxr: Tidy code and clang-format
2021-01-19 18:15:02 +00:00
Jakob Bornecrantz
2b996f30c4
xrt: Reflow after column change
2021-01-15 13:50:32 +00:00
Jakob Bornecrantz
271e2b0275
st/oxr: Remove dynamic prediction code
2021-01-11 23:50:01 +00:00
Jakob Bornecrantz
079f3769d4
st/oxr: Convert the given at_time when asking for relations from devices
2021-01-11 23:50:01 +00:00
Christoph Haag
729f726135
steamvr: Request hmd pose at current time instead of 1
2021-01-11 23:50:01 +00:00
Christoph Haag
4d652fef5a
st/oxr: Implement XR_KHR_vulkan_enable2
2021-01-06 13:40:59 +00:00
Christoph Haag
f8a4f35572
oxr: Add XR_KHR_vulkan_enable2 to ext generator script
2021-01-06 13:40:59 +00:00
Christoph Haag
e2c1bc1d16
xrt: Rename hand_origin to hand_pose
...
hand_origin is confusing because it implies it is the origin of the coordinate system the hand is in.
It actually is the hand pose in the "global" coordinate system.
2021-01-06 13:29:36 +00:00
Christoph Haag
3848d2be3f
st/oxr: Add env vars for global tracking origin offset
...
This commit is a band aid until a more proper room setup is implemented.
It allows moving the tracking offset for the device roles head, left and right by a fixed value.
A y tracking offset OXR_TRACKING_ORIGIN_OFFSET_Y=1.0 would tell monado that the current tracking
origin is 1 meter above the desired tracking origin, e.g. when the headset was calibrated to a
(0,0,0) position while sitting on table 1 meter above the floor.
This environment variable affects STAGE space, but not LOCAL space.
2021-01-06 13:03:47 +00:00
Jae Lee
a71de192e0
illixr: Add initial integration.
2020-12-29 23:44:57 +00:00
Jakob Bornecrantz
1302b07d68
xrt: Add sync_handle argument to layer_commit
2020-12-28 15:22:06 +00:00
Lubosz Sarnecki
12a3a24315
st/gui+steamvr_drv: Port to u_logging.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
521daac012
st/oxr: Port to u_logging.
...
Remove foo print.
Use correct ENV variable XRT_COMPOSITOR_LOG for Vulkan log.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki
a8b01a89f3
st/prober: Port to u_logging.
2020-12-28 13:04:11 +00:00
Christoph Haag
31c4c14042
steamvr: Make serial unique by appending xrt_hand
...
Monado gives both Playstation Move controllers the same xrt device name.
fixes #109
2020-12-25 22:56:54 +01:00
Lubosz Sarnecki
9351673e55
st/steamvr_drv: Silence unfixable OpenVR cpp warnings.
2020-12-16 15:10:10 +01:00
Lubosz Sarnecki
dc45a201db
c+ipc+st: Complete equirect1 boilerplate.
2020-12-14 18:59:28 +00:00
Lubosz Sarnecki
c8bdfae83e
src: Consistently append 1 to equirect1 code.
...
Rename XRT_FEATURE_OPENXR_LAYER_EQUIRECT_LEGACY to XRT_FEATURE_OPENXR_LAYER_EQUIRECT1.
Use correct define in verify_equirect1_layer function.
Rename equirect to equirect1.
meson: enable equirect1 by default.
2020-12-14 18:59:28 +00:00
Lubosz Sarnecki
f334b8b6c7
src: Consistently append 2 to equirect2 code.
...
Rename XRT_FEATURE_OPENXR_LAYER_EQUIRECT to XRT_FEATURE_OPENXR_LAYER_EQUIRECT2.
Rename equirect to equirect2.
Rename shader files.
2020-12-14 18:59:28 +00:00
Christoph Haag
b2337469a4
st/prober: Make video file input work with no camera connected
2020-12-14 18:55:15 +00:00
Christoph Haag
f0d21c1dcc
d/vf: Add video file playback driver
2020-12-07 12:30:26 +00:00
Christoph Haag
e480352cee
t/hand: Add hand tracking module
2020-12-07 12:30:26 +00:00
Christoph Haag
f7a8e8810b
xrt: Split hand tracking input name into left/right
...
oxr_hand_tracker now stores which xdev and input name it tracks.
2020-12-07 11:43:51 +00:00
Christoph Haag
f6839ee4bf
st/oxr: Add view space case to hand tracking data
2020-11-23 20:42:54 +00:00
Christoph Haag
006971ae7a
u/hand_tracking: Calculate joint velocities
...
And return them in the state tracker
2020-11-23 20:42:54 +00:00
Christoph Haag
191fe7a59f
st/oxr: Add verification of XrHandJointVelocitiesEXT
2020-11-23 20:42:54 +00:00
Christoph Haag
f5ef3985ba
xrt: Add support for locating hand joints in action spaces
2020-11-23 20:42:54 +00:00
Ryan Pavlik
4307ee8a08
st/oxr: Fix exporting of negotiate function.
2020-11-23 14:27:21 -06:00
Ryan Pavlik
de36a64f27
st/gui: Don't export symbols from cimgui
2020-11-23 14:27:21 -06:00
Jakob Bornecrantz
d1aa04e402
st/gui: Add remote hand tracking controls
2020-11-18 17:37:39 +00:00
Christoph Haag
2efba6451e
steamvr: support rotated displays and direct mode
...
Monado now calculates OpenHMD viewport dimensions and offsets correctly, we can pass those through.
The rotation of the rendered texture is performed with the distortion function.
v2: Use rotation matrix multiplication for distortion rotation
2020-11-12 16:04:00 +01:00
Christoph Haag
2082eddb65
steamvr: Fix running without controllers
2020-11-10 15:43:07 +01:00
Ryan Pavlik
9da004abb4
st/steamvr: Fix build on Windows.
2020-11-10 03:09:07 +00:00
Ryan Pavlik
ec1375342f
st/oxr: Fix outdated reference in docs.
2020-11-10 03:09:07 +00:00
Christoph Haag
cb62514fd0
steamvr: Implement basic SteamVR driver
...
v3:
targets: Add Monado-SteamVR driver target
st/ovrd: Add OpenVR driver header
build: Factor out sdl hack into lib_sdl2_hack and update steamvr build
build: Revert lib_sdl2_refactor
steamvr: Emulate Index Controller by default
steamvr: Use oxr_handle_destroy instead of exposing oxr_instance_destroy
steamvr: don't use oxr internals
steamvr: communicate 3dof tracking to steamvr
steamvr: use util functions for device assignment and tracking origin setup
steamvr: Install plugin to <prefix>/share/steamvr-monado
steamvr: Use thread for updating poses every 1ms
Makes a big difference for the Index @144Hz on the vive driver.
Still somewhat choppy on survive driver - prediction should solve it.
Main-author: Christoph Haag <christoph.haag@collabora.com>
Co-author: Jakob Bornecrantz <jakob@collabora.com>
2020-11-09 19:21:27 +00:00
Christoph Haag
9d894ab5ff
xrt: Move tracking origin setup code to u_device
2020-11-09 00:32:33 +01:00
Christoph Haag
c60b7412e5
xrt: Move device assignment code to u_device
2020-11-09 00:32:33 +01:00
Christoph Haag
5478bad3d0
st/oxr: Add OXR_FRAME_TIMING_SPEW var to print basic frame timing information
2020-11-06 00:51:24 +01:00
Christoph Haag
2e2a62ce1a
st/oxr: submit layers with os monotonic timestamp, not XrTime
...
The compositor does not know about XrTime, only os monotonic timestamps.
2020-11-05 23:11:03 +00:00
Jakob Bornecrantz
1c98297aa0
st/oxr: Use new xdev providing binding
2020-11-05 14:44:04 +00:00
Christoph Haag
d0b126c1ee
oxr: Add one missing mutex to active_wait_frames
2020-11-04 13:33:27 +00:00
Christoph Haag
7eaa7abb89
oxr: Implement additional xrWaitFrame/xrBeginFrame call order checks
...
Relevant CTS tests: https://github.com/KhronosGroup/OpenXR-CTS/pull/7
2020-11-04 00:37:21 +01:00
Christoph Haag
965fa60bff
xrt: Move synchronized state test into oxr session
...
The compositor now moves immediately to visible/focused when polling.
The state tracker will generate relevant openxr state changes once the session is synchronized.
Properly working alternative to e03ee48dce
(reverted in e7643de8db
)
2020-11-04 00:37:10 +01:00
Jakob Bornecrantz
e7643de8db
c/main: Revert "Transition to visible/focused after xrEndFrame, not xrWaitFrame"
...
This reverts commit e03ee48dce
.
2020-11-03 21:04:05 +00:00
Ryan Pavlik
5f70826ba5
xrt: Add misc missing copyright/license notices
2020-11-02 17:04:51 +00:00
Christoph Haag
e03ee48dce
comp: Transition to visible/focused after xrEndFrame, not xrWaitFrame
...
The application synchronizes its frame loop by "by calling xrWaitFrame,
xrBeginFrame and xrEndFrame in a loop."
Applications can discard frames by not calling xrEndFrame. If initial
frames are discarded, we should not consider the frame loop synchronized.
Previously a sequence like
xrBeginFrame, xrWaitFrame, xrBeginFrame, xrWaitFrame, xrPollEvent, xrBeginFrame
failed because xrPollEvent the compositor emitted transitions to visible
and focused but they were not emitted in the state tracker, because the
oxr session had not internally tranisitioned to the synchronized state.
2020-10-31 20:14:49 +01:00
Lubosz Sarnecki
e3df2f9940
st/oxr: Add GLES Android session boilerplate.
2020-10-28 12:12:31 -05:00
Jakob Bornecrantz
7bcdf0de40
st/prober: Depend on remote driver as we reference it directly
2020-10-26 20:35:18 +00:00
Jakob Bornecrantz
f868f61a17
st/oxr: Improve verification of XrGraphicsBindingEGLMNDX
2020-10-26 14:05:27 +00:00
Jakob Bornecrantz
7ba4bee439
st/oxr: Minor fixes for oxr_session_egl
2020-10-26 14:03:30 +00:00
Jakob Bornecrantz
ebfd984c12
st/oxr: Fix missing semicolons
2020-10-26 14:03:30 +00:00
Jakob Bornecrantz
f9443cf362
st/oxr: Timeout minimum duration pulses after 0.1 seconds
2020-10-26 14:03:30 +00:00
Lubosz Sarnecki
1227c77556
st/oxr: Add equirect2 verify and submit functions.
2020-10-26 01:34:10 +00:00
Jakob Bornecrantz
fd5cfbe9a7
st/oxr: Fix state changes errors
2020-10-20 19:28:57 +01:00
Jakob Bornecrantz
2528583c55
xrt: Add git tag/description
2020-10-20 17:43:11 +01:00
Jakob Bornecrantz
9440a9dd93
st/prober: Add remote loading
2020-10-15 21:07:40 +00:00
Jakob Bornecrantz
27abc58d51
st/prober: Add the concept of active config to config file
2020-10-15 21:07:40 +00:00
Jakob Bornecrantz
a122b4b0b2
st/prober: Refactor out adding functions.
2020-10-15 21:07:40 +00:00
Jakob Bornecrantz
541bdd2fce
st/gui: Add remote device control ui
2020-10-15 21:07:40 +00:00
Jakob Bornecrantz
0cf3c704b6
st/oxr: Add simple controller bindings
2020-10-15 21:07:40 +00:00
Jakob Bornecrantz
a200bd5fec
st/oxr: Add option to disable printing to stderr
2020-10-15 01:45:51 +00:00
Jakob Bornecrantz
71e05fc21d
st/oxr: Improve pose sub-path handling
...
If the client only supplies the 'any' path no sub-path would be
selected in the 'any' cause.
2020-10-15 01:45:51 +00:00
Christoph Haag
256e2c68d8
xrt: Implement & hook up hand joint tracking infrastructure
...
Include <inttypes.h> to satisfy older compilers
2020-10-12 22:13:47 +02:00
Ryan Pavlik
5522c7317a
st/oxr: Replace __typeof__ usage with portable syntax.
...
Needed for building on MSVC
2020-10-08 17:26:22 -05:00
Jakob Bornecrantz
942ba178a0
st/oxr: Add extension support for XR_KHR_composition_layer_equirect2
2020-10-05 16:45:48 +01:00
Jakob Bornecrantz
02b33c668b
st/oxr: Destroy client compositor when session is destroyed
...
Fixes #99
2020-10-04 13:04:57 +01:00
Jakob Bornecrantz
9dd8bfef28
st/oxr: Use xrt_comp_native_destroy helper
2020-10-04 13:04:55 +01:00
Jakob Bornecrantz
2aaa3acfdf
st/oxr: Do not destroy native compositor in sub-classed session creation functions
...
So it's owned by the instance.
2020-09-24 19:07:01 +01:00
Jakob Bornecrantz
6961bf885f
st/oxr: Don't create a new native compositor in android session
...
Spotted by Jarvis.
2020-09-24 19:06:51 +01:00
Christoph Haag
3d0235a450
st/prober: Fix build with v4l2 disabled
2020-09-21 20:21:56 +02:00
Jakob Bornecrantz
9ebf1c4d4d
st/oxr: Fix warning
2020-09-18 20:51:31 +01:00
Ryan Pavlik
6af00ed8db
u/file: Stub out Linux path manip code.
2020-09-18 18:27:46 +01:00
Ryan Pavlik
7e600dd244
build: Adjust/fix missing dependencies
2020-09-18 18:25:27 +01:00
Ryan Pavlik
6779b1c0f8
st/p: Fix include of libusb
2020-09-18 18:25:27 +01:00
Ryan Pavlik
b71f13c582
st/p: Tighten preprocessor conditionals for non-Linux
2020-09-18 18:25:15 +01:00
Ryan Pavlik
dae3ab3a4f
xrt: Be sure to include config headers
2020-09-18 13:56:24 +01:00
Ryan Pavlik
a0c8839a71
xrt: Remove un-needed includes of unistd
2020-09-18 13:56:16 +01:00
Jakob Bornecrantz
c411caf0cd
st/oxr: Fix return length from oxr_action_get_input_source_localized_name
2020-09-17 23:04:37 +01:00
Jakob Bornecrantz
4a62e88f09
st/oxr: Return identifier name for bindings
2020-09-17 23:04:37 +01:00
Jakob Bornecrantz
b6786f5bfc
st/oxr: Return controller name for bindings
2020-09-17 15:28:59 +01:00
Jakob Bornecrantz
33713c790c
st/oxr: Correctly return sub path for input source
2020-09-17 00:26:12 +01:00
Jakob Bornecrantz
0fc4cdcd0f
st/gui: Get the number of samples in a fifo for graph
2020-09-16 17:27:16 +01:00
Bart Ribbers
71f912ffc5
Fix compilation on Musl
...
Without this fix, compilation failed on Musl due to ssize_t being an
unknown type
In file included from ../src/xrt/state_trackers/prober/p_prober.c:15:
../src/xrt/state_trackers/prober/p_prober.h:67:2: error: unknown type name 'ssize_t'
67 | ssize_t interface;
| ^~~~~~~
2020-09-16 10:44:06 +02:00
Jakob Bornecrantz
f7ff6c08ed
st/gui: Plot vec3_f32 filter fifos
2020-09-15 16:41:07 +00:00
Jakob Bornecrantz
468f72d62f
st/gui: Include ImPlot and Monado-ImGui in gui_imgui header
2020-09-15 16:41:07 +00:00
Jakob Bornecrantz
f843c59c37
imgui: Add ImPlot
2020-09-15 16:41:07 +00:00
Jakob Bornecrantz
36ea1825bf
imgui: Update to 1.78
2020-09-15 16:41:07 +00:00
Jakob Bornecrantz
3ffa40c628
u/var: Refactor how variables info is passed
2020-09-15 16:41:07 +00:00
Christoph Haag
ddf3eb5789
st/oxr: Use space graph in global-to-local space transform
...
This takes care of transforming the velocities.
2020-09-11 19:06:16 +02:00
Christoph Haag
f41edee4b4
st/oxr: Use space graph resolve result relation flags instead of pure pose relation
2020-09-11 18:52:01 +02:00
Christoph Haag
19acc7be25
st/oxr: Pass actual ViewStateFlags to application with xrLocateViews
...
These flags are originally set by the driver, then processed by the space graph resolver.
2020-09-11 18:52:01 +02:00
Christoph Haag
2b90b4ea89
st/oxr: Destroy compositor on instance destroy
...
Fixes direct mode on subsequent instance creation in the same process
when no session was created.
2020-09-11 18:52:01 +02:00
Christoph Haag
844daee844
st/oxr: Check xrLocateViews quaternion only if orientation valid
2020-09-11 18:52:01 +02:00