Commit graph

2015 commits

Author SHA1 Message Date
Christoph Haag f5ef3985ba xrt: Add support for locating hand joints in action spaces 2020-11-23 20:42:54 +00:00
Christoph Haag 95af586654 aux: Add m_space_graph_add_inverted_relation 2020-11-23 20:42:54 +00:00
Christoph Haag d6b072805a aux: Add m_space_relation_invert 2020-11-23 20:42:54 +00:00
Ryan Pavlik 4307ee8a08 st/oxr: Fix exporting of negotiate function. 2020-11-23 14:27:21 -06:00
Ryan Pavlik de36a64f27 st/gui: Don't export symbols from cimgui 2020-11-23 14:27:21 -06:00
Ryan Pavlik 883fe27aed t/gui: Fix linking on Windows 2020-11-23 14:27:21 -06:00
Ryan Pavlik 147dcc24e0 comp/main: Fix finding M_PI 2020-11-23 14:27:21 -06:00
Ryan Pavlik 8b4c473233 comp/main: Change annotation for struct packing for MSVC compatibility. 2020-11-23 14:27:21 -06:00
Ryan Pavlik 6fbd12bde4 comp/main: near and far are keywords on Windows. 2020-11-23 14:27:21 -06:00
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