Commit graph

137 commits

Author SHA1 Message Date
Jakob Bornecrantz 64e1dd3127 cmake: Print out if we have GStreamer (NFC) 2021-05-26 13:42:26 +01:00
Jakob Bornecrantz b3455555c2 u/trace_marker: Use Percetto/Perfetto for tracing 2021-05-05 17:00:35 +01:00
Ryan Pavlik e82fafb186 cmake: Allow C++17 mode on all platforms, all modules.
Remove per-module C++17 settings.
2021-04-30 15:37:04 -05:00
Ryan Pavlik 3e127a1fa3 build: Move finding Python earlier, so it builds in Android Studio on Linux. 2021-04-27 16:43:38 -05:00
nima01 027ce21bd5 d/wmr: Initial 3DoF WinMR driver
Only supports HP Reverb G1 and G2 for now.

Squash of the following commits:

Initial boilerplate code for HP Reverb G1 driver implementation
Detect and open MS HoloLens Sensors interface
Power up HMD display when headset is detected, and som general code cleanup
Add Reverb G2 PID
reverb_g1: Fix defines
reverb_g1: Run clang format
wmr: Rename Reverb G1 driver to WMR driver
d/wmr: Code style
d/wmr: Flesh out driver a bit more
d/wmr: Code style
Add basic 3dof rotational tracking
d/wmr: Code style
d/wmr: More tidy
xrt: Remove XRT_DEVICE_REVERB_G1
d/wmr: Even more tidy
d/wmr: Changes for Reverb G2
d/wmr: Fixes since last commit
wmr: Fix the meson build and auto-enable the driver
d/wmr: Sleep for compositor to get modes
d/wmr: Use os_hid for control device
d/wmr: Remove hidapi as a dependancy
d/wmr: Move sensor reading to own thread and fix locking
d/wmr: Read from control device and handle more unknown messages
d/wmr: Decode IPD value from control device
d/wmr: Remove all left over dummy driver fields

Co-author: nima01 <nima_zero_one@protonmail.com>
Co-author: Jakob Bornecrantz <jakob@collabora.com>
Co-author: Jan Schmidt <jan@centricular.com>
2021-04-19 13:33:01 +00:00
Christoph Haag 4ea68b89a4 xrt: Add u_process, backed by libbsd's pidfile
Delete stale ipc files in ipc server when not already running.

If built without libbsd, fall back to previous behavior of complaining about existing ipc files and exit.
2021-04-15 21:42:06 +00:00
Moses Turner 55b86fe815 d/ulv2: Create the driver.
Co-authored-by: Moses Turner <mosesturner@protonmail.com>
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2021-04-01 02:10:33 +02:00
Mateo de Mayo 0340ae3cc8 d/qwerty: Add Qwerty driver initial boilerplate
The Qwerty driver will emulate an HMD and controllers through the use
of mouse and keyboard, and in particular, using the SDL key events
generated from the debug GUI.
2021-03-29 15:41:25 -03:00
Christoph Haag 66c1fdaf1f build: Depend XRT_FEATURE_SERVICE on XRT_FEATURE_OPENXR 2021-03-18 19:23:14 +01:00
Christoph Haag 9b5a5ae30d build: XRT_FEATURE_SERVICE requires XRT_FEATURE_OPENXR
Avoid silently building when XRT_FEATURE_SERVICE is enabled, but XRT_FEATURE_OPENXR is not.
2021-03-18 19:19:53 +01:00
Christoph Haag fb0e1ab0ce build/cmake: Print if systemd is found 2021-03-10 01:58:41 +01:00
Jakob Bornecrantz 3077660f1d u/tracing: Add trace marker code 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz d52c120c13 cmake: Output XRT_FEATURE_COLOR_LOG status 2021-02-24 01:23:55 +00:00
Christoph Haag 2fcce7380f build/cmake: Don't use PythonInterp on old cmake
It literally does not work to find python 3.

https://cmake.org/cmake/help/latest/module/FindPythonInterp.html

> Note
> A call to find_package(PythonInterp ${V}) for python version V may find a python executable
> with no version suffix. In this case no attempt is made to avoid python executables from other
> versions. Use FindPython3, FindPython2 or FindPython instead.

Fixes build on Ubuntu 18.04
2021-02-03 00:19:15 +01:00
Jakob Bornecrantz 35da4a51ea d/vf: Refactor code to add videotestsrc capability and break out gstreamer detection 2021-02-02 13:53:48 +00:00
Jakob Bornecrantz 8c6075e3b6 monado: Update version 2021-01-28 16:02:50 +00:00
Jakob Bornecrantz 1c1a93df58 cmake: Tidy 2021-01-27 16:09:07 +00:00
Christoph Haag 9481013081 comp: add VkDisplayKHR window backend
Must be activated/selected with an env var for now: XRT_COMPOSITOR_FORCE_VK_DISPLAY=2
2021-01-19 17:00:46 +00:00
Lubosz Sarnecki 0e4e4efe79 cmake: Turn on XRT_FEATURE_OPENXR_LAYER_EQUIRECT1 by default. 2021-01-14 13:54:19 +01:00
Christoph Haag 345e9eab56 build/cmake: Enable survive driver when libsurvive is installed
The same change was recently done in meson in 8c4b6cef

closes #111
2021-01-05 22:56:00 +01:00
Jae Lee a71de192e0 illixr: Add initial integration. 2020-12-29 23:44:57 +00:00
Lubosz Sarnecki 8bdff9a61a u/logging: Implement optional color logging.
Check if stderr is a tty.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki c8bdfae83e src: Consistently append 1 to equirect1 code.
Rename XRT_FEATURE_OPENXR_LAYER_EQUIRECT_LEGACY to XRT_FEATURE_OPENXR_LAYER_EQUIRECT1.
Use correct define in verify_equirect1_layer function.
Rename equirect to equirect1.
meson: enable equirect1 by default.
2020-12-14 18:59:28 +00:00
Lubosz Sarnecki f334b8b6c7 src: Consistently append 2 to equirect2 code.
Rename XRT_FEATURE_OPENXR_LAYER_EQUIRECT to XRT_FEATURE_OPENXR_LAYER_EQUIRECT2.
Rename equirect to equirect2.
Rename shader files.
2020-12-14 18:59:28 +00:00
Jakob Bornecrantz 1e995dbbe3 cmake: Turn error into warning 2020-12-09 21:03:50 +00:00
Jakob Bornecrantz 23f8991fb8 cmake: Make sure we have XRANDR if we have XLIB 2020-12-09 19:15:16 +00:00
Christoph Haag f0d21c1dcc d/vf: Add video file playback driver 2020-12-07 12:30:26 +00:00
Christoph Haag 717d3a27ef d/ht: Add hand tracking driver code skeleton 2020-12-07 12:30:26 +00:00
Ryan Pavlik a6bedb9bb8 cmake: Handle SDL2 static builds 2020-12-06 23:07:05 +00:00
Ryan Pavlik 0cb64ce5bd comp/main: Windows work - got a window to appear! 2020-12-06 23:07:05 +00:00
Ryan Pavlik db3e368249 cmake: Do not build SteamVR plugin on Android. 2020-11-10 18:44:03 +00:00
Ryan Pavlik 0fa4b58acd build: Disable IPC on Windows. 2020-11-10 03:09:07 +00:00
Ryan Pavlik 8f838c7dbd cmake: Disable remote driver on things other than Linux and Android for now. 2020-11-10 03:09:07 +00:00
Christoph Haag cb62514fd0 steamvr: Implement basic SteamVR driver
v3:
  targets: Add Monado-SteamVR driver target
  st/ovrd: Add OpenVR driver header
  build: Factor out sdl hack into lib_sdl2_hack and update steamvr build
  build: Revert lib_sdl2_refactor
  steamvr: Emulate Index Controller by default
  steamvr: Use oxr_handle_destroy instead of exposing oxr_instance_destroy
  steamvr: don't use oxr internals
  steamvr: communicate 3dof tracking to steamvr
  steamvr: use util functions for device assignment and tracking origin setup
  steamvr: Install plugin to <prefix>/share/steamvr-monado
  steamvr: Use thread for updating poses every 1ms

Makes a big difference for the Index @144Hz on the vive driver.
Still somewhat choppy on survive driver - prediction should solve it.

Main-author: Christoph Haag <christoph.haag@collabora.com>
Co-author: Jakob Bornecrantz <jakob@collabora.com>
2020-11-09 19:21:27 +00:00
Jakob Bornecrantz 151a03fb48 monado: Update version 2020-11-04 13:40:50 +00:00
Jakob Bornecrantz 3dfa7167b2 monado: Update version 2020-11-02 20:24:48 +00:00
Jakob Bornecrantz d9e90863d3 cmake: Make sure we are looking for Python 3.8 and 3.9 2020-11-02 16:35:43 +00:00
Lubosz Sarnecki f4113ef15b d/android: Add Android sensors driver. 2020-10-30 18:20:35 -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 0f43bbe924 inc/xrt: Add Android config header to store package name. 2020-10-28 09:32:49 -05:00
Ryan Pavlik 69b35f9857 build: Actually search for Python 3 interpreter before using it. 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 cc10a9368d cmake: Enable equirect2 2020-10-26 01:34:10 +00:00
Jakob Bornecrantz 2528583c55 xrt: Add git tag/description 2020-10-20 17:43:11 +01:00
Jakob Bornecrantz 3483a7286d d/remote: Add remote driver 2020-10-15 21:07:40 +00:00
Ryan Pavlik 8b416da12b xrt: Add Win32 Vulkan platform define when needed 2020-10-08 17:26:22 -05:00
Jakob Bornecrantz 942ba178a0 st/oxr: Add extension support for XR_KHR_composition_layer_equirect2 2020-10-05 16:45:48 +01:00
Ryan Pavlik c0cb04d59a build: Make Vive driver Linux-only for now.
Uses Linux byteorder includes.
2020-09-18 18:25:27 +01:00
Ryan Pavlik 6ad46cb1b2 build: Be able to build against pthreads4w 2020-09-18 18:25:27 +01:00
Ryan Pavlik 4894aaa8db build: Only set the layer type config variables if they aren't already set. 2020-08-26 11:27:10 -05:00