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
Ryan Pavlik
b7e9c9cc67
build: Don't look for packages with pkg-config on Android.
...
Things like ffmpeg aren't there but were found on the host.
2020-08-26 16:31:30 +01:00
Ryan Pavlik
51d693b66a
cmake: Reduce requirement to allow Android build
2020-08-26 16:31:11 +01:00
Christoph Haag
7295cfd2d5
Revert "xrt: Disable cylinder layers for now as the causes GPU hangs (NFC)"
...
This reverts commit 8c7aed827f
.
2020-08-26 16:00:02 +02:00
Jakob Bornecrantz
8c7aed827f
xrt: Disable cylinder layers for now as the causes GPU hangs (NFC)
2020-08-26 14:26:46 +01:00
Christoph Haag
316e6f957f
build: Enable depth layer in CMake build
2020-08-24 10:30:23 +02:00
Jakob Bornecrantz
6ae15ca5ab
build: Enable cylinder layer in CMake build
2020-08-21 12:18:09 +01:00
Jakob Bornecrantz
4a8ac6ebed
cmake: Add build flags for OpenXR layers
2020-08-11 01:48:31 +01:00
Ryan Pavlik
663f5467b4
build: More strict build flags
2020-08-05 20:50:00 +00: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
e2cb7578bc
build: Increase strictness of warnings.
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
9379248268
build: Add FindEigen3.cmake from upstream, to support pointing at the include dir.
2020-07-16 10:04:01 -05:00
Jakob Bornecrantz
0b2faa5ab9
build: Sort drivers in status message
2020-07-16 12:50:36 +01:00
Jakob Bornecrantz
75816ee4e6
build: Dump config vars
2020-07-16 12:01:02 +01:00
Jakob Bornecrantz
47606194da
build: Fix dependent option for compositor
2020-07-16 12:00:37 +01: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
44fe0e7709
build: Handle Android NDK better.
2020-07-14 16:37:55 -05:00
Jakob Bornecrantz
d1f30e4a5a
monado: Update version
2020-07-10 16:43:47 +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
Ryan Pavlik
bbe702475a
build: Tell CMake when we expect a config file rather than a find module.
...
This silences some very large annoying warnings at configure time.
2020-06-09 15:35:45 -05:00
Ryan Pavlik
435f6c5c89
build: Allow enabling inter-procedural optimization in CMake builds, if supported.
2020-06-09 12:03:08 -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
8e6592338f
monado: Update version
2020-05-29 11:00:22 +01:00
Ryan Pavlik
4638b0af7b
build: Switch all CMake options to XRT_... to match what's used in source.
...
Also revise other small related parts of the build to make them more clear and consistent.
2020-05-12 11:52:51 -05:00
Ryan Pavlik
aa809a99ea
build: Small tweak to conditional build flags
2020-05-12 11:46:53 -05:00
Christoph Haag
5908c33439
d/survive: Add survive driver
2020-05-09 13:12:06 +00:00
Ryan Pavlik
acbac4f1a6
t/service: Add ability to generate, link, install systemd unit files
2020-05-07 16:54:17 -05:00
Ryan Pavlik
5935fad73b
ipc: Add ability for service to be launched by systemd socket activation.
2020-05-07 16:54:11 -05:00
Jakob Bornecrantz
7c8a8a3f87
ipc: Add code to enable a service process
...
This enables out of process compositing.
2020-04-29 14:58:24 +01:00
Ryan Pavlik
47710e0532
t/openxr: Fix build without OpenGL
2020-04-28 21:36:46 +00:00
Ryan Pavlik
7fab448cf0
build: Support building with system cJSON.
...
Fixes #62 .
2020-04-24 20:34:53 +00:00
Lubosz Sarnecki
d752759cd2
cmake: Add pedantic warnings for C++.
2020-04-07 15:00:17 +02:00
Lubosz Sarnecki
4d0c49096d
comp/window_direct_mode: Use XCB/Xlib interop.
...
Since there currently is no Vulkan extension that takes XCB handles to
aqcuire the display Xlib interop needs to be used.
Before this patch Monado was opening connections for both APIs, which
introduced overhead.
Even though all XCB handles can be casted to Xlib ones, this cannot be
done with the main xcb_connection_t / Display. In it's design the
interop between both APIs can create a xcb_connection_t from a XCB
handle, but not the other way round. So in an interop case the Xlib
connection is the main one, since it's on a higher level.
More information on this can be found here:
https://xcb.freedesktop.org/MixingCalls/
Unfortunately the clean solution for this would be to specify a Vulkan
extension that takes XCB handles. This would make sense since Vulkan
is aware of XCB in other parts of the API as well. In Mesa the Xlib
structs will be ultimately casted to XCB.
2020-03-31 17:47:17 +02:00
Jakob Bornecrantz
a8a4d8c3dd
d/arduino: Add new flexible arduino based input device
2020-03-27 10:22:19 +00:00
Ryan Pavlik
09c189b6ba
build: Install more targets
2020-03-23 17:29:43 -05:00
Pete Black
b6613db5d4
d/dd: Add Daydream driver
2020-03-11 21:36:49 +00:00
Pete Black
6b4ec70d14
aux/os: Add D-Bus based BLE code
2020-03-11 21:36:49 +00:00
Ryan Pavlik
6b2b9c4ff4
build: Adjust usage of pkgconfig.
...
The existing thing would find pkg-config when cross-building for 32-bit,
but then immediately complain it wasn't found.
2020-03-03 17:30:45 -06:00
Ryan Pavlik
81d9983398
build: Improve handling of common dependencies, and portability
2020-03-03 10:33:14 +00:00
Ryan Pavlik
fdaede836c
build: Make it possible to turn off the main compositor lib and runtime target.
2020-03-03 10:33:14 +00:00
Jakob Bornecrantz
0619190d2b
build: Refactor how config defines are handled
...
With loads of changes from Ryan.
2020-03-03 10:33:14 +00:00
Jakob Bornecrantz
09aa8794b2
aux/vk: Refactor out helper code into own library
2020-03-02 11:58:40 +00:00
Jakob Bornecrantz
5a49fa9bc8
cmake: Build minimum version
...
Ubuntu 18.04 is the only debian based distro currently that doesn't have
cmake 3.13 packaged. And Ubuntu 18.04 is not supported for other reasons.
Closes #50
2020-02-13 09:46:54 +00:00
Jakob Bornecrantz
53201debdc
d/rs: Add a simple pure 6DOF device, for the T26[1|5] devices
2020-02-10 20:07:31 +00:00
Nova
981fe55a27
d/ns: Add North Star stub driver
2020-01-25 17:06:51 +00:00
Jakob Bornecrantz
356e4c18c1
d/dummy: Add dummy HMD driver
2020-01-25 14:42:02 +00:00
Ryan Pavlik
130a649f92
build: Move checking of sufficient enabled drivers to the drivers dir
2020-01-14 11:51:12 -06:00
Ryan Pavlik
639b524ec9
build: Adjust looking for OpenGL and EGL
2020-01-14 11:51:12 -06:00
Ryan Pavlik
286e11921c
build: Adjust options to be more complete.
2019-12-07 18:25:37 +00:00
Ryan Pavlik
60460c9c5e
build: Pass -Wl,--no-undefined when linking
2019-12-07 18:25:37 +00:00
Jakob Bornecrantz
76d6133142
cmake: Fix v4l2 flag not being set
2019-11-10 01:36:46 +00:00
Ryan Pavlik
e8660a18bd
build: Use CMAKE_POSITION_INDEPENDENT_CODE instead of target props.
...
Reduces repetitive code.
2019-11-01 16:51:54 -05:00
Christoph Haag
dfd6691d71
cmake: Add cmake option for psvr driver
...
Removes BUILD_WITH_HIDAPI option since only the psvr driver uses hidapi.
2019-10-31 02:12:27 +01:00
Christoph Haag
9f6b5ad841
cmake: Expand enabled drivers sanity check
...
Makes it possible to build monado with only one native driver enabled.
2019-10-31 01:50:30 +01:00
Christoph Haag
a9e6c24eb2
cmake: Add cmake option for hdk, psmv and hydra driver
2019-10-31 01:50:30 +01:00
Christoph Haag
0a39bd8600
cmake: Add cmake option for native vive driver
2019-10-31 01:17:11 +01:00
Lubosz Sarnecki
e063e8245e
d/vive: Add native driver for the Vive.
...
This adds a driver for the Vive family of devices based on Philipp
Zabel's ouvrt.
The driver currently only handles the IMU and main board report streams,
but is able to acquire the JSON configuration and utilize it for IMU
calibration as well as distortion configuration.
2019-10-22 19:18:47 +02:00
Jakob Borncrantz
0bc91ab1cd
cmake: Make sure to link to pthreads
2019-10-15 21:00:12 +02:00
Lubosz Sarnecki
979536dd4b
xrt/comp/cmake: Enable build of Wayland backend.
...
Add pkgconfig based Wayland build including protocol generation.
2019-10-02 12:22:42 +02:00
Lubosz Sarnecki
871f6bfc87
cmake: Remove unused and deprecated FindWayland.cmake script.
...
Martin Gräßlin's script from 2013 does not look for the
Wayland protocols directory and the scanner.
2019-10-02 12:22:36 +02:00
Jakob Bornecrantz
c295c8e6c9
xrt: Refactor meson and cmake (most) to fix cmake build
2019-09-27 12:19:48 +01:00
Jakob Bornecrantz
d848ea010f
xrt: s/XRT_BUILD_*/XRT_BUILD_DRIVER_*/g
2019-09-27 12:03:36 +01:00
Jakob Bornecrantz
44d58037b7
t/gui: Add SDL2 based GUI target
2019-09-15 18:52:17 +00:00
Jakob Bornecrantz
79402d0081
aux/track: Add stub calibration tracker
2019-08-20 13:07:42 +01:00
Benjamin Saunders
c111f528b8
oxr: Optionally install as the default runtime
2019-08-19 12:09:49 -05:00
Ryan Pavlik
853f8ab68e
d/hdk: Port to internal HID wrapper.
...
Not entirely feature-complete due to lack of access to descriptor strings.
2019-08-15 12:36:01 +00:00
Ryan Pavlik
2cd28914c7
d/hydra: Initially-functional multi-device Razer Hydra driver.
...
Not pretty - no filtering on tracking, coordinate system
probably a little bit wrong still, no hemisphere tracking,
but enough to show movement and resizing in hello_xr.
2019-07-29 03:01:57 +00:00
Jakob Bornecrantz
718a81608a
d/v4l2: Add new frameserver
2019-07-23 17:41:34 +01:00