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