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
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
Ryan Pavlik
1f0b43632c
build: Adjust OpenCV components add JPEG and use libusb cmake file
2019-06-28 17:38:32 +01:00
Ryan Pavlik
0d75b465bd
build: Move enabled-driver defines to a header, instead of compiler options for every target.
2019-06-26 10:52:27 -05:00
Jakob Bornecrantz
ec69936890
build: Revert "Only show the XRT_BUILD_ defines where they're needed."
...
This reverts commit 334d62dfcd
.
2019-06-26 16:17:06 +01:00
Ryan Pavlik
334d62dfcd
build: Only show the XRT_BUILD_ defines where they're needed.
2019-06-21 13:17:55 -05:00
Benjamin Saunders
e5325d5a66
oxr: Use absolute path to runtime in manifest by default
2019-06-19 08:15:08 -07:00
Ryan Pavlik
c5fea837f3
oxr: Allow relative vs absolute manifest path to be selected at configure time.
2019-06-19 08:15:08 -07:00
Jakob Bornecrantz
b71e143eaa
d/psmv: Add PS Move driver
2019-06-18 17:56:10 +01:00
Jakob Bornecrantz
42cddb2580
d/psvr: Add a experimental PSVR driver
...
Hidden behind a env variable.
2019-05-06 16:46:10 +00:00
Jakob Bornecrantz
ade0594914
build: Add libudev on Linux
2019-05-02 14:08:11 +01:00
Jakob Bornecrantz
9c05e853cc
build: Refactor flags and definitions (and fix fallout)
...
Defines:
* XRT_HAVE_[name] is a external dep indicator.
* XRT_DRIVER_[name] if a internal driver is built.
CMake variables:
* BUILD_WITH_[name] is a external dep indicator.
* BUILD_DRIVER_[name] tells if we should build a specific driver.
2019-04-29 17:18:09 +01:00
Jakob Bornecrantz
6f41fbc43d
build: Tidy whitespace
2019-04-24 02:19:53 +01:00
Jakob Bornecrantz
dfe5e3935f
build: Make libusb, libuvc, FFMPEG and OpenCV usable in build
...
Only libusb is required.
2019-04-24 02:19:53 +01:00
Ryan Pavlik
87d13d9a00
build: Remove unused BUILD_TESTS option.
...
BUILD_TESTING is the normal one used in CMake projects,
as far as I can tell.
2019-04-08 19:11:04 +00:00
Ryan Pavlik
5cfa0907b6
build: Use and obey config options for driver selection.
...
We had BUILD_WITH_OPENHMD but it was unused,
while the HDK driver always built if the deps were found.
2019-04-08 19:11:04 +00:00
Ryan Pavlik
eec53ca35d
build: Use FindOpenHMD.
...
Fixes a gripe/todo in the build system, too :D
2019-04-08 19:11:04 +00:00
Lubosz Sarnecki
00afe442f8
comp: Introduce XRT_COMPOSITOR_VULKAN_VALIDATION.
...
For enabling Vulkan validation during runtime.
Add CMake option to disable Vulkan validation at build time.
By default the DEBUG extension is enabled but the validation layers
are not when the ENV variable is not set to true.
2019-03-29 10:59:41 +01:00
Benjamin Saunders
f016492a81
build: Add missing GLX dependency
...
Fixes loading by applications that do not themselves link GLX.
2019-03-22 20:11:51 -07:00
Jakob Bornecrantz
15a97422ba
xrt: Add all of Monado
2019-03-18 05:52:32 +00:00