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
Benjamin Saunders
15a89005ca
Fix trailing space in xrGetVulkanDeviceExtensionsKHR
...
Also tweak the instance extensions definition for consistency.
2020-11-07 12:50:25 -08:00
Christoph Haag
29820345c7
d/survive: Fix bindings declaration after rebase of MR 587
2020-11-06 16:36:09 +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
2a00c9f09e
comp: Add basic frame timing information to trace log
2020-11-06 00:50:24 +01:00
Christoph Haag
803e9531ec
aux: Use time since time_state creation for time_state timestamps
...
Easy to read timestamps and somewhat meaningful.
2020-11-05 23:11:03 +00: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
Ryan Pavlik
3c13dbce43
t/oxr_android: Work on aboutLibraries usage.
2020-11-05 17:04:58 -06:00
Ryan Pavlik
25967f906b
t/oxr_android: Generate license resource at build time.
2020-11-05 17:04:53 -06:00
Ryan Pavlik
e1e7b92372
ipc/android: Add additional service options
2020-11-05 17:02:21 -06:00
Ryan Pavlik
cb09e68f0c
gradle: Allow python location to be explicitly specified in local.properties
2020-11-05 16:09:27 -06:00
Ryan Pavlik
ed519b1601
t/oxr_android: Rename activity and add version field
2020-11-05 16:09:26 -06:00
Jakob Bornecrantz
1c98297aa0
st/oxr: Use new xdev providing binding
2020-11-05 14:44:04 +00:00
Jakob Bornecrantz
b5e847c814
ipc: Add support for device provided bindings
2020-11-05 14:44:04 +00:00
Christoph Haag
ffa7cc84c8
d/vive: Add device bindings
2020-11-05 14:44:04 +00:00
Christoph Haag
4b261219a2
d/survive: Add device bindings
2020-11-05 14:41:55 +00:00
Jakob Bornecrantz
12df35232a
d/psmv: Add device bindings
2020-11-05 14:41:55 +00:00
Jakob Bornecrantz
24a3886e85
d/daydream: Add device bindings
2020-11-05 14:41:55 +00:00
Jakob Bornecrantz
5997708634
d/arduino: Add device bindings
2020-11-05 14:41:55 +00:00
Jakob Bornecrantz
7c807a8605
xrt: Add device driver provided bindings
2020-11-05 14:41:55 +00:00
Christoph Haag
d0b126c1ee
oxr: Add one missing mutex to active_wait_frames
2020-11-04 13:33:27 +00:00
Jakob Bornecrantz
2a9a0100bc
d/psvr: Tidy code
2020-11-04 13:26:47 +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
Christoph Haag
4709744d0a
ipc: log ipc calls and dispatch with IPC_PRINT_SPEW
2020-11-03 22:32:58 +01:00
Christoph Haag
233f3cb234
ipc: hook up IPC_PRINT_SPEW and IPC_PRINT_DEBUG variables
...
for both server and client
2020-11-03 22:32:58 +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
Ryan Pavlik
0684daae4f
clang-format configs: Fix SPDX tags
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
Ryan Pavlik
240b8f3047
t/oxr_android: Include library attribution/notices in "about" activity.
2020-10-30 18:20:36 -05:00
Ryan Pavlik
f70b1abd88
d/android: Use not-deprecated API when possible.
2020-10-30 18:20:36 -05:00
Lubosz Sarnecki
ae1d4e9541
d/android: Enable cardboard distortion.
2020-10-30 18:20:36 -05:00
Lubosz Sarnecki
f4113ef15b
d/android: Add Android sensors driver.
2020-10-30 18:20:35 -05:00
Ryan Pavlik
ad42bbff9e
t/oxr_android: Move some distribution-related strings to build system
2020-10-30 18:20:35 -05:00
Ryan Pavlik
55eab2d79b
t/oxr_android: Set package version from Git
2020-10-30 18:20:35 -05:00
Ryan Pavlik
36a9273db2
t/oxr_android: Match theme to temporary logo
2020-10-30 18:20:35 -05:00
Ryan Pavlik
f46b801ad4
t/oxr_android: Improve VR Mode status messages
2020-10-30 18:20:35 -05:00
Ryan Pavlik
36fa605ab4
t/oxr_android: Add fragment to the main activity
2020-10-30 18:20:35 -05:00
Ryan Pavlik
03a129a4ea
t/oxr_android: Add VrModeStatus fragment.
2020-10-30 18:20:35 -05:00
Ryan Pavlik
ce3750bfe1
a/android: Store a native pointer in the MonadoView.
2020-10-30 18:20:35 -05:00
Ryan Pavlik
3bc84cca9e
a/android: Migrate to using the MonadoView generated wrapper.
2020-10-30 18:20:35 -05:00
Ryan Pavlik
b6a12f8522
a/android: Add some partially-generated wrappers for our own Java code.
2020-10-30 18:20:35 -05:00
Ryan Pavlik
fc78b5de86
a/android: Use android_custom_surface constructor/destructor
2020-10-30 18:20:34 -05:00
Ryan Pavlik
66d6281a7f
a/android: Monitor whether MonadoView is still being used by native code.
2020-10-30 18:20:34 -05:00
Ryan Pavlik
6f989f5451
t/oxr_android: Clean up main activity.
2020-10-30 18:20:34 -05:00
Jakob Bornecrantz
75ff836e3b
ipc: Add ipc_android doc group
2020-10-29 17:02:06 +00:00
Jakob Bornecrantz
585bb6fe7a
ipc: Add ipc_shared doc group
2020-10-29 17:02:06 +00:00
Jakob Bornecrantz
3008e5482d
ipc: Refactor folders
2020-10-29 17:02:06 +00:00
Jakob Bornecrantz
5ba3486628
t/[gui|oxr]: Directly reference SDL2 in CMake
...
This fixes the build when building with clang and CMake.
2020-10-29 16:33:15 +00:00
Jakob Bornecrantz
09ba7fc1e3
d/remote: Fix warning when building with clang
2020-10-29 16:17:20 +00:00
Ryan Pavlik
26cd22b232
a/android: Move class name to a constant.
2020-10-28 12:12:31 -05:00
Ryan Pavlik
da3959e642
a/android: C++ headers use .hpp as the extension
2020-10-28 12:12:31 -05:00
Ryan Pavlik
8301c9d1b4
a/android: Fix some file comments.
2020-10-28 12:12:31 -05:00
Ryan Pavlik
941c6286e5
t/oxr_android: Add version annotation to the VR listener
2020-10-28 12:12:31 -05:00
Ryan Pavlik
e724a72fc1
st/oxr_android: Adjust name string
2020-10-28 12:12:31 -05:00
Ryan Pavlik
e4e3ee888a
st/oxr_android: Clean up manifest
2020-10-28 12:12:31 -05:00
Ryan Pavlik
1acadb8a18
a/android: Make MonadoView fullscreen.
2020-10-28 12:12:31 -05:00
Ryan Pavlik
307b3f28fa
t/oxr_android: Clean up manifest
2020-10-28 12:12:31 -05:00
Ryan Pavlik
bcb6e85f9d
t/oxr_android: Rename the VrListener class/service.
2020-10-28 12:12:31 -05:00
Lubosz Sarnecki
a8c7ac2074
c/eglimage_swapchain: Actually return created swapchain.
2020-10-28 12:12:31 -05:00
Lubosz Sarnecki
af4c6a8ba3
c/gl_client: Check if swapchain is not NULL.
2020-10-28 12:12:31 -05:00
Lubosz Sarnecki
bd107095fd
c/gl_client: Port to u_logging.
2020-10-28 12:12:31 -05:00
Lubosz Sarnecki
e3df2f9940
st/oxr: Add GLES Android session boilerplate.
2020-10-28 12:12:31 -05:00
Lubosz Sarnecki
d61faff421
aux/android/ahardwarebuffer_allocator: Use Vulkan enums in format switch.
2020-10-28 12:12:31 -05:00
Lubosz Sarnecki
633b7839c2
aux/vk+comp/sc: Initialize extra structs for hardware buffer extension.
...
Fix sRGB format for Android hardware buffers.
2020-10-28 12:12:31 -05:00
Lubosz Sarnecki
3cc8793d7d
aux+comp: Add Android hardware buffer device extension.
2020-10-28 12:12:31 -05:00
Lubosz Sarnecki
2cc8252c05
aux/vk: Add vkGetAndroidHardwareBufferPropertiesANDROID.
2020-10-28 12:12:31 -05:00
Lubosz Sarnecki
2df2daa00c
aux/android/ahardwarebuffer_allocator: Add function to allocate a single buffer.
2020-10-28 12:12:31 -05:00
Ryan Pavlik
436886852d
a/android: Improve monadoview, including fixing deleted ref problem.
2020-10-28 12:12:31 -05:00
Ryan Pavlik
a0bbca572d
comp: Basic Android compositor window.
...
Also makes the service feature not depend on other options:
it can be used without those other parts.
comp/window_android: Remove unused EGL code for now, as it is crashing.
comp/window_android: Use MonadoView async method to create surface.
comp/window_android: Use custom surface as intended
Co-authored-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
2020-10-28 09:41:30 -05:00
Ryan Pavlik
dfd771f768
aux/android: Enhance custom surface
...
Includes fixes to my mistakes by Lubosz.
Co-authored-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
2020-10-28 09:41:03 -05:00
Lubosz Sarnecki
e78ad12634
aux/android/custom_surface: Make JNI happy.
...
Keep android_load_class methods in C++, since
casting the class handle to void results in:
```
JNI DETECTED ERROR IN APPLICATION: use of deleted global reference.
```
Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>
2020-10-28 09:33:47 -05:00
Lubosz Sarnecki
2a8db3d780
aux/android/load_class: Use pkgClassLoader.loadClass to load MonadoView class.
2020-10-28 09:33:46 -05:00
Lubosz Sarnecki
dbe0338956
android/MonadoView: Register surface callback and fix imports.
...
Run UI things on UI thread.
2020-10-28 09:33:46 -05:00
Lubosz Sarnecki
c64d17fa88
comp/main: Define Android extensions.
2020-10-28 09:33:46 -05:00
Lubosz Sarnecki
79fd76f68d
comp/main: Don't check for VK_KHR_display on Android.
2020-10-28 09:33:46 -05:00
Lubosz Sarnecki
7d02a93ca5
android/manifest: Extract libs.
2020-10-28 09:33:46 -05:00
Ryan Pavlik
43d724b6bf
aux/vk: Fix a place where we were missing an android ifdef
2020-10-28 09:33:46 -05:00
Ryan Pavlik
d4b19f3d47
aux/android: Add custom surface code.
2020-10-28 09:33:46 -05:00
Ryan Pavlik
9b67c0a09f
aux/android: Add code to load Java from a package
2020-10-28 09:33:46 -05:00
Ryan Pavlik
2cafdfa5cc
t/oxr_android: Add Android-specific subdirectory
2020-10-28 09:33:46 -05:00
Ryan Pavlik
d6564e3798
ipc_android: Add Android-specific Java/AIDL code
2020-10-28 09:33:46 -05:00
Ryan Pavlik
d0187cee9a
aux/android: Add Java code
2020-10-28 09:33:26 -05:00
Ryan Pavlik
0f43bbe924
inc/xrt: Add Android config header to store package name.
2020-10-28 09:32:49 -05:00
Ryan Pavlik
06f75e03b4
a/android: Fix typo in comment
2020-10-28 09:32:49 -05:00
Ryan Pavlik
0ea7cf8009
targets: Add service-lib stub for Android
2020-10-28 09:32:49 -05:00
Ryan Pavlik
59d2285c8e
aux/util: Port logging for Android.
...
Now if u_logging is used, it goes to logcat.
2020-10-28 09:32:49 -05:00
Jakob Bornecrantz
463330d5d5
u/distortion: Set blend mode incase it is zero
2020-10-27 21:34:29 +00:00
Jakob Bornecrantz
ecbde55752
m/space: Normalize orientation when returning result
2020-10-27 16:20:12 +00:00
Jakob Bornecrantz
09566cf5fd
c/main: Fix projection layer flags not getting set
2020-10-27 16:05:13 +00:00
Jakob Bornecrantz
bd6ea43de5
m/headers: Fix doxygen warnings
2020-10-26 22:55:22 +00:00
Jakob Bornecrantz
8730ff479a
u/hand_tracking: Tidy header
2020-10-26 22:50:54 +00:00
Jakob Bornecrantz
d72776b82c
d/psvr: Switch to logging API
2020-10-26 22:41:49 +00:00
Jakob Bornecrantz
6fd1e7b36c
d/dummy: Add logging to variable tracking
2020-10-26 22:41:27 +00:00
Jakob Bornecrantz
02a3b47f7c
d/dummy: Switch to logging API
2020-10-26 22:17:15 +00:00
Jakob Bornecrantz
3611193feb
d/dummy: Tidy file
2020-10-26 22:14:05 +00:00
Jakob Bornecrantz
cf8ca3756e
c/main: Fix leaks of samplers and tidy code
2020-10-26 22:07:12 +00:00
Jakob Bornecrantz
75153a7066
u/distortion: Add simple cardboard distortion code
2020-10-26 21:53:55 +00:00
Jakob Bornecrantz
ed2040a571
u/mesh: Tidy header
2020-10-26 20:36:30 +00: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
663dfe8990
meson: Add equirect2 to build.
2020-10-26 01:34:10 +00:00
Lubosz Sarnecki
1227c77556
st/oxr: Add equirect2 verify and submit functions.
2020-10-26 01:34:10 +00:00
Lubosz Sarnecki
3195ba8351
c/main: Implement XR_KHR_composition_layer_equirect2.
2020-10-26 01:34:10 +00:00
Lubosz Sarnecki
9738b4fe93
c/shaders: Add equirect shader.
2020-10-26 01:34:10 +00:00
Lubosz Sarnecki
5777d829c6
c/comp: Init repeat sampler for swapchain images.
2020-10-26 01:34:10 +00:00
Lubosz Sarnecki
7035490ed7
aux/math: Implement math_matrix_4x4_inverse_view_projection.
2020-10-26 01:34:10 +00:00
Christoph Haag
74f7d03830
xrt: Add printing list of built in drivers to monado_cli probe
2020-10-25 22:59:06 +01:00
Christoph Haag
f910367014
d/oh: Add startup delay for Rift S and rotate left
2020-10-21 01:26:53 +02: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
3483a7286d
d/remote: Add remote driver
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
f3394320b1
xrt: Add simple controller input profile
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
Jakob Bornecrantz
54739aff8d
c/render: Refactor out distortion rendering
2020-10-13 19:51:13 +01:00
Jakob Bornecrantz
c5741af98a
c/main: Tidy names
2020-10-13 19:17:50 +01:00
Jakob Bornecrantz
4ffc0b4144
c/main: Remove viewport_id in mesh shader
2020-10-13 19:17:50 +01:00
Jakob Bornecrantz
95bdcc0bd3
c/main: Round viewport to cover the same as scissors
2020-10-13 19:17:50 +01:00
Jakob Bornecrantz
32fd9398fe
c/main: Refactor shader loading to own file
2020-10-13 19:17:50 +01:00
Jakob Bornecrantz
438a8e71f9
aux/vk: Add vkFreeDescriptorSets
2020-10-13 18:59:28 +01:00
Christoph Haag
c0a5b3b76c
d/survive: Implement haptic feedback
2020-10-13 19:39:28 +02:00
Christoph Haag
0dcde4a597
d/vive: Actually Use defined values for default haptic frequency and min haptic duration
2020-10-13 19:39:28 +02:00
Christoph Haag
270a4143c7
d/vive: Use defines for minimum haptic frequency and unspecified haptic frequency
2020-10-13 19:39:25 +02:00
Christoph Haag
1f021a6eda
xrt: Add defines for minimum haptic frequency and unspecified haptic frequency
2020-10-13 19:27:53 +02:00
Christoph Haag
d959bea54a
d/vive: curl thumb when touching a button
2020-10-12 22:55:33 +02:00
Christoph Haag
05f65e0028
d/survive: curl thumb when touching a button
2020-10-12 22:55:33 +02:00
Christoph Haag
f8088c1fa4
d/survive: Add fingertracking and refactor
...
Get controller config at startup & determine variant.
2020-10-12 22:55:33 +02:00
Christoph Haag
5164488225
d/vive_controller: Add finger tracking
2020-10-12 22:55:33 +02:00
Christoph Haag
ca5cbaaa6f
aux: Add hand_tracking util
2020-10-12 22:55:33 +02:00
Christoph Haag
6e5206f232
ipc: Add missing position_tracking_supported passthrough
2020-10-12 22:13:48 +02: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
Christoph Haag
2a07c1034e
d/ns: Don't create rs tracker twice on v1
2020-10-12 16:06:25 +02:00
Ryan Pavlik
9d8af39b4f
t/cli: Fix build on Windows.
2020-10-08 17:26:23 -05:00
Ryan Pavlik
835beedcca
u_handles: Add Win32 handle utilities
2020-10-08 17:26:22 -05: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
Ryan Pavlik
3faa32753d
inc/xrt: have the vulkan includes include windows.h neatly.
...
The Vulkan header itself already does it, we just want to do it first
with the right defines.
2020-10-08 17:26:22 -05:00
Ryan Pavlik
39ede92287
build: Link aux_util against threads explicitly
2020-10-08 17:26:22 -05:00
Ryan Pavlik
8b416da12b
xrt: Add Win32 Vulkan platform define when needed
2020-10-08 17:26:22 -05:00
Ryan Pavlik
938e8cb393
inc/xrt: Windows uses Win32 HANDLEs for things.
2020-10-08 17:26:22 -05:00
Ryan Pavlik
60b4fc2ba1
inc/xrt: Add a header for minimally including Windows.h
2020-10-08 17:26:22 -05:00
Ryan Pavlik
3f83b1da92
u_json: Properly silence secure CRT warnings.
2020-10-08 17:26:22 -05:00
Ryan Pavlik
48eb00f1c8
u_bitwise: Switch from static const int to defines.
...
Sadly MSVC didn't believe those were constant,
and this is a C file so no constexpr.
2020-10-08 17:26:22 -05:00
Jakob Bornecrantz
1750bb672f
c/main: Remove none shaders
2020-10-08 15:02:52 +01:00
Jakob Bornecrantz
39ec39dbee
c/main: Add more logging levels
2020-10-08 14:57:59 +01:00
Jakob Bornecrantz
813487c2f5
ipc: Use new none distortion code
2020-10-07 23:45:46 +01:00
Jakob Bornecrantz
96046d1315
d/ohmd: Use new none distortion code
2020-10-07 23:45:45 +01:00
Jakob Bornecrantz
7baf90d3d8
d/hdk: Use new none distortion code
2020-10-07 23:45:43 +01:00
Jakob Bornecrantz
cd2ea960b9
d/dummy: Use new none distortion code
2020-10-07 23:45:41 +01:00
Jakob Bornecrantz
51c8575323
u/mesh: Add back none distortion generation
2020-10-07 23:45:39 +01:00
Jakob Bornecrantz
b5e5322f49
c/main: Use log levels
2020-10-06 20:37:01 +01:00
Lubosz Sarnecki
bbeab1da3f
c/main: Use u_logging.
...
Remove comp_compositor_print.
2020-10-06 20:04:52 +01:00
Christoph Haag
dc29c3f97e
build/meson: Build daydream and arduino driver when dbus is enabled
2020-10-05 16:05:02 +00:00
Christoph Haag
5bea856f20
build/meson: Add XRT_HAVE_DBUS when dbus is found
2020-10-05 16:05:02 +00:00
Jakob Bornecrantz
92caeae39c
xrt: Define XRT_FEATURE_COMPOSITOR_MAIN and XRT_FEATURE_OPENXR
2020-10-05 16:46:06 +01: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
c5b696cfd7
t/cli: Add lighthouse command
2020-10-05 16:22:02 +01:00
Jakob Bornecrantz
0804dc20d1
os/ble: Use logging
2020-10-05 16:22:02 +01:00
Jakob Bornecrantz
40c764a290
os/ble: Large refactor of code
2020-10-05 14:19:52 +01:00
Jakob Bornecrantz
5af976a510
os/ble: Add os_ble_broadcast_write_value function
2020-10-05 14:19:52 +01:00
Jakob Bornecrantz
5b4d45ffcc
os/ble: Correct documentation on os_ble_notify_open function
2020-10-05 14:19:52 +01:00
Jakob Bornecrantz
33879da21a
xrt: Add XRT_HAVE_DBUS
2020-10-05 14:19:52 +01:00
Christoph Haag
a0dd182dae
build/ctl: Explicitly depend on generated ipc client header
...
Including a header in the build target is the documented solution for depending on
the generation of files via custom targets.
Fixes build on alpine linux.
2020-10-04 23:44:16 +02: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
3729f2e8c9
ipc: Free client side compositor
2020-10-04 13:04:53 +01:00
Jakob Bornecrantz
309037a445
c/client: The client compositors doesn't own the native compositor
2020-10-04 13:04:52 +01:00
Jakob Bornecrantz
6ec6c2eac9
d/dummy: Make view rotate slightly with time
2020-10-01 23:49:12 +01:00
Jakob Bornecrantz
9f39410b64
d/dummy: Make the view move slightly with time
2020-10-01 15:50:51 +01:00
Jakob Bornecrantz
9a675cc7f3
xrt: Rename xrt_uv_triplet
2020-09-30 15:35:57 +01:00
Christoph Haag
bb56e5f3c5
d/openhmd: Make struct oh_device private and refactor
2020-09-30 02:08:03 +02:00
Christoph Haag
f6c3998d29
xrt: Use struct vive_values for u_compute_distortion_vive
2020-09-30 02:05:05 +02:00
Christoph Haag
29188d681c
xrt: Remove all but mesh distortion values from xrt_hmd_parts::distortion
...
Move vive values to struct u_vive_values in u_distortion_mesh.
Move openhmd values to private struct inside ohmd driver.
2020-09-30 02:05:05 +02:00
Christoph Haag
c5209c5ed4
comp: Move mesh generation to comp_renderer init
...
Use none shader when XRT_DISTORTION_MODEL_NONE is set.
Fall back to none distortion if mesh generation fails or unsupported
distortion model is set.
comp_render init updates comp_settings::distortion_model.
u_compute_distortion_mesh: Don't touch xdev::distortion::preferred,
just add XRT_DISTORTION_MODEL_MESHUV mesh to xdev::distortion::models.
2020-09-30 02:05:05 +02:00
Christoph Haag
f82f247c19
comp: Rename distortion.vert to none.vert
...
After removing the other shaders, it is only used for no distortion anymore.
2020-09-30 02:05:05 +02:00
Christoph Haag
bc7a948975
comp: More replacing of binding indices with variables
2020-09-30 02:05:05 +02:00
Christoph Haag
2e7451ca5e
comp: Support only mesh and no istortion, remove pano and vive shaders
...
Also changes hardcoded binding indices into variables to make following the code easier
e.g. when adding new UBOs.
2020-09-30 02:05:04 +02:00
Christoph Haag
80f6fc9039
comp: Replace hardcoded binding indices with variables
...
Makes it easier to follow when changing code.
2020-09-30 01:30:30 +02:00
Christoph Haag
fd883e26bf
d/openhmd: Fix distortion_k value ordering
...
Their order is opposite to the psvr panotools values.
2020-09-30 01:30:30 +02:00
Christoph Haag
fb71c71a8c
xrt: Replace mesh generator with xdev->compute_distortion()
...
Each HMD driver now has to implement compute_distortion() which will be called
by the compositor implementation to generate a mesh (usually).
u_distortion_mesh contains implementations for the defaults (panotools, OpenHMD, vive).
Also adds compute_distortion function for Vive distortion
There are differences between OpenHMD and Panotools values, main differences for now:
* psvr has 5 pano coefficients, ohmd has 3
* psvr uses viewport size and lens center in pixels for distortion calculation, ohmd in meter
* psvr uses different distortion scaling than ohmd
2020-09-28 17:04:15 +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
ee8fdb45fd
d/ns: remove useless assignments
2020-09-22 02:19:13 +02:00
Christoph Haag
e5683d4fde
comp: remove useless pano ubo from mesh distortion
...
It was left in as a debug measure, but is more confusing than useful,
especially with northstar directly generating a mesh and vive with its own shader.
2020-09-22 02:19:13 +02:00
Christoph Haag
3c0ae7e61e
d/dummy: reduce dummy HMD resolution to 720p
2020-09-21 20:37:28 +02:00
Christoph Haag
31539c800e
d/ohmd: Add (OpenHMD) suffix to openhmd driver string
2020-09-21 20:37:28 +02: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
6ad46cb1b2
build: Be able to build against pthreads4w
2020-09-18 18:25:27 +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
Milan Jaros
3f4bcb412e
u/threading: Cast result of realloc.
2020-09-18 17:15:33 +01:00
Ryan Pavlik
695a2c1151
u/debug: Silence warnings on MSVC
2020-09-18 17:15:33 +01:00
Ryan Pavlik
f7a132e635
u/time: Fix overflow.
2020-09-18 17:15:33 +01:00
Ryan Pavlik
1dffe58952
u/json: Silence warnings on MSVC
2020-09-18 17:15:33 +01:00
Milan Jaros
7685f49adb
os/threading: Fix includes on Windows
2020-09-18 17:15:33 +01:00
Milan Jaros
367c01f354
os/time: Provide time functions for Windows
2020-09-18 17:15:33 +01:00
Ryan Pavlik
7c47293c52
os/time: Implement os_nanosleep for Windows
2020-09-18 13:56:34 +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
Ryan Pavlik
54f6aa2166
inc/xrt: Some MSVC and Windows support
2020-09-18 13:56:11 +01:00
Ryan Pavlik
3ff56f4a3c
inc/xrt: Add Windows implementations of atomic intrinsics.
2020-09-18 13:56:05 +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
Jakob Bornecrantz
6a94b1cf80
m/ff: Improve interface
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
b624d290d0
m/3dof: Add filter fifos to variable tracking code
2020-09-15 16:41:07 +00: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
Jakob Bornecrantz
d5c62f8ccb
u/var: Add tracking for filter fifos
2020-09-15 16:41:07 +00:00
Christoph Haag
17ff908041
d/ns: Set XRT_SPACE_RELATION_ORIENTATION_TRACKED_BIT
2020-09-14 16:57:10 +02:00
Christoph Haag
37519dc54d
d/dummy: Set XRT_SPACE_RELATION_ORIENTATION_TRACKED_BIT
2020-09-14 16:56:54 +02: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
150b7649f3
d/survive: Don't fix up invalid pose
2020-09-11 18:52:01 +02:00
Christoph Haag
a664bb22bf
d/survive: Update to recent libsurvive git
...
Rewrite input event handling and add new events from libsurvive.
2020-09-11 18:52:01 +02:00
Christoph Haag
c3fbe6eaf8
d/survive: remove unused structs
2020-09-11 18:52:01 +02:00
Christoph Haag
357b47522c
d/survive: set relation flags properly
2020-09-11 18:52:01 +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
eb8a304178
ipc: print send and receive errors with ERROR, not DEBUG
...
These errors lead to unexpected output and should be investigated.
2020-09-11 18:52:01 +02:00
Christoph Haag
a884e24b9a
aux: Support waiting more than 0.999... seconds in os_nanosleep
2020-09-11 18:52:01 +02:00
Christoph Haag
6133d4cf99
d/survive: Remove out_relation_timestamp_ns
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
Christoph Haag
1429d678a0
aux/space: Propagate orientation valid bit through space graph resolve
...
Invalid poses may be handled more gracefully in the future. For now poses
are not transformed if orientation is not valid, because transforming with
an invalid quaternion will have bad results in any way.
v2: Upgrade poses with valid position but invalid orientation to valid poses
2020-09-11 18:51:58 +02:00
Christoph Haag
6cce04f8d3
aux/space: fix typo: propagate tracked orientation bit properly
2020-09-09 14:51:06 +02:00
Jakob Bornecrantz
8e24dda794
xrt: Remove out_timestamp argument to xrt_device::get_tracked_pose
2020-09-07 23:37:09 +01:00
Jakob Bornecrantz
eaffa05a37
xrt: Remove acceleration components from xrt_space_relation
2020-09-07 23:36:34 +01:00
Jakob Bornecrantz
5a4d45bbaa
m/base: Remove old space relation functions
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
855b2005f3
c/main: Use new xrt_space_graph
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
d60cce8977
st/oxr: Use new xrt_space_graph
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
74690a2278
d/psmv: Rotate angular velocity to be in base space
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
f9905a4007
d/psmv: Use space graphs for poses
2020-09-07 23:33:28 +01:00
Jakob Bornecrantz
fe94dec5ea
m/space: Space graph functions
2020-09-07 23:33:25 +01:00
Jakob Bornecrantz
ca91695722
m/quat: Add math_quat_rotate_derivative
2020-09-07 16:14:46 +01:00
Jakob Bornecrantz
4d85db6051
xrt: Add xrt_space_graph
2020-09-07 16:14:46 +01:00
Moses Turner
0ff1865c2e
d/ns: Add version 2 config support
2020-09-07 11:35:24 +01:00
Jakob Bornecrantz
ea6374d296
d/dummy: Minor comments
2020-09-06 22:53:10 +01:00
Jakob Bornecrantz
09bcf6c9d2
t/ctl: Fix typo
2020-09-06 21:58:34 +01:00
Jakob Bornecrantz
4f94ee0c91
u/render_timing: Improve debug printing
2020-09-04 13:48:40 +01:00
Christoph Haag
4a1d8b3a41
xrt: Fix vive input defines
2020-09-04 01:46:47 +02:00
Jakob Bornecrantz
787c104339
d/psmv: Use last package timestamp for input changes
2020-09-02 22:08:01 +01:00
Jakob Bornecrantz
328f5d5315
m/base: Add math_quat_invert
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
511a51b283
m/3dof: Rename to timestamp
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
8cdfe0e694
m/fifo: Add f64 filter fifo
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
991c9029c7
m/3dof: Tweak values
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
736fa81349
m/3dof: Add vars tracking helper function
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
33f05c7bea
m/vec3: Add C++ operators
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
d396117a39
m/vec2: Add C++ operators
2020-09-02 22:07:35 +01:00
Jakob Bornecrantz
2d8a39b731
d/v4l2: Set correct name on variable tracker
2020-09-02 18:36:47 +01:00
Jakob Bornecrantz
ffa888a575
d/v4l2: Use different tweaks depending on capture type
2020-09-02 11:57:47 +01:00
Jakob Bornecrantz
6846ab7637
xrt: Add stream capture type
2020-09-02 11:52:59 +01:00
Christoph Haag
330279d330
d/psvr: Set positional tracking bit when tracker is present
2020-09-01 17:03:55 +02:00
Christoph Haag
cde94cc8a2
build: Remove libv4l2 dependency from meson
...
We use the linux/v4l2-common.h header to access v4l devices, not libv4l from v4l-utils.
2020-08-28 12:10:53 +00:00
Pete Black
3f197eeffd
t/psmv: Use the same filtering as in PSVR tracker
2020-08-28 11:38:03 +00:00
Pete Black
76a439bd59
t/psvr: Add a functional PSVR tracker
2020-08-28 11:38:03 +00:00
Pete Black
3fdce20afd
d/psvr: Only power on front LEDs
2020-08-28 11:38:03 +00:00
Jakob Bornecrantz
b3c5bf1517
math: Add a permutation library
2020-08-28 11:38:03 +00:00
Jakob Bornecrantz
d3b224275c
u/logging: Fix return of debug_get_log_option_SUFFIX
2020-08-28 11:38:03 +00:00
Pete Black
751fdb2884
u/render_timing: Paranoia
2020-08-28 11:38:03 +00:00
Pete Black
20ee4114b0
xrt: Fix typo in comment
2020-08-28 11:38:03 +00:00
Jakob Bornecrantz
233ca93569
t/ctl: Print devices as well
2020-08-28 11:33:38 +00:00
Jakob Bornecrantz
5c08dc1617
t/ctl: Refactor connection opening
2020-08-28 11:33:38 +00:00
Jakob Bornecrantz
691881f507
t/ctl: Implement device IO toggling
2020-08-28 11:33:38 +00:00
Jakob Bornecrantz
7b9d7091bd
t/ctl: Refactor code to make more tidy
2020-08-28 11:33:38 +00:00
Jakob Bornecrantz
4e6a137c62
ipc: Make it possible to toggle inputs on and off
2020-08-28 11:33:38 +00:00
Jakob Bornecrantz
557dacbb02
st/oxr: Special case the any path for pose actions
2020-08-28 10:34:19 +00:00
Jakob Bornecrantz
deb5633bf9
d/psmv: Introduce proper grip and aim poses
...
Correctly rotate the grip pose to follow the spec more closely.
2020-08-27 10:42:05 +01:00
Ryan Pavlik
ff603d3acd
st/oxr: Add layer type conditionals around depth-image manipulation
2020-08-26 12:28:43 -05:00
Ryan Pavlik
2ac0013e25
st/oxr: Verify that the compositor created can actually do the layer types claimed.
2020-08-26 12:28:35 -05:00
Ryan Pavlik
9d19ab2755
u/misc: Improve docs of calloc macros.
2020-08-26 11:26:46 -05:00
Ryan Pavlik
cb26f7255c
comp: Use the correct calloc macro
2020-08-26 11:25:43 -05:00
Ryan Pavlik
b944b82f3c
ipc: Fix build on Android.
2020-08-26 16:31:41 +01:00
Ryan Pavlik
581f59a2eb
vk: Add an Android function to the vk_bundle
2020-08-26 16:31:38 +01:00
Jakob Bornecrantz
516212fef4
c/main: Test if a format is supported before adding to list
2020-08-26 14:28:10 +00:00
Jakob Bornecrantz
62fd80ff8d
aux/vk: Print a little bit more when failing on usage
2020-08-26 14:28:10 +00:00
Jakob Bornecrantz
cac588bbf2
st/oxr: Get maximum layers from the compositor info
2020-08-26 15:25:00 +01:00
Jakob Bornecrantz
1eaf4baf91
c/main: Support 16 layers
2020-08-26 15:25:00 +01:00
Jakob Bornecrantz
1309164303
xrt: Add max layers supported by a compositor
2020-08-26 15:25:00 +01:00
Jakob Bornecrantz
1496262564
xrt: Constify compositor interface
2020-08-26 15:25:00 +01:00
Jakob Bornecrantz
777add8f9e
xrt: Tidy some comments
2020-08-26 15:25:00 +01:00
Christoph Haag
8377655128
comp: Handle skipping rendering of infinite cylinder properly
...
* Setting visibility to none will make the compositor skip rendering this layer
* But do fill in some information in like layer type to ease debugging
2020-08-26 15:59:54 +02:00
Christoph Haag
aecfdfc9f9
comp: Fix typo in switch statement
2020-08-26 15:59:54 +02:00
Jakob Bornecrantz
16b9dc13e2
xrt: Correct assert for ipc data type
2020-08-25 14:55:43 +01:00
Jakob Bornecrantz
bf9f0e6e39
st/oxr: Use the right depth projection function
2020-08-25 14:55:43 +01:00
Jakob Bornecrantz
cd6a237b4a
c/client: Add support for depth projection
2020-08-25 14:55:43 +01:00
Jakob Bornecrantz
8356308bf9
c/main: Add support for depth projection
2020-08-25 14:55:43 +01:00
Jakob Bornecrantz
efac59a1d8
ipc: Add support for depth projection
2020-08-25 14:55:43 +01:00
Jakob Bornecrantz
9bd725a800
xrt: Add missing xrt_comp_layer_stereo_projection_depth
2020-08-25 14:55:43 +01:00
Christoph Haag
2cd010b65f
st/oxr: Verify that projection layer has 0 or view count depth layers
2020-08-24 12:29:47 +02:00
Christoph Haag
a9193b0e89
st/oxr: Pass through depth layer to compositor
...
The compositor does not make use of this layer yet.
2020-08-24 10:30:23 +02:00
Christoph Haag
4f2d421903
st/oxr: Verify depth layer
2020-08-24 10:30:23 +02:00
Christoph Haag
6dc4a1f237
aux/vk: Report appropriate errors on unsupported image usage flags
2020-08-24 10:18:12 +02:00
Christoph Haag
092dddc2da
comp: Support Vk and GL depth and depth stencil formats
...
For now add only the depth formats mandated by OpenGL to maximize the
chances of the Vulkan driver supporting a reasonable set of usage flags
for the formats.
2020-08-24 10:18:12 +02:00
Christoph Haag
5a854fc806
st/oxr: projection layer swapchain NULL check
2020-08-24 10:18:12 +02:00
Jakob Bornecrantz
1914a2ee93
ipc: Tidy
2020-08-21 18:17:18 +01:00
Jakob Bornecrantz
fba9f2532c
c/client: Fix warning and tidy
2020-08-21 18:17:12 +01:00
Jakob Bornecrantz
a4693f3162
st/oxr: Include m_mathinclude.h and tidy includes
2020-08-21 12:18:09 +01:00
Christoph Haag
094a9008c9
comp: Add cylinder layer implementation
2020-08-21 02:24:48 +02:00
Christoph Haag
370f6820aa
m: Generalize math_matrix_4x4_quad_model, making scaling a vec3
2020-08-21 02:11:03 +02:00
Christoph Haag
8a17481301
st/oxr: handle subimage rect in submit_cylinder_layer
2020-08-21 02:11:03 +02:00
Christoph Haag
3122e2d073
comp: Use define for number of plane vertices
2020-08-21 02:11:03 +02:00
Christoph Haag
fbe390813c
vk: Add update_buffer helper function
2020-08-21 02:11:03 +02:00
Christoph Haag
cf5596adba
comp: Use CLAMP_TO_EDGE for swapchains
...
Avoids sampling black at the edges of layers.
2020-08-21 02:09:20 +02:00
Christoph Haag
6c084e2cbf
build: Add build support for cube, cylinder and equirect layers to meson
2020-08-21 02:09:20 +02:00
Ryan Pavlik
3b8c8ddc1a
xrt: Move the android globals functionality to the new android aux lib.
2020-08-19 16:07:00 -05:00
Ryan Pavlik
56dcaf5abf
ipc: Some comment improvements.
2020-08-19 16:07:00 -05:00
Ryan Pavlik
7c0df6506b
ipc/client: Use Android allocator on client side.
2020-08-19 16:07:00 -05:00
Ryan Pavlik
a57507518d
aux/android: New aux library, add image allocator for Android
2020-08-19 16:06:30 -05:00
Ryan Pavlik
fa34c65ed3
xrt: Make xrt_image_native::size optional.
...
Not all allocators can supply it.
2020-08-19 16:06:30 -05:00
Ryan Pavlik
640f24438d
comp/client: Clean up commented-out code.
2020-08-19 16:06:30 -05:00
Ryan Pavlik
c49ccd7b46
comp/client: Improve EGLimage-based swapchain
2020-08-19 16:06:30 -05:00
Ryan Pavlik
3250617dcb
comp/client: Use new texture target utility for OpenGL
2020-08-19 16:06:30 -05:00
Ryan Pavlik
e48f68deb6
aux/ogl: Add helper header for OpenGL.
2020-08-19 16:06:30 -05:00
Ryan Pavlik
6600e738a3
ipc: Fix loop conditions in loopback allocator
2020-08-19 11:01:49 -05:00
Ryan Pavlik
521de8ecfd
comp: Add a URL for sample Android EGL code.
2020-08-19 11:01:49 -05:00
Ryan Pavlik
54149b12b9
st/oxr: Handle the android extension
2020-08-19 11:01:12 -05:00
Ryan Pavlik
430f79a7ca
aux/util: Add u_android for global state.
2020-08-19 11:01:10 -05:00
Christoph Haag
cd05c86c59
d/ns,rs: Add external slam tracking type
2020-08-19 14:46:55 +02:00
Jakob Bornecrantz
201b5337df
ipc: It's okay to send zero handles
2020-08-19 11:45:31 +00:00
Jakob Bornecrantz
019e962f94
ipc: Tidy and better error messages
2020-08-19 11:45:31 +00:00
Christoph Haag
7fb0af90de
xrt: Add tracking system type for Hydra
2020-08-19 11:06:28 +00:00
Christoph Haag
23bd6a4377
xrt: Add tracking system type for Lighthouse
2020-08-19 11:06:28 +00:00
Jakob Bornecrantz
8a4db7b3ef
st/oxr: Make sure that an identity transform is only inserted when needed
2020-08-18 19:44:26 +01:00
Jakob Bornecrantz
1109bc7cfb
st/oxr: Better logging when creating transforms
2020-08-18 19:43:27 +01:00
Jakob Bornecrantz
25c78287a2
st/oxr: Slightly better logging when we fail to transform
2020-08-18 17:06:07 +01:00
Jakob Bornecrantz
a3c4cba7f5
st/oxr: Reject bindings that we can't transform
2020-08-18 17:06:07 +01:00
Ryan Pavlik
00abdb358a
st/oxr: Proper gles support for Android
2020-08-17 17:30:33 -05:00
Christoph Haag
08ed44b22c
d/vive,survive: Manually improve values for Valve Index display
...
These values are hand picked to provide a less stretchy image.
2020-08-17 22:07:22 +02:00
Christoph Haag
518728156b
d/northstar: Set positional tracking bit true when built with RS support
2020-08-17 11:51:38 +00:00
Jakob Bornecrantz
132b0c541d
d/rs: Use a thread to get the poses
...
Tested by moses from Discord.
2020-08-17 11:58:18 +01:00
Christoph Haag
0a667281f9
st/oxr: Print invalid quaternion values in xrLocateView
...
Gives a hint whether it was zeroed, almost normalized, or not normalized at all.
2020-08-17 12:39:08 +02:00
Ryan Pavlik
54dbb4d128
st/oxr: Use the XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING code added in OpenXR 1.0.11.
2020-08-14 17:42:19 -05:00
Ryan Pavlik
2c126e08ff
st/oxr: Handle XRT_ERROR_IMAGE_CREATE_FLAG_UNSUPPORTED from compositor.
2020-08-14 19:58:01 +00:00
Ryan Pavlik
6820a7851d
comp/main: Refuse to create a swapchain if protected content bit requested.
2020-08-14 19:58:01 +00:00
Ryan Pavlik
33c20b1a65
inc/xrt: Add a new xrt_result_t code, for when we don't support the specified image flags.
...
If we don't support protected content (and our compositor doesn't),
we are to error out in a specific way in OpenXR. This permits us to do so.
2020-08-14 19:58:01 +00:00
Jakob Bornecrantz
4b5d25dc33
c/main: Stub in code for cube, cylinder and equirect layers
2020-08-14 19:15:02 +00:00
Jakob Bornecrantz
1292173b5e
c/client: Add support for cube, cylinder and equirect layers
2020-08-14 19:15:02 +00:00
Jakob Bornecrantz
4754dcd11b
ipc: Add support for cube, cylinder and equirect layers
2020-08-14 19:15:02 +00:00
Jakob Bornecrantz
8846c88eb1
st/oxr: Implement cylinder layer
2020-08-14 19:15:02 +00:00
Jakob Bornecrantz
7eeab2aca6
st/oxr: Implement the layer verification functions
2020-08-14 19:15:02 +00:00
Ryan Pavlik
bf37b9d999
comp: Use u_logging in some EGL code.
2020-08-13 17:34:05 -05:00
Ryan Pavlik
a6b6ab8e2c
ipc: Fix conditionals about handle types.
2020-08-13 17:34:05 -05:00
Ryan Pavlik
1bd2c66aa2
comp: Port to using u_handles
2020-08-13 17:34:05 -05:00
Ryan Pavlik
e092345292
aux/vk: Port to using u_handles
2020-08-13 17:34:05 -05:00
Ryan Pavlik
129c1a9ac4
a/util: Add u_handles module.
2020-08-13 17:34:05 -05:00
Ryan Pavlik
ab4ceee720
comp: Save/restore the correct texture binding on Android
2020-08-13 17:34:05 -05:00
Ryan Pavlik
e52539d1a3
aux/vk: Fix compile time conditionals
2020-08-13 17:34:05 -05:00
Ryan Pavlik
f9a613a349
comp: Fix compile-time conditionals
2020-08-13 17:34:05 -05:00
Ryan Pavlik
c5d1dec60c
comp: Move GLAD loading and extension checking to places with more information.
...
They will be sure to load the right combination.
2020-08-13 17:34:05 -05:00
Ryan Pavlik
3cfdfbde60
inc/xrt: Tighten requirements for AHardwareBuffer usage.
...
Needs to be building for platform 26+ (Android 8.0 or newer)
2020-08-13 17:34:05 -05:00
Ryan Pavlik
9087d1c7a9
xrt: Use our generic graphics buffer typedefs all over.
...
This adds some Android support in composition clients,
and fixes the breakage from 2 commits ago.
Thanks to Jakob for finding my error in an earlier version.
2020-08-13 17:34:05 -05:00
Ryan Pavlik
fc73ba0401
comp: Split OpenGL[ES] swapchain types
2020-08-13 17:34:05 -05:00
Ryan Pavlik
475192ec73
xrt: Rename "fd" references to "handle"
...
This breaks some Android pieces, which will be fixed shortly.
2020-08-12 17:11:42 -05:00
Ryan Pavlik
146218b346
xrt: Some clang tidy fixes.
...
A few suppressions as well where clang-tidy did the wrong thing.
2020-08-12 17:11:42 -05:00
Ryan Pavlik
f1432789ee
ipc: Const correctness
2020-08-12 09:51:07 -05:00
Jakob Bornecrantz
d27044a18d
ipc: Add a disabled loopback allocator
2020-08-12 15:26:43 +01:00
Jakob Bornecrantz
a834c9977e
ipc: Make it possible to give the client compositor a image allocator
2020-08-12 15:26:05 +01:00
Jakob Bornecrantz
01dcf59c53
xrt: Add new image native allocator interface
2020-08-12 15:24:48 +01:00
Jakob Bornecrantz
38703fc1d2
st/oxr: Add plumbing for layers
2020-08-11 01:51:24 +01:00
Jakob Bornecrantz
4a8ac6ebed
cmake: Add build flags for OpenXR layers
2020-08-11 01:48:31 +01:00
Jakob Bornecrantz
71e10fafcd
c/main: Fix warnings with asserts
2020-08-11 01:48:31 +01:00
Jakob Bornecrantz
5e78752a6e
xrt: Add a bunch of different layer types
2020-08-11 01:48:31 +01:00
Christoph Haag
026cc64681
comp: make nvidia display selectable with XRT_COMPOSITOR_FORCE_NVIDIA_DISPLAY
...
Allows temporarily adding a nvidia display name string to the whitelist without recompiling.
2020-08-11 00:44:31 +02:00
Christoph Haag
5ecd0a947d
comp: Move nvidia whitelist warning so it is displayed again
2020-08-10 20:48:29 +02:00
Jakob Bornecrantz
1e3508d2ce
st/oxr: Fix crash in oxr_session_poll in headless mode
...
Spotted and reported by svillar (IRC).
2020-08-10 16:49:20 +01:00
Jakob Bornecrantz
ec9ecf6332
d/psvr: Fix 3DOF tracking
2020-08-10 16:07:53 +01:00
Jakob Bornecrantz
ca786df18c
xrt: Make xrt_swapchain_create_info argument const
2020-08-07 19:15:18 +01:00
Jakob Bornecrantz
cd9da1c1e1
aux/vk: Make xrt_swapchain_create_info const
2020-08-07 17:00:10 +01:00
Christoph Haag
e48c748a57
xrt: suggest correct GPU in xrGetVulkanGraphicsDevice()
...
As before, on the service side the GPU index the compositor runs on can be selected with
* XRT_COMPOSITOR_FORCE_GPU_INDEX=INDEX1
By default xrGetVulkanGraphicsDevice() will suggest the same GPU the compositor runs on.
It is also possible to override the GPU index suggested to applications with
* XRT_COMPOSITOR_FORCE_CLIENT_GPU_INDEX=INDEX2
The reason this is both done on the service side is that if compositor and client run
on different GPUs, the swapchains use linear tiling instead of optimal tiling.
To make chosen GPUs comparable across the compositor's and the client's vulkan instance,
VkPhysicalDeviceIDProperties.deviceUUID is used.
2020-08-07 17:01:13 +02:00
Jakob Bornecrantz
b7977424fc
st/oxr: Get viewport information from the native compositor
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
adc6ca8e8a
c/main: Fill out all of the compositor info struct
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
ee48b44087
c/main: Remove internal compositor global flip_y
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
0b8d800dcc
ipc: Use xrt_compositor_info in proto
...
Transport the whole compositor info struct to the client instead of just
formats so that all information is easily moved over.
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
3bbea14f24
ipc: Remove flip_y arguments to compositor creation
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
d1d841e7c3
xrt: Use new info struct for compositor formats
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
0adfeb77a1
xrt: Add xrt_compositor_info
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
e8ca242967
xrt: Remove flip_y argument to native compositor creation
2020-08-06 15:14:49 +00:00
Jakob Bornecrantz
fb9ebe8b88
st/oxr: Add support for MND_swapchain_usage_input_attachment_bit
2020-08-06 14:28:23 +00:00
Jakob Bornecrantz
3a7a86aafc
vk: Refactor VkImageUsageFlags code into helper function
2020-08-06 14:28:23 +00:00
Jakob Bornecrantz
ce7da3941c
vk: Add support for XRT_SWAPCHAIN_USAGE_INPUT_ATTACHMENT
2020-08-06 14:28:23 +00:00
Jakob Bornecrantz
b64d683f6e
xrt: Add new input attachment swapchain usage
2020-08-06 14:28:23 +00:00
Christoph Haag
ae07036324
d/vive: Demote watchman timeout error message to trace
...
It's desirable to support running without basestations without spamming messages.
2020-08-05 21:11:24 +00:00
Christoph Haag
3a68f60d47
d/vive: Run watchman poll in separate thread
...
Watchman polling times out after 1 second when basestations are not present/off.
This should not block reading the IMU.
2020-08-05 21:11:24 +00:00
Ryan Pavlik
07f2e62e76
aux/vk: vk_create_semaphore_from_fd -> vk_create_semaphore_from_native
2020-08-05 20:50:00 +00:00
Ryan Pavlik
7b24fca58d
inc/xrt: Add a native handle type for graphics sync primitives
2020-08-05 20:50:00 +00:00
Ryan Pavlik
8889f81194
inc/xrt: Add defines for underlying handle type
2020-08-05 20:50:00 +00:00
Ryan Pavlik
d8ad620bd2
xrt: Update GLAD again, to a "merged" distribution.
...
This merges the OpenGL and OpenGL-ES code.
2020-08-05 20:50:00 +00:00
Christoph Haag
a5360f2237
comp: Free comp_render_layer on layer destruction
2020-08-05 20:32:51 +00:00
Christoph Haag
9a52e2384f
ipc: initialize msg_control buffer
2020-08-05 20:32:51 +00:00
Christoph Haag
2b20ee1f12
d/vive: close the zlib inflate stream
...
fixes memory leaks of zlib stream internal state
2020-08-05 20:32:51 +00:00
Christoph Haag
12c0f5d75a
d/vive: Destroy watchman hid device on shutdown
2020-08-05 20:32:51 +00:00
Christoph Haag
1f9e5cdfb6
comp: Free layer renderer on renderer destroy
2020-08-05 20:32:51 +00:00
Ryan Pavlik
574631166f
st/p: Downgrade an "error" message to a "debug" message.
...
This message is always triggered on my machine by v4l2loopback.
2020-08-05 11:12:16 -05:00
Christoph Haag
4a0aa434aa
build: Install manifest in openxr subdir with meson
...
Before: <PREFIX>/share/1/openxr_monado.json
After : <PREFIX>/share/openxr/1/openxr_monado.json
2020-08-05 01:55:43 +02:00
Christoph Haag
c019fce797
st/oxr: Don't crash when native compositor creation fails
...
fixes crash and exits gracefully after
compositor_init_swapchain - Window init_swapchain failed!
XR_ERROR_INITIALIZATION_FAILED in xrCreateSession: Failed to create a native compositor '-1'
2020-08-04 22:32:58 +02:00
Christoph Haag
5d4a49a1c7
st/oxr: Actually return invalid path error in sync actions
2020-08-03 19:00:17 +02:00
Christoph Haag
d06f1c9ef9
st/oxr: error when sync with subactionpath that no action has
2020-08-03 19:00:17 +02:00
Christoph Haag
983665d95c
st/oxr: Respect action set priority for exact matching inputs
...
* Only suppress action when synced actionset has relevant subpath
2020-08-03 19:00:02 +02:00
Christoph Haag
4c8e3eb95f
st/oxr: Don't return early when not using 'any' subpath
...
'any' is only set when xrSyncActions was called with XR_NULL_PATH.
When only left or right is set, the already existing following code does the job.
2020-08-03 18:59:56 +02:00
Lubosz Sarnecki
9c16f5ed69
d/vive/lighthouse: Handle lighthouse v2 reports.
...
Poll ligthouse reports in separate function. Check for report sizes
consistently.
2020-07-31 13:30:12 +02:00
Lubosz Sarnecki
04467942c1
d/vive: Add and use vive_lighthouse from ouvrt.
2020-07-31 13:30:12 +02:00
Lubosz Sarnecki
87a5c425cf
a/math: Add math_vec3_normalize.
2020-07-31 12:45:47 +02:00
Lubosz Sarnecki
7c8febd03d
u/logging: Add U_LOG_IFL.
2020-07-31 12:45:47 +02:00
Lubosz Sarnecki
bb7d05a918
d/vive: Print report type names.
...
Be fault tolerant on unexpected report.
2020-07-31 12:45:47 +02:00
Lubosz Sarnecki
c3ba93c1ce
d/vive: Poll pulse reports.
...
Make sensor polling function take processing callback and be more
generic.
2020-07-31 12:45:47 +02:00
Lubosz Sarnecki
2db3b6b218
d/vive: Open and enable watchman on Vive, Vive Pro and Index.
2020-07-31 12:45:13 +02:00
Lubosz Sarnecki
cbb1dd82da
d/vive: Remove unnesseccary clang-format off.
2020-07-31 12:35:03 +02:00
Jakob Bornecrantz
9ae720b9d4
xrt: Add all remaining swapchain creation flags
2020-07-29 14:46:17 +01:00
Jakob Bornecrantz
080fdacc70
comp: Remove some vkDeviceWaitIdle calls and document other
2020-07-24 09:12:22 +00:00
Ryan Pavlik
b70d14f6b0
st/oxr: Convert some more missed subaction path iterations to x-macro usage.
...
Also make Doxygen expand macros so that these usages still result
in reasonable developer docs.
2020-07-23 15:40:18 -05:00
Ryan Pavlik
a9a502952a
st/oxr: Fix multiplicity of bound_path per action.
...
Thanks to @haagch for the start of this patch.
2020-07-23 14:34:38 -05:00
Ryan Pavlik
ae59a3ce15
st/oxr: Add design documentation for OpenXR input subsystem.
2020-07-23 14:29:12 -05:00
Ryan Pavlik
5ba5e6b03b
st/oxr: Fix typo
2020-07-23 12:50:17 +01:00
Jakob Bornecrantz
ee6aa4ee1d
xrt: Make swapchain static image bit match OpenXR
2020-07-23 12:39:12 +01:00
Ryan Pavlik
a04c162ab3
st/oxr: Centralize the lists of subaction paths using x-macros.
2020-07-22 16:00:23 -05:00
Ryan Pavlik
e6abf3dea2
ipc: Docs
2020-07-22 16:17:09 +00:00
Christoph Haag
138fcc49d8
st/oxr: Fix haptic actions being disabled
...
fixes d226a60a
2020-07-22 00:45:44 +02:00
Jakob Bornecrantz
7818a5b9cf
st/oxr: Implement xrEnumerateBoundSourcesForAction
2020-07-21 22:41:13 +00:00
Jakob Bornecrantz
9f684dbc21
st/oxr: Add a very ugly stub implementation of xrGetInputSourceLocalizedName
2020-07-21 22:41:13 +00:00
Jakob Bornecrantz
53a0646e24
st/oxr: Add better verification in xrGetInputSourceLocalizedName
2020-07-21 22:41:13 +00:00
Jakob Bornecrantz
5e629b3437
st/oxr: Tidy header
2020-07-21 22:41:13 +00:00
Christoph Haag
d226a60aac
st/oxr: Combine input values
...
This enables binding two different inputs to the same action, for example
/user/hand/left/input/select/click and /user/hand/left/trigger/click to
the same grab action.
Also takes care of using the correct timestamp of the input that is
responsible for the last overall value change.
2020-07-21 20:59:07 +02:00
Jakob Bornecrantz
b87fd91bc8
st/oxr: Send XrEventDataInteractionProfileChanged events on interaction profile changes
2020-07-20 19:52:31 +01:00
Jakob Bornecrantz
56386aa1d7
st/oxr: Implement needed checks for xrGetCurrentInteractionProfile
2020-07-20 19:34:41 +01:00
Jakob Bornecrantz
b0593d7012
st/oxr: Better error message for unhandled case in xrGetCurrentInteractionProfile
2020-07-20 19:34:41 +01:00
Jakob Bornecrantz
18957e0636
st/oxr: Fix the any handiness controllers not getting assigned to right
2020-07-20 19:34:41 +01:00
Jakob Bornecrantz
9f11287fa3
st/oxr: A slightly better stub implementation of xrEnumerateBoundSourcesForAction
2020-07-20 19:34:41 +01:00
Jakob Bornecrantz
536e461776
ipc: Implement xrt_compositor::import_swapchain
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
11b2dfe213
ipc: Add function to import a swapchain
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
9c490127bb
ipc: Fix in_handles handling by syncing with the server
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
a41c1ce1c5
c/main: Implement xrt_compositor::swapchain_import
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
d5a702cd47
c/main: Use new Vulkan image allocator helper
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
ccaa6fa564
xrt: Add function to create swapchain from native images
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
b93017911e
xrt: Make xrt_compositor::create_swapchain return xrt_result_t
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
727e3bc2a6
vk: Add image allocator helper
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
a8a4e80746
vk: Use xrt_swapchain_create_info in vk_create_image_from_native
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
5a9fa0a7e6
vk: Remove unused vk_image
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
0d05eb6cae
xrt: Make some fields on xrt_gl_swapchain private
2020-07-20 13:50:01 +00:00
Jakob Bornecrantz
34843c3ffe
xrt: Make some fields on xrt_vk_swapchain private
2020-07-20 13:50:01 +00:00
Christoph Haag
f18c190eaa
st/oxr: Check if relating space to itself first
2020-07-20 15:41:17 +02:00
Christoph Haag
ddb528f002
st/oxr: Support locating stage space in local space
...
And the other way around.
Fixes hello_xr -s Local, which renders cubes at offset stage space locations,
relative to local space.
2020-07-20 14:05:31 +02:00
Christoph Haag
164eda38d4
st/oxr: use initial head pose as local space origin
...
Implements local space in xrLocateViews, xrLocateSpace, and Quad layers in xrEndFrame.
2020-07-19 23:55:20 +02:00
Ryan Pavlik
47a66e1bdf
build: Use OpenGLES CMake module to gate OpenGL|ES support
2020-07-17 15:17:42 -05:00
Ryan Pavlik
6f56d91c05
xrt: Add separate build config for OpenGL ES
2020-07-17 15:17:42 -05:00
Ryan Pavlik
4c5b38c836
st/oxr: Clean up GL/GLES image enumeration a bit for easier maintenance
2020-07-17 13:53:39 -05:00
Ryan Pavlik
852c9b589d
st/oxr: Handle Android better.
2020-07-17 13:53:39 -05:00
Ryan Pavlik
4a22851e4a
meson: Re-arrange config header code
2020-07-17 13:53:39 -05:00
Ryan Pavlik
19efff937e
inc/xrt: Sort defines in generated config header
2020-07-17 13:53:39 -05:00
Ryan Pavlik
910a3aae75
external: Update GLAD and add missing header
2020-07-17 13:53:39 -05:00
Ryan Pavlik
ebf1b01d48
comp: Improve OpenGL extension checking
2020-07-17 13:53:39 -05:00
Ryan Pavlik
2cce94799d
d/psvr: Fix hidapi include
2020-07-17 13:53:39 -05:00
Ryan Pavlik
4220638afd
xrt: use _USE_MATH_DEFINES to make sure M_PI gets defined.
2020-07-17 13:53:39 -05:00
Ryan Pavlik
8b954e12c1
build: Add missing jpeg include dir
2020-07-17 13:53:39 -05:00
Ryan Pavlik
1476d396f8
build: Enable the Android Vulkan platform when applicable.
2020-07-17 11:46:22 -05:00
Ryan Pavlik
8fdfb42d21
inc/xrt: Switch declaration order in xrt_handles to quiet Doxygen
2020-07-17 11:46:22 -05:00
Ryan Pavlik
cb69223532
aux: Move responsibility for clearing image FD to the helper.
2020-07-17 11:46:22 -05:00
Christoph Haag
4ec6f46717
comp/gl: hack: glFlush() before committing a layer
...
This works around corruption in layers on several drivers caused by
writes to the OpenGL textures not having finished when used by the
compositor.
This should be properly fixed with external semaphores later.
2020-07-17 17:11:35 +02:00
Christoph Haag
eb355f3643
st/oxr: Handle quad layer with reference space as base space again
...
fixes d64ef3df
2020-07-17 13:10:20 +02:00
Christoph Haag
d64ef3df74
st/oxr: Basic support for ActionSpace as base space in QuadLayer
2020-07-16 20:02:05 +00:00
Ryan Pavlik
82395b23bb
ipc: Use generic shmem functions now.
2020-07-16 13:06:07 -05:00
Ryan Pavlik
20c65e74e3
ipc: Define shmem utilities for Linux and Android
2020-07-16 13:06:07 -05:00
Ryan Pavlik
25627e55ca
inc/xrt: Add helpers for the handle types - null value, validity checker
2020-07-16 13:06:07 -05:00
Lubosz Sarnecki
db3a721946
comp/shaders: Remove has_sub option.
...
As we have subimage rects for all layers now.
2020-07-16 19:34:33 +02:00
Lubosz Sarnecki
7e35fcb8aa
comp/renderer: Provide subrect properties for projection layers.
2020-07-16 19:32:53 +02:00
Lubosz Sarnecki
984056674e
comp/shaders: Sample quad layers with texture().
2020-07-16 19:08:10 +02:00
Lubosz Sarnecki
2472deb95a
comp/layers: Remove layer type from constructor.
...
The value was not used anyway as it is not set at creation time, but
every frame. This avoids some confusion.
2020-07-16 19:08:10 +02:00
Lubosz Sarnecki
6222de38c9
comp/shaders: Rename quad shaders to layer.
...
As the shader is used for all layers we have, the generic name fits
better.
2020-07-16 19:08:10 +02:00
Lubosz Sarnecki
a27164ab43
comp/renderer: Render subimage properties in layer shader.
...
This patch passes the offset and extent properties to the layer shader
by extending the uniform. The fragment shader stage now also receives
the transformation uniform, which contains a has_sub boolean to
distinguish if the properties are set, so between projection and quad layers.
To avoid color bleeding the subimage sampling happens on a global pixel
coordinates basis as ivec2 using the GLSL texelFetch function.
Projection layers will be sampled as before.
2020-07-16 19:08:10 +02:00
Christoph Haag
a56fa20b50
build: Install tools with meson
2020-07-16 16:04:51 +02:00
Ryan Pavlik
ebc7a11e70
ipc: Support client->server "in_handles"
2020-07-16 11:51:16 +00:00
Ryan Pavlik
1aa2cdb89a
build: Move determination of Vulkan usage to build system.
...
Vulkan is still required for most actual uses of Monado, but this
makes the coupling weaker.
2020-07-16 10:17:30 +00:00
Ryan Pavlik
c3552ed420
xrt: Rename xrt_gfx_fd.h to xrt_gfx_native.h
2020-07-15 17:19:30 -05:00
Christoph Haag
ba17d35f7f
comp: Create second pipeline for premultiplied alpha blending
...
Fixes "Source Alpha Blending" conformance test.
2020-07-15 19:21:13 +00:00
Ryan Pavlik
54f56716fd
xrt: Rename references to compositor/swapchain/image_fd to ..._native.
...
Reflecting that the native buffer isn't an FD on all platforms.
2020-07-15 09:11:58 -05:00
Ryan Pavlik
86d93601d7
ipc: Work on Android using AHardwareBuffer instead of FDs for graphics
2020-07-14 16:37:55 -05:00
Ryan Pavlik
030e5564ff
xrt: Auto-detect Android in header
2020-07-14 16:37:55 -05:00
Ryan Pavlik
44fe0e7709
build: Handle Android NDK better.
2020-07-14 16:37:55 -05:00
Ryan Pavlik
60cf946dd7
ipc: Normalize parameter names
2020-07-14 16:37:12 -05:00
Ryan Pavlik
abc580d2b1
ipc: Replace "out_fds" with more generic "out_handles"
...
Also, finish porting client code to use factored-out utils.
2020-07-14 16:37:12 -05:00
Ryan Pavlik
040c82cb24
ipc: Port server side to use new factored-out utils
2020-07-14 16:24:26 -05:00
Ryan Pavlik
166c041421
ipc: Start providing handle marshalling util functions
2020-07-14 16:24:26 -05:00
Ryan Pavlik
0e0f4b780e
inc/xrt: Add handle typedefs, to use instead of "int" for file descriptors
2020-07-14 16:24:26 -05:00
Ryan Pavlik
1a692f5de6
ipc: Use factored-out utils on client side.
2020-07-14 16:24:26 -05:00
Ryan Pavlik
36f66ea630
ipc: Add factored-out basic message send/receive
2020-07-14 16:24:26 -05:00
Ryan Pavlik
a5bde51c81
ipc: Change return type of some server functions from int to xrt_result_t
2020-07-14 16:24:26 -05:00
Ryan Pavlik
c2e922b0f5
ipc: Formatting cleanup
2020-07-14 16:24:26 -05:00
Ryan Pavlik
87dbad9865
ipc: Have server utils return xrt_result_t
2020-07-14 16:24:26 -05:00
Ryan Pavlik
687beddcca
ipc: Replace ipc_connection_t usage with struct ipc_connection
2020-07-14 16:24:23 -05:00
Ryan Pavlik
cf68e11b97
ipc: Be more strict in type parsing
2020-07-14 16:18:17 -05:00
Ryan Pavlik
1b88c7e089
ipc: Move data structure out of generation script
2020-07-14 16:18:17 -05:00
Benjamin Saunders
1c78dd0246
c/client: Slightly improve barriers, taken from !360
...
Transplanted by Jakob, all the hard spec reading done by Ben.
2020-07-14 17:25:28 +01:00
Jakob Bornecrantz
c37dd46b0c
st/prober: Rework HMD logic a bit and put HMD always in first position
2020-07-14 12:55:18 +01:00
Christoph Haag
54f01b570c
build: Enable service less build with meson too
2020-07-14 02:16:06 +02:00
Christoph Haag
b073e3dfb9
xrt: Add support for assigned device roles
...
Abandons the assumption that in oxr_system.xdevs[], index 0 is HMD,
1 is left controller, 2 is right controller.
Now to represent the dynamically assigned roles, oxr_system.role contains
the index for a device in oxr_system.xdevs[] for head, left and right.
This role assignment happens on the client side and currently can not be updated
from the server side.
Also adds an enum that device drivers set indicating allowed assignments
(many controllers are physically designed to be held in a specific hand).
This also adds support for configurations with only a HMD and a right controller.
2020-07-13 18:03:01 +02:00
Christoph Haag
5788fb90a2
drivers: Add rotation/position tracking bool to xdev
...
xrGetSystemProperties() will return these values to application in XrSystemTrackingProperties
using the xdev assigned to head.
2020-07-13 18:03:01 +02:00
Christoph Haag
6429496439
build: respect meson install-active-runtime option
2020-07-13 14:15:13 +02:00
Christoph Haag
605e4e2027
build: Fix installing active_runtime.json on meson without DESTDIR
...
The -u setting for bash reported an error if DESTDIR is not set.
The syntax ${A-foo} returns the content of A if set, or the default "foo" if not,
"foo" being the empty string in this case.
2020-07-13 14:08:34 +02:00
Ryan Pavlik
d2cd0f4bb9
build: Fix destdir repetition when installing systemd units.
...
Found during packaging.
2020-07-10 18:11:37 -05:00
Lubosz Sarnecki
261facd9f1
u/json: Fix a -Wmaybe-uninitialized on GCC 10.1.0.
2020-07-10 17:18:41 +02:00
Lubosz Sarnecki
a5dc31359b
c/compositor: Set a window title.
2020-07-10 17:03:28 +02:00
Lubosz Sarnecki
499751e4fa
d/vive: Use VIVE_ERROR when vive_device is available.
2020-07-09 14:11:35 +02:00
Lubosz Sarnecki
8e682fdd1b
u_logging: Format logging output.
...
To be in line with other log prints, put the log level first.
For better readability, put the function in [braces].
Remove ":" as separator between level and function.
2020-07-09 13:38:07 +02:00
Lubosz Sarnecki
4d412edaa1
d/vive/protocol: Port to u_logging.
2020-07-09 13:38:07 +02:00
Lubosz Sarnecki
dce8da5130
d/vive/controller: Port to u_logging.
2020-07-09 13:38:07 +02:00
Lubosz Sarnecki
5dff60a93d
d/vive: Create common header for controller and hmd.
2020-07-09 13:38:07 +02:00
Lubosz Sarnecki
dfcff5e806
d/vive/device: Use VIVE_WARN and VIVE_INFO.
2020-07-09 13:38:07 +02:00
Lubosz Sarnecki
7121c260ae
d/vive/device: Replace old debug macros with new ones.
2020-07-09 13:38:07 +02:00
Lubosz Sarnecki
7be5efbe82
d/vive/prober: Prettify logging. rename methods.
2020-07-09 13:38:07 +02:00
Lubosz Sarnecki
eaea6888a7
d/vive: Port logging to u_logging.
2020-07-09 13:37:58 +02:00
Jakob Bornecrantz
deedd10a50
xrt: Tidy xrt_instance_create argument order and add doc-comment
2020-07-08 14:41:12 +00:00
Ryan Pavlik
323d794df3
ipc: Add a json schema for the IPC description
2020-07-08 09:15:51 -05:00
Ryan Pavlik
042fd54361
t/service: Make the socket RemoveOnStop.
2020-07-08 09:15:51 -05:00
Ryan Pavlik
b2b2b0f4af
u_logging: Fix comments/doxygen
2020-07-08 09:15:51 -05:00
Christoph Haag
763b122c3e
comp: Print info about AllowHMD when direct mode fails on nvidia
2020-07-08 15:43:05 +02:00
Jakob Bornecrantz
c5b930903e
st/oxr: Fix conformance failure and tidy up action set attached logic
...
This caused a action set to act as if it has been attached, one might say that
this commit fixes a overly attached action set.
Extreme programmed with Ryan Pavlik, which I also ~~stole~~ borrowed the header
comments from verbatim.
2020-07-06 20:11:35 +01:00
Jakob Bornecrantz
59b7bdeee0
st/oxr: Properly name MNDX_ball_on_a_stick_controller
2020-07-06 11:58:42 +01:00
Jakob Bornecrantz
fd8e19718c
st/oxr: Reorder extension in prefix order
2020-07-06 11:42:16 +01:00
Jakob Bornecrantz
8a1c74338c
st/oxr: Make script be up to date to what's generated
2020-07-06 11:42:16 +01:00
Jakob Bornecrantz
8ee7086ea6
xrt: Introduce xrt_swapchain_create_info
2020-07-04 11:04:07 +00:00
Jakob Bornecrantz
1b11abe6eb
xrt: Tidy xrt_compositor.h
2020-07-04 11:04:07 +00:00
Jakob Bornecrantz
ad266672f4
st/gui: Add a special UI for setting log level vars
2020-07-03 19:26:45 +01:00
Jakob Bornecrantz
20501b8e58
d/psmv: Use new log level var tracker
2020-07-03 19:01:55 +01:00
Jakob Bornecrantz
c4741cc49f
d/psmv: Use new logging level helper
2020-07-03 19:01:55 +01:00
Jakob Bornecrantz
9848f8b4b8
u/var: Add log level tracker
2020-07-03 19:01:55 +01:00
Jakob Bornecrantz
be0430a38c
u/debug: Add function to get logging level
2020-07-03 18:58:34 +01:00
Jakob Bornecrantz
ffcc06e099
d/psmv: Use new logging functions
2020-07-03 14:55:44 +01:00
Jakob Bornecrantz
b26c8135ae
u/*: Use new logging functions
2020-07-03 14:55:44 +01:00
Jakob Bornecrantz
38685eba38
u/log: Add logging helpers
2020-07-03 14:33:54 +01:00
Lubosz Sarnecki
fdffbfc68a
d/vive/controller: Print spew when receiving lighthouse data.
2020-07-02 19:29:14 +02:00
Lubosz Sarnecki
1071d7a50b
d/vive/controller: Uncomment and improve spew prints.
2020-07-02 19:29:14 +02:00
Lubosz Sarnecki
d047ce8af4
d/vive/controller: Add Vive tracker gen 2 support.
2020-07-02 19:29:14 +02:00
Lubosz Sarnecki
6662e0caef
d/vive/controller: Add Vive tracker gen 1 support.
2020-07-02 19:29:14 +02:00
Lubosz Sarnecki
2fd6fe2f16
d/vive/prober: Print error before device init.
2020-07-02 19:29:14 +02:00
Lubosz Sarnecki
260cfd8d26
d/vive/controller: Use u_json and move config to vive_config.
...
To be consistent with the headset implementation, move all config
related code to vive_config and use u_json consistently with static
string sizes.
2020-07-02 18:42:42 +02:00
Lubosz Sarnecki
53619fa64e
d/vive/controller: Move prober interface to vive_prober.
...
Create propper initializer for the controller and move the proper
interface to vive_prober to be more consistent with the device. This
will also allow to share more code like the config parsing in a later
patch.
2020-07-02 18:42:42 +02:00
Lubosz Sarnecki
f33c6356d7
d/vive: Rename vive_controller files.
...
To be more consistent with the rest of the driver, rename the controller
files to match the others style.
2020-07-02 18:42:42 +02:00
Lubosz Sarnecki
eb51b89e9c
d/vive_config: Move config and json related code to vive_config.
...
Isolate JSON config related code in vive_config.
2020-07-02 18:42:42 +02:00
Lubosz Sarnecki
2580958e2c
d/vive: Use functions from u_json.
...
Uses the old and newly moved u_json functions.
Creates defines to keep short syntax.
Strings are now stored with static sizes in favor of being allocated
dynamically and not freed.
2020-07-02 18:42:42 +02:00
Lubosz Sarnecki
bb52a673eb
d/vive/controller: Parse vec3 correctly as arrays.
...
The u_json_get_vec3 function only works for json vec3 objects with x, y,
z members. The function unnoticedly returned false before.
2020-07-02 18:42:42 +02:00
Lubosz Sarnecki
166346ad6e
u/json: Add u_json_get_matrix_3x3.
...
As seen in Vive driver.
2020-07-02 18:42:37 +02:00
Lubosz Sarnecki
a9db6fbd40
u/json: Add fprintf error messages.
2020-07-02 18:42:37 +02:00
Lubosz Sarnecki
0bdd1133e4
u/json: Add u_json_get_vec3_array.
...
As seen in Vive driver.
2020-07-02 18:42:30 +02:00
Lubosz Sarnecki
efd351f5c1
d/vive/controller: Initialize debug and spew before it's used.
2020-07-02 18:36:21 +02:00
Lubosz Sarnecki
f9d92890ce
d/vive: Fix crash on Vive Pro as it's missing a json key.
...
The key "lens_separation" is not available in my Vive Pro config.
2020-07-02 18:35:18 +02:00
Christoph Haag
08c6fe9744
d/vive_controller: Fix imu timestamp calculation
...
Philipp Zabel looked into it and it turns out the timestamp from the
imu sample should be the third byte, not the fourth.
2020-07-02 11:33:58 +02:00
Christoph Haag
acdda780b6
d/vive_controller: implement remaining "gen2" input events
...
v2: document and clarify imu sample timestamp
2020-07-01 18:36:41 +02:00
Christoph Haag
d8de19d4ae
d/vive_controller: Add and set Index "Gen2" input names
2020-07-01 18:36:41 +02:00
Christoph Haag
184dd277bf
bindings: Fix Index squeeze/force binding declaration
2020-07-01 18:36:41 +02:00
Jakob Bornecrantz
5bad87690f
ipc: Avoid deadlocks due to render timing helper not getting data in time
2020-07-01 13:22:03 +01:00
Jakob Bornecrantz
addeea2acf
d/psmv: When in 3dof mode return angular and linear velocities
2020-06-26 10:41:13 +01:00
Christoph Haag
c6d25a9773
st/oxr: Convert action timestamp with time_state_monotonic_to_ts_ns
...
Action timestamps were missing this conversion to XrTime with time_state_monotonic_to_ts_ns()
which caused them to be out of sync with the predicted frame times and device "pose at" timestamps.
2020-06-26 01:41:08 +02:00
Christoph Haag
2a9a14c605
d/survive: Report linear and angular velocities from survive
2020-06-26 01:41:08 +02:00
Christoph Haag
b7ea0ce2b3
st/oxr: Support next-chained XrSpaceVelocity in XrSpaceLocation
2020-06-26 01:41:08 +02:00
Jakob Bornecrantz
bf086f8be2
c/client: Add two new linear formats to OpenGL
2020-06-25 19:55:08 +00:00
Jakob Bornecrantz
0be1456b32
c/main: Add support for more linear formats and prioritize them better
2020-06-25 19:55:08 +00:00
Jakob Bornecrantz
70a6240d48
comp: Use a sRGB window swapchain
2020-06-25 19:55:08 +00:00
Jakob Bornecrantz
f13f911e8a
c/main: Implement prepare_session and poll_events
2020-06-25 15:48:34 +01:00
Pete Black
bd5aa24463
xrt: Add multi client and overlay client support
2020-06-25 15:48:34 +01:00
Jakob Bornecrantz
a26fa7bbdc
c/client: Tidy whitespace
2020-06-25 12:58:22 +01:00
Jakob Bornecrantz
513ebd9957
ipc: Remove no longer used semaphore code (NFC)
2020-06-24 22:57:00 +01:00
Jakob Bornecrantz
e59b4a1cb1
ipc: Use new frame timing code
2020-06-24 11:42:46 +01:00
Jakob Bornecrantz
83081f9cc1
u/render_timing: Add helper code for frame timing
2020-06-24 00:56:45 +01:00
Jakob Bornecrantz
3275f00464
st/oxr: Use a semaphore to ensure wait frame is released after begin frame has been called
2020-06-23 21:31:03 +01:00
Jakob Bornecrantz
f5359b655e
os/threading: Add semaphore
2020-06-23 21:31:03 +01:00
Jakob Bornecrantz
ef282c7df2
os/time: Add function to convert to a timespec struct
2020-06-23 21:31:03 +01:00
Jakob Bornecrantz
b75f4f844b
xrt: Add frame_id to compositor frame calls
2020-06-23 21:31:00 +01:00
Jakob Bornecrantz
5ac0c7a139
xrt: Make prepare_session and poll_events return xrt_result_t
2020-06-23 12:39:57 +01:00
Jakob Bornecrantz
017e6738e0
d/psmv: Slightly improved locking and printing
2020-06-23 12:39:57 +01:00
Christoph Haag
f31f1edde2
ipc: Set destroyed swapchains to not active
...
Fixes the service failing to create swapchains with "ERROR: Too many swapchains!"
after one or several sequentially started and quit clients created 32 swapchains.
2020-06-19 14:41:34 +02:00
Lubosz Sarnecki
0dbbe423d9
c/layer_renderer: Implement eye visibility.
2020-06-18 16:03:49 +01:00
Jakob Bornecrantz
e76f698463
c/main: Respect alpha blending layer flag
2020-06-18 16:03:49 +01:00
Jakob Bornecrantz
e8d62d948f
aux/vk: Add helper to create image view with component swizzles
2020-06-18 13:48:10 +01:00
Jakob Bornecrantz
3055102217
tests: Use project code formatting on tests
...
v2: Increase line length, and add to formatting script (rpavlik)
2020-06-17 17:32:23 -05:00
Ryan Pavlik
726e446421
st/oxr: Make sure to clear action state metadata in case input is not active.
...
Also addresses some review comments on earlier changes.
2020-06-17 17:27:59 -05:00
Jakob Bornecrantz
5443e3a069
st/oxr: Work around stict-aliasing warning (NFC)
2020-06-17 12:20:30 +01:00
Christoph Haag
7a1dbbe8a1
st/oxr: Ensure quaternion is normalized in xrLocateViews()
...
In rare cases the state tracker's pose transformations resulted in a quaternion
that accumulated float precision errors such that the norm of the quaternion was
not within float precision of 1.0 anymore.
Introduce a function math_quat_ensure_normalized() that can be used after multiple
operations have been performed on a quaternion.
2020-06-17 13:03:34 +02:00
Ryan Pavlik
876c8bc5d7
inc/xrt: Remove now-unneeded enum.
2020-06-17 11:48:43 +01:00
Jakob Bornecrantz
17f40ecc26
st/oxr: Use the transformed boolean value
2020-06-17 11:48:43 +01:00
Ryan Pavlik
1a5d31b82b
st/oxr: New input transform implementation, fixes conformance failures.
...
Includes unit tests for oxr_input_transform, add to CI
This is a revised implementation using "variants" instead of
"inheritance" in a linked-list.
2020-06-17 10:03:32 +00:00
Christoph Haag
fb103659ef
build: Support building with v4l2 installed but driver disabled
2020-06-17 11:33:13 +02:00
Ryan Pavlik
adbafad079
st/oxr: Rename the remaining oxr_source things to oxr_action
2020-06-16 16:42:38 -05:00
Jakob Bornecrantz
d778c236fe
c/client: A working but non-spec conforming way to get Vulkan clients working
2020-06-16 16:33:04 +01:00
Jakob Bornecrantz
04c150a50d
xrt: Add new error and types for Vulkan command buffers
2020-06-16 00:01:48 +00:00
Benjamin Saunders
f81f568931
aux/vk: Add helper to translate usage bits to Vulkan bits
2020-06-16 00:01:48 +00:00
Benjamin Saunders
fe734bb6e2
aux/vk: Add functions to create semaphores from FDs
2020-06-16 00:01:48 +00:00
Benjamin Saunders
3f744331e1
aux/vk: Declare consistent usage for xr swapchain images
2020-06-16 00:01:48 +00:00
Benjamin Saunders
27d2163f37
aux/vk: Delete nonsensical image usage case
2020-06-16 00:01:48 +00:00
Benjamin Saunders
f45f482d5e
aux/vk: Store Vulkan queue handle directly
2020-06-16 00:01:48 +00:00
Jakob Bornecrantz
65dcc82e3a
comp+ipc: Respect view space layer flag
2020-06-15 23:59:04 +00:00
Jakob Bornecrantz
abf8d5b8bd
st/oxr: More correctly handle spaces for layers
2020-06-15 23:59:04 +00:00
Jakob Bornecrantz
fbd41e0413
xrt: Add new layer flag for view space poses
2020-06-15 23:59:04 +00:00
Ryan Pavlik
1738329138
st/oxr: Give oxr_action and oxr_action_set ref-counted backing data
2020-06-15 18:11:33 -05:00
Ryan Pavlik
640fa1bbe5
st/oxr: Rename the action set and action keys to distinct names.
2020-06-15 17:09:20 -05:00
Ryan Pavlik
2f8d1a54a5
st/oxr: Reparent action set/action attachment.
...
They are no longer a linked list and a handle, but simple dynamic arrays.
2020-06-15 17:09:15 -05:00
Ryan Pavlik
894aa8d61f
st/oxr: Rename some types, functions, and variables for clarity
2020-06-15 17:08:05 -05:00
Ryan Pavlik
6fe801e766
st/oxr: Re-use a structure
2020-06-15 17:04:00 -05:00
Ryan Pavlik
6be05e2107
st/oxr: Factor out source cache teardown function
2020-06-15 17:04:00 -05:00
Ryan Pavlik
821706e0e4
u/hashmap: Add "empty" function.
...
Used for cleanup assertions to start with: i.e. at some known point,
the hash map should be empty.
2020-06-15 17:04:00 -05:00
Ryan Pavlik
4a4bed8df4
st/oxr: Handle treadmill user path
2020-06-15 17:04:00 -05:00
Ryan Pavlik
2a2157af66
st/oxr: Clean up comments
2020-06-15 10:46:29 -05:00
Ryan Pavlik
79b2cf6703
inc/xrt: Improve docs
2020-06-15 10:36:28 -05:00
Christoph Haag
8141a3c761
ipc: Reset waitframe semaphore when client disconnects
...
The semaphore was usually kept at a value of 1 after a client disconnected,
meaning the next client to connect was never blocked on it.
2020-06-15 15:47:56 +02:00
Jakob Bornecrantz
cbb91904e9
st/oxr: Remove old validation that's now done in api function
2020-06-14 23:01:13 +01:00
Jakob Bornecrantz
2dcf4a819b
st/oxr: Improve xrSuggestInteractionProfileBindings validation of input
2020-06-14 23:01:13 +01:00
Gonzalo Aguilar Delgado
cdde7cd2c2
FIX #88 : Add required dependencies
2020-06-13 17:05:14 +00:00
Jakob Bornecrantz
e4a4a5e7b2
st/oxr: Use correct enum type when converting from eye visibility NFC
2020-06-13 13:58:14 +01:00
Ryan Pavlik
172ff0f434
ipc: Simplify code by just copying a structure.
2020-06-09 17:13:06 -05:00
Ryan Pavlik
1881bb6357
ipc: Further de-duplication of structures
2020-06-09 17:07:22 -05:00
Ryan Pavlik
b6b5052d48
ipc: Remove structs that effectively duplicate xrt_layer_data
...
The only non-duplicate members are the swapchain IDs,
so store those in their own array as already done elsewhere in the
codebase.
2020-06-09 17:07:22 -05:00
Ryan Pavlik
f407fb9461
ipc: Doc comments
2020-06-09 17:07:22 -05:00
Ryan Pavlik
eaa4c186ce
ipc: Port to using xrt_sub_image where possible.
...
This highlighted several places where we are not considering an image rect,
but possibly should be.
2020-06-09 16:26:01 -05:00
Ryan Pavlik
26ab046fba
comp: Remove no-longer-needed comp_layer_quad struct.
...
Replaced by xrt_comp_layer_quad.
Also add some comments.
2020-06-09 16:19:39 -05:00
Ryan Pavlik
7446dc08d5
xrt: Rename output parameter of acquire_image to out_image.
...
As is tradition.
2020-06-09 15:56:26 -05:00
Ryan Pavlik
03f85fcd0a
inc/xrt: Doc comment improvements
2020-06-09 15:52:33 -05:00
Ryan Pavlik
d7562ba65c
fixup commit
2020-06-09 15:32:51 -05:00
Ryan Pavlik
8ffad1112f
inc/xrt: Update docs to fix Doxygen warnings
2020-06-09 15:32:39 -05:00
Ryan Pavlik
e0e5aeceda
xrt: name xrt_swapchain pointers consistently "xsc" or similar.
...
As is tradition.
2020-06-09 15:29:46 -05:00
Jakob Bornecrantz
45c977d199
xrt: Introduce xrt_sub_image and xrt_layer_projection_view_data
2020-06-09 20:32:53 +01:00
Jakob Bornecrantz
259bd52dbd
st/oxr: Convert layer bits from OpenXR to XRT
2020-06-09 19:04:48 +00:00
Jakob Bornecrantz
55e026245a
xrt: Use new xrt_layer_data in layer functions
2020-06-09 19:04:48 +00:00
Jakob Bornecrantz
320c9ab3cb
ipc+comp: Use new xrt_layer_data and friends struct
2020-06-09 19:04:48 +00:00
Jakob Bornecrantz
5912964ded
ipc+comp: Even more make layers the same
2020-06-09 19:04:48 +00:00
Lubosz Sarnecki
08d81e5950
ipc+comp: Make layer structs more consistent.
...
Add missing fields.
Sort layer struct members.
ipc/protocol: Move xdev_id and name to common layer struct.
2020-06-09 19:04:48 +00:00
Jakob Bornecrantz
15be0209b9
xrt: Introduce xrt_layer_[quad|stereo_projection]_data struct
2020-06-09 19:04:48 +00:00
Lubosz Sarnecki
cbb8573d35
xrt: Move layer enums to compositor header.
2020-06-09 19:04:47 +00:00
Lubosz Sarnecki
b1d39e7f07
xrt: Move layer enum to xrt namespace.
2020-06-09 19:04:47 +00:00
Ryan Pavlik
435f6c5c89
build: Allow enabling inter-procedural optimization in CMake builds, if supported.
2020-06-09 12:03:08 -05:00
Christoph Haag
bc995e3aab
ipc: Return XR_ERROR_INSTANCE_LOST instead of SIGABRT on the client side
2020-06-05 16:06:32 +02:00
Christoph Haag
cc9b415a8f
xrt: Add xrt_result_t return type to many functions
...
Many functions returned void and were assumed to always succeed, and some functions
returned only a bool to indicate vague success/failure.
Now that these functions get piped over IPC all of them have to be able to indicate
an IPC failure like for example an unreachable service.
With the xrt_result_t return type they now have the opportunity to report various
types of failures.
2020-06-05 16:06:32 +02:00
Christoph Haag
db5db10a19
ipc: Replace ipc_result_t with global xrt_result_t
...
Functions down the line should be able to fail and return a status.
They can be called either through IPC or directly depending on compile settings,
therefore we need an internal result type for various XR_ERROR_* errors, but also IPC failure.
For now functions in ipc_client_utils.c only return XRT_SUCCESS or XRT_ERROR_IPC_FAILURE.
If there is no IPC failure, the generated protocol will extract and return the called functions'
actual return value from the reply.
v2: make failure results negative
2020-06-05 16:02:38 +02:00
Jakob Bornecrantz
dab96ef356
st/oxr: Validate view configuration type
2020-06-04 21:56:08 +00:00
Jakob Bornecrantz
077087bb15
xrt: Introduce xrt_comp_fd_destroy to avoid some error prone casting
2020-06-04 16:37:06 +00:00
Ryan Pavlik
c39df58763
st/oxr: Additional doxygen improvements.
2020-06-03 17:26:35 -05:00
Ryan Pavlik
4ee0ad7767
comp/client: Decrease visibility of downcast helpers.
2020-06-03 16:28:36 -05:00
Ryan Pavlik
d0468a7697
inc/xrt: Remove no-longer-needed fd-related downcast helpers.
2020-06-03 16:28:36 -05:00
Ryan Pavlik
cc609f5fb7
comp/client: Use helper functions, comment.
2020-06-03 16:28:36 -05:00
Ryan Pavlik
0f7fe8f3fa
inc/xrt: Add a specialized create_swapchain helper for xrt_compositor_fd
2020-06-03 16:28:36 -05:00
Ryan Pavlik
b38a8e8c24
targets/service: Remove unneeded xrt_prober_create function.
2020-06-03 16:28:21 -05:00
Ryan Pavlik
bc6cc85e7d
xrt: Improve doxygen documentation.
2020-06-03 16:28:18 -05:00
Lubosz Sarnecki
435d5a9b9e
c/comp: Remove internal Vulkan validation init.
...
Instead of maintaining this chunk of code and build options, the Vulkan
loader can be used to load up validation. This has the advantage that no
layer name needs to be hard coded inside Monado, which was subject of
change recently.
Instead of using our own environment variable we can easily set the one
from the loader, e.g. `VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation`.
2020-06-03 11:17:51 +00:00
Jakob Bornecrantz
9f8761bd50
st/oxr: Tiny improvement to validation message
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
3fde4a0651
st/oxr: Update copyright in files touched by this MR
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
a5d64e6565
st/oxr: Some minor spelling changes
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
a36753443a
st/oxr: Make all oxr_error calls uniform and improve output
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
f4fadc6f55
st/oxr: Validate xrSuggestInteractionProfileBindings better
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
6ff4b23a76
st/oxr: Add a lightweight function to test for XrPath validness
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
2b60f70d30
st/oxr: Validate attachmentness of action sets and actions better
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
6fc410dadd
st/oxr: Do dup checking on actions and action sets
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
e5c9636f10
st/oxr: Correct the error messages on sub action paths errors
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
6d61b9dec2
st/oxr: Correct localized name validation
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
a69cae7516
st/oxr: Improve subImage bounds checking
2020-06-03 09:30:18 +01:00
Jakob Bornecrantz
981bae8d0a
st/oxr: Return correct error on bad sub action path
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
00818881de
st/oxr: Use correct path for gamepad
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
57af7a7ce4
st/oxr: Correctly wait with emitting sync event
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
f0e160f45c
st/oxr: Improve the xrGetReferenceSpaceBoundsRect stub-ness
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
d693bc2ef9
st/oxr: Enforce static swapchain acquire semantics
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
cdfd03a762
st/oxr: Overhaul the acquire, wait, release handling
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
b3523a7259
st/oxr: Protoct event queue with a mutex
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
76e4092e30
st/oxr: Purge event queue of destroyed sessions
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
185036489c
st/oxr: Ensure get gfx requirements has been called
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
12d78144f6
st/oxr: Verify XrViewConfigurationType in xrEnumerateEnvironmentBlendModes
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
fb867b02c3
xrt: Remove array_size field on xrt_swapchain
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
09baeb91bc
c/swapchain: Close and remaining open FDs
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
753b910b5a
c/swapchain: Don't only give out the zero index
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
5b0085f1c1
c/client: Mark consumed FDs as invalid
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
9ec0b559d4
ipc/util: Don't follow null pointers and add alignment paranoia
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
05827abd8e
ipc/server: Fix swapchain handling
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
ebd5773fb8
util: Add function for u_hashset to allocate a item
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
0d2a24b9a0
util: Add a index fifo
2020-06-02 13:02:04 +01:00
Jakob Bornecrantz
371622c199
d/psvr: Normalize rotation
2020-06-02 13:02:04 +01:00
Lubosz Sarnecki
7186bddf60
c/comp+ipc: Use array indices again.
...
This fixes a regression introduced by the IPC and layer rendering
patchsets and passes the array_index to the correct places, so the
correct VkImageView is used instead of the one with index 0.
2020-06-02 12:42:42 +02:00
Christoph Haag
f68252bfbe
st/oxr: Check quadlayer swapchain for NULL
2020-06-01 18:38:54 +02:00
Jakob Bornecrantz
77c2b9cb5d
c/main: Include <math.h> in comp_layer_renderer.c
2020-05-29 23:37:22 +01:00
Jakob Bornecrantz
ace4d0e825
os/threading: Incude xrt_compiler.h
2020-05-29 23:36:23 +01:00
Christoph Haag
6045742561
st/oxr: Translate relation_flags in oxr_space_locate()
2020-05-29 01:46:42 +02:00
Christoph Haag
7fe0f3610b
st/oxr: Fill entire xrt_space_relation in oxr_xdev_get_pose_at, not just pose
...
In particular the relation_flags indicate whether the pose is valid or a fallback pose.
2020-05-29 01:25:57 +02:00
Christoph Haag
f10b341f57
st/oxr: Don't assert on invalid pose
...
ensure_valid_position_and_orientation() inserts fallback poses when
driver reported poses are invalid.
2020-05-29 01:09:54 +02:00
Christoph Haag
c9b692903c
st/oxr: Don't indiscriminately set orientation & position to valid in oxr_space_action_relation()
2020-05-29 01:02:31 +02:00
Christoph Haag
3bdc57c4b3
st/oxr: Don't indiscriminately set orientation & position to valid in ensure_valid_position_and_orientation()
2020-05-29 00:57:35 +02:00
Christoph Haag
384114b821
d/survive: Don't invert valid position condition
2020-05-29 00:35:58 +02:00