Ryan Pavlik
66811b436a
xrt: Have the vk_helper vk_create_device take in a list of device extensions, and fix usages.
2020-11-23 14:27:21 -06:00
Ryan Pavlik
6c2b5d6614
comp/main: Clean up lists of extensions in main compositor
2020-11-23 14:27:21 -06:00
Ryan Pavlik
af8459e407
inc/xrt: Comments
2020-11-23 14:18:20 -06:00
Ryan Pavlik
69a33c642d
comp/client: Clean up Vulkan extension list, and add Windows extensions.
2020-11-23 14:18:20 -06:00
Christoph Haag
d3ccbce76c
build: meson: Add remote driver build
2020-11-20 16:14:02 +01:00
Jakob Bornecrantz
9bf58ec275
c/main: Make COMP_ERROR respect log level
2020-11-20 03:20:33 +00:00
Jakob Bornecrantz
6902f6d7a3
c/render: Change some COMP_ERROR to VK_ERROR
2020-11-20 03:20:33 +00:00
Jakob Bornecrantz
363703602e
c/main: Tidy comp_target_swapchain
2020-11-20 03:20:33 +00:00
Jakob Bornecrantz
ea723240e3
c/main: Tidy comp_android_window
2020-11-20 03:20:33 +00:00
Jakob Bornecrantz
f4c1ebe90c
c/main: Remove vk field from comp_target_swapchain
2020-11-20 03:20:33 +00:00
Jakob Bornecrantz
d60ae941f1
c/main: Remove comp_window struct
2020-11-20 03:20:33 +00:00
Jakob Bornecrantz
9302bfa028
c/main: Move c field from comp_window to comp_target
2020-11-20 03:20:33 +00:00
Jakob Bornecrantz
e8360c013d
c/main: Refactor vk_swapchain into comp_target_swapchain
2020-11-20 03:20:33 +00:00
Jakob Bornecrantz
6260248d20
c/main: Introduce comp_target struct
2020-11-20 03:20:33 +00:00
Jakob Bornecrantz
78f7ad7301
c/main: Tidy vk_swapchain a bit
2020-11-19 01:13:23 +00:00
Jakob Bornecrantz
ef6c8430d2
m/space: Make sure to not drop positions
2020-11-18 18:05:07 +00:00
Jakob Bornecrantz
d1aa04e402
st/gui: Add remote hand tracking controls
2020-11-18 17:37:39 +00:00
Jakob Bornecrantz
5ce0a0b3ab
d/remote: Add hand tracking support
2020-11-18 17:37:39 +00:00
Jakob Bornecrantz
e0a7df0f1d
st/oxr: Make sure to restore old EGL display/context/drawables when creating a EGL compositor
2020-11-15 22:47:42 +00:00
Christoph Haag
a2b67ab3fe
d/ohmd: Rotate rift s display right, not left
2020-11-12 16:04:00 +01:00
Christoph Haag
2efba6451e
steamvr: support rotated displays and direct mode
...
Monado now calculates OpenHMD viewport dimensions and offsets correctly, we can pass those through.
The rotation of the rendered texture is performed with the distortion function.
v2: Use rotation matrix multiplication for distortion rotation
2020-11-12 16:04:00 +01:00
Christoph Haag
7ef8d1231d
d/ohmd: Update display rotation code
2020-11-12 16:04:00 +01:00
Christoph Haag
9e788df463
xrt: Remove lens center from xrt_view
...
It's only used internally in drivers now.
2020-11-12 16:04:00 +01:00
Christoph Haag
0af755814c
xrt: Improve comment documenting xrt_view::viewport
2020-11-12 16:03:27 +01:00
Christoph Haag
c7ebf91821
xrt: Improve comment documenting xrt_view::display
2020-11-12 16:03:27 +01:00
Christoph Haag
1ad25d1050
xrt: Document that xrt_hmd_parts::screens dimensions are before rotation
2020-11-12 16:03:27 +01:00
Lubosz Sarnecki
8d628c43a9
ipc/server: Port printf calls to static u_logging.
...
Make messages more consistent.
2020-11-12 15:11:40 +01:00
Lubosz Sarnecki
23aa3652a3
ipc: Port to u_logging.
2020-11-12 15:11:40 +01:00
Ryan Pavlik
3328688f73
t/service-lib: Simplify.
2020-11-10 18:44:03 +00:00
Ryan Pavlik
86a19e6697
gradle: Remove unused dependencies.
2020-11-10 18:44:03 +00:00
Ryan Pavlik
451a9c5150
android: Update to AboutLibraries 8.5.0
...
This includes my submission allowing licenses to be
included explicitly in the gradle files.
2020-11-10 18:44:03 +00:00
Ryan Pavlik
5115124bb3
aux/android: Factor out a "native counterpart" class.
2020-11-10 18:44:03 +00:00
Christoph Haag
2082eddb65
steamvr: Fix running without controllers
2020-11-10 15:43:07 +01:00
Ryan Pavlik
a792b08ed7
aux/vk: Minimal, untested implementations of these for Windows - fixes build
2020-11-10 03:09:07 +00:00
Ryan Pavlik
dde20c14d3
t/oxr_android: Fix Doxygen warning.
2020-11-10 03:09:07 +00: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
Ryan Pavlik
cc15bfa7ed
a/util: FIx ambiguity of directories for docs.
2020-11-10 03:09:07 +00:00
Ryan Pavlik
4c4a204f22
cmake: Fix warning in SteamVR driver target
2020-11-10 03:09:07 +00:00
Ryan Pavlik
8f10d9c2b8
u_hand_tracking: Fix usage of M_PI
2020-11-10 03:09:07 +00:00
Ryan Pavlik
a345b07308
d/psvr: Fix typo in config/debug macro
2020-11-10 03:09:07 +00:00
Ryan Pavlik
d2955a3967
aux/util: Adjust conditional log macros to handle msvc correctly
2020-11-10 03:09:07 +00:00
Jakob Bornecrantz
135c93288b
d/psvr: Rename some hid variables for better code
2020-11-09 23:42:15 +00:00
Jakob Bornecrantz
aa7f922e35
os/time: Add a Linux specific way to get the realtime clock (for RealSense)
2020-11-09 23:42:13 +00:00
Jakob Bornecrantz
4bbe25148b
os/time: Make timespec argument const
2020-11-09 23:42:11 +00:00
Ryan Pavlik
83b91ea4a9
d/ns: Some clang-tidy cleanups
2020-11-09 16:18:00 -06:00
Ryan Pavlik
97d711a9ef
d/hdk: Appease clang-tidy a little more.
2020-11-09 16:18:00 -06:00
Ryan Pavlik
7cebdb4763
aux/os: More defines to calm clang-tidy.
2020-11-09 16:18:00 -06:00
Ryan Pavlik
b855fd1ae2
a/util: Appease clang-tidy with a define for ns per second
2020-11-09 16:18:00 -06:00
Ryan Pavlik
ab82c5b8e2
u_debug: Remove duplicate declaration
2020-11-09 16:18:00 -06:00
Ryan Pavlik
4c0d71aa30
d/ns: const correctness cleanup for math.
2020-11-09 16:17:57 -06:00
Ryan Pavlik
d4011ed78a
d/ns: Fix memory leak in math
2020-11-09 16:06:14 -06: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
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