Commit graph

1135 commits

Author SHA1 Message Date
Lubosz Sarnecki 06ce79272d aux/vk: Add vk_check_error macro. 2020-05-11 20:21:58 +01:00
Lubosz Sarnecki 6aa1b4e571 aux/math: Add function to calculate view matrix from pose. 2020-05-11 20:21:58 +01:00
Lubosz Sarnecki 0b6d97ec8f aux/math: Add matrix_4x4 identity and matrix_4x4_muliply. 2020-05-11 20:21:58 +01:00
Lubosz Sarnecki 0e5d10ca39 c/renderer: Rename comment. 2020-05-11 20:21:58 +01:00
Lubosz Sarnecki 501d8dadd4 c/main: Split nvidia test to function. 2020-05-11 20:21:58 +01:00
Lubosz Sarnecki 03074cd52e st/oxr: Unreleased swapchain must return XR_ERROR_LAYER_INVALID. 2020-05-11 20:21:58 +01:00
Jakob Bornecrantz d8538d3a2f gui: Require OpenGL version 3.3 2020-05-11 18:13:49 +00:00
Christoph Haag 26539e79b6 ipc: Fix looking up tracking origins
Fixes #78
2020-05-09 21:14:24 +02:00
Jakob Bornecrantz cf3a337547 ipc: Be paranoid about tracking origins 2020-05-09 19:37:48 +01:00
Christoph Haag 5908c33439 d/survive: Add survive driver 2020-05-09 13:12:06 +00:00
Christoph Haag 5b2efcbb7a st/prober: Fix typo in error message 2020-05-09 13:12:06 +00:00
Jakob Bornecrantz 66bcdf712e ipc: Track tracking origins with variable tracking 2020-05-09 12:43:26 +01:00
Jakob Bornecrantz ee163cbdb2 ipc: Reflect tracking origins correctly 2020-05-09 12:43:26 +01:00
Jakob Bornecrantz 694d978e25 st/prober: Name the tracking origin and make offset editable 2020-05-09 12:43:26 +01:00
Ryan Pavlik 8f6b7b930a ipc: Output the attempted filename in the bind error message. 2020-05-08 14:53:03 -05:00
Jakob Bornecrantz e620fa9063 st/prober: Refactor JSON config loading so that we print less errors when we don't need the config 2020-05-07 22:25:44 +00:00
Jakob Bornecrantz 1744715a5d u/file: Do not print errors 2020-05-07 22:25:44 +00:00
Ryan Pavlik 83cace51d4 ipc: Add error message on bind failure. 2020-05-07 17:00:25 -05:00
Ryan Pavlik c4f8c7fdf7 ipc: Unlink on exit, not before start. 2020-05-07 16:55:10 -05: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
Ryan Pavlik d7e84cf5b5 build: Fix include directories for IPC server module 2020-05-07 15:46:29 -05:00
Ryan Pavlik b52b3ec649 meson: Improve build when sdl2 not available
Unfortunately doesn't fix 32-bit meson CI
2020-05-07 20:04:08 +00:00
Christoph Haag aaa2f0a0bd d/vive_controller: read from usb with timeout
This aligns with the vive HMD driver and fixes high CPU usage.
2020-05-07 21:24:43 +02:00
Christoph Haag dc4dcf15a9 d/vive_controller: Fix left index controller imu
The IMU in the left index controller has a different orientation
than the right one.
2020-05-05 19:50:20 +00:00
Christoph Haag f8b2e179cb d/vive_controller: index controller trackpad: send 0,0 position after release 2020-05-05 14:19:37 +00:00
Christoph Haag 344846b3e2 aux/vk: Print available GPUs with XRT_COMPOSITOR_PRINT_DEBUG
Useful for finding out a gpu index to use for XRT_COMPOSITOR_FORCE_GPU_INDEX.
2020-05-05 15:12:08 +02:00
Christoph Haag d95c77ad54 comp: Also enable vk debug print with XRT_COMPOSITOR_PRINT_DEBUG
This is useful because it prints which GPU the compositor runs on.
2020-05-05 15:12:08 +02:00
Ryan Pavlik 7df96234a2 build: Fix build with system cJSON.
Identified when building on Debian Salsa.
2020-05-04 21:44:40 +00:00
Christoph Haag a1b6efd16b d/vive_controller: Report zero values for trigger and trackpad
Turns out we actually want to know when theose transition into/over zero.
2020-05-04 21:25:03 +02:00
Jakob Bornecrantz 695ac70dab st/oxr: Silence warning about uninitialized variable and add todo (NFC) 2020-05-04 18:05:13 +01:00
Christoph Haag cf0e5d7861 st/oxr: store preferred path per binding, not per action
Fixes d62c2d2011

For any one action, multiple bindings may be suggested. The preferred/matched
input path depends on which binding is active.

Each bindings already stores a list of actions for which the suggested bindings
matched any of the input paths, just add a corresponding list *which* path matched.
2020-05-04 17:29:43 +02:00
Christoph Haag 2a58d1225f bindings: Don't create broken subpath for haptic output
This macro created two paths for haptics, the first of which was useless/wrong:
/user/hand/*/output/haptics/
/user/hand/*/output/haptics
2020-05-04 17:29:43 +02:00
Jakob Bornecrantz c582bde17a d/dd: Make touchpad a single input 2020-05-03 22:58:47 +00:00
Christoph Haag d62c2d2011 st/oxr: properly enable binding to /x and /y
Store Thumbstick, Trackpad etc. data internally in a vec2f.
The knowledge that a binding path ../x and ../y refers to the x and y components of this vec2f
is stored as an INPUT_REDIRECT_VEC2_X_TO_VEC1 or INPUT_REDIRECT_VEC2_Y_TO_VEC enum.

Actions now also store the index of the binding paths it matched to,
e.g. when an action binds ../trackpad/y to an input that provides bindings [../trackpad, ../trackpad/x, ../trackpad/y],
the index 2 is stored.

v2: Clarify preferred binding path index variable
2020-05-03 22:58:47 +00:00
Jakob Bornecrantz d8428b2544 ipc/client: Don't assert on devices with no output 2020-05-01 19:20:03 +01:00
Christoph Haag 7ab1ca727f ipc: Make send_and_get_reply thread safe
When multiple threads call OpenXR functions, make sure one thread
can not read the reply meant for another thread.

Unfortunately this also blocks other OpenXR functions from being
called while xrWaitFrame() is blocking.
2020-05-01 16:11:26 +02:00
Christoph Haag d491f59b55 ipc: Log unexpected messaging events as errors
Any of these unexpected events will likely lead to more errors down the line.
Always printing them as errors will make it easier to diagnose the ipc.
2020-05-01 16:11:00 +02:00
Christoph Haag a195f22bc3 ipc: disconnect client on xrDestroyInstance()
The service considers clients to be connected as long as the fd is not closed.
After destroying an XrInstance this prevents the client from creating a subsequent XrInstance.
2020-05-01 02:49:44 +02:00
Jakob Bornecrantz a4dcdf1f0b ipc/server: Improve error messages 2020-04-30 20:45:34 +01:00
Jakob Bornecrantz 6d770336b7 ipc/server: Pass in MSG_NOSIGNAL to not get SIGPIPEd 2020-04-30 20:44:35 +01:00
Jakob Bornecrantz a02293e8dd ipc: Improve swapchain handling a tiny bit 2020-04-30 20:44:35 +01:00
Jakob Bornecrantz 11539e28b7 ipc/server: Fix swapchain being swapped left and right 2020-04-30 14:00:27 +01:00
Ryan Pavlik 457d411016 comp: Remaining 32-bit warning fixes 2020-04-29 17:47:32 -05:00
Ryan Pavlik 233c63a773 comp: Fix Wint-to-pointer-cast warnings on 32-bit.
Culprit is a Vulkan non-dispatchable handle:
Fix is simpler than for OpenXR because we aren't a Vulkan
implementation so they're all opaque to us.
2020-04-29 17:44:07 -05:00
Ryan Pavlik 53f9eb332d st/oxr: Fix more pointer conversion warnings. 2020-04-29 17:44:07 -05:00
Ryan Pavlik e89a3c1d8f st/oxr: Fix 32-bit warnings when checking for null handles 2020-04-29 17:44:07 -05:00
Ryan Pavlik d95219810e st/oxr: Add XRT_CAST_OXR_HANDLE_TO_PTR macro 2020-04-29 17:44:07 -05:00
Ryan Pavlik cecb8f31af st/oxr: Add and use XRT_CAST_PTR_TO_OXR_HANDLE macro to avoid warnings.
Other places we do these similar conversions will need this same modification.
2020-04-29 17:44:07 -05:00
Jakob Bornecrantz 7a70f86b2d targets: Add and change targets to support service process 2020-04-29 15:13:43 +01:00
Jakob Bornecrantz 220f37a75d xrt: Add build config file for optinal components 2020-04-29 14:58:24 +01: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
Lubosz Sarnecki 5ba751a239 c/renderer: Expose idle image control. 2020-04-29 09:58:52 +01:00
Pete Black 8082e8dbca c/renderer: Add new reset rendering function 2020-04-29 09:58:52 +01:00
Jakob Bornecrantz 8328577b88 cmake: Tidy whitespace (NFC) 2020-04-29 09:12:19 +01:00
Ryan Pavlik ee90eb1d7e d/vive: Fix typos 2020-04-28 16:49:13 -05:00
Ryan Pavlik ba71b6f027 t/cli: Add missing include 2020-04-28 16:49:13 -05:00
Ryan Pavlik 777f905ee1 t/cli: Fix typos 2020-04-28 16:49:13 -05:00
Ryan Pavlik cb3096128a d/vive: Fix build on Android NDK by switching byte order utilities. 2020-04-28 21:40:57 +00:00
Ryan Pavlik 974c68dead xrt: Re-arrange build to avoid unnecessary includes.
Avoid unintentionally including cJSON from the source tree when using system,
etc. This adds granularity to the usage of "external" sources.
2020-04-28 21:36:46 +00:00
Ryan Pavlik 47710e0532 t/openxr: Fix build without OpenGL 2020-04-28 21:36:46 +00:00
Ryan Pavlik 4fc8d3dbea st/gui: Fix build without OpenCV 2020-04-28 21:36:46 +00:00
Jakob Bornecrantz b2c987945e st/prober: Use and expose usb serial and manufacturer 2020-04-28 18:51:07 +00:00
Jakob Bornecrantz 80dd892987 xrt: Add serial and manufacturer to xrt_prober video device probing interface 2020-04-28 18:51:07 +00:00
Jakob Bornecrantz cb90837d97 d/v4l2: Add support for XRT_FORMAT_UYVY422 2020-04-28 11:46:31 +00:00
Jakob Bornecrantz c7903e2d5e u/sink: Add support for XRT_FORMAT_UYVY422 2020-04-28 11:46:31 +00:00
Jakob Bornecrantz 1de7eb7cc9 t/calibration: Add support for XRT_FORMAT_UYVY422 2020-04-28 11:46:31 +00:00
Jakob Bornecrantz 7602e555b0 xrt: Add the format XRT_FORMAT_UYVY422 2020-04-28 11:46:31 +00:00
Jakob Bornecrantz 59b7794172 xrt: Rename XRT_FORMAT_YUV422 to XRT_FORMAT_YUYV422 2020-04-28 11:46:31 +00:00
Jakob Bornecrantz a8941859d7 d/v4l2: A bit more extra error printing 2020-04-28 11:46:31 +00:00
Christoph Haag d4e4a690db d/vive_controller: Add basic 3dof vive_controller_driver
v2: Add basic 3DOF Index Controller support

Only the "gen1" watchman usb protocol is supported (almost same as vive wand).
Note: Lighthouse v2 data is not properly ignored, the IMU data is only parsed correctly
when controller is not hit by lighthouse lasers.

Supported:
* trigger value
* trigger button
* trackpad x, y
* trackpad touch
* thumbstick x, y
* thumbstick click
* system click
* a click,
* b click

Not supported:
* trigger touch
* touchpad force
* thumbstick touch
* system touch
* a touch
* b touch
* grip squeeze
* finger tracking
2020-04-28 10:22:42 +00:00
Christoph Haag 74a328e909 u/json: Add json getter
u_json_get() is much, much shorter than cJSON_GetObjectItemCaseSensitive().
2020-04-28 10:22:42 +00:00
Christoph Haag e3b74c2e70 d/vive: Fix _json_get_string 2020-04-28 10:22:42 +00:00
Christoph Haag 2c818d5051 xrt: Add duration to xrt_output_value
The Vive Controller driver benefits from knowing the duration because
the hardware supports vibrating for a specific duration.
2020-04-28 10:22:42 +00:00
Christoph Haag 88ce6b5dcc st/oxr: Add Vive Wand and Valve Index Controller bindings
v2: add vive & index haptic output to khronos/simple_controller
2020-04-28 10:22:41 +00:00
Christoph Haag 04ebc42666 d/vive: Make common functions available through vive_protocol.h
Move common code to vive_protocol.c
2020-04-28 10:22:41 +00:00
Ryan Pavlik 427808d09a build: Use version script in Meson build too. 2020-04-27 17:33:43 -05:00
Ryan Pavlik 95b5c03f10 build: Relink if version script changes. 2020-04-27 17:33:38 -05:00
Ryan Pavlik 75d5e5b9f2 t/psmv: Fix FTBFS on PPC.
Apparently EIGEN_PI isn't a double by default.
2020-04-27 20:18:31 +00:00
Jakob Bornecrantz a10e7fe968 d/psmv: Move led and rumble update to thread 2020-04-25 16:24:28 +01:00
Ryan Pavlik b8b6e958f2 xrt: Fix FTBFS on ppc64, s390x 2020-04-24 20:34:53 +00:00
Ryan Pavlik 7fab448cf0 build: Support building with system cJSON.
Fixes #62.
2020-04-24 20:34:53 +00:00
Ryan Pavlik a11f5cc429 target/oxr: Mark the runtime target as a module, not a shared library. 2020-04-24 20:34:53 +00:00
Ryan Pavlik 69b8e8455c external: Fix spelling error in imgui demo. 2020-04-24 20:34:53 +00:00
Ryan Pavlik fc686f27dd d/psmv: Codespell fix 2020-04-24 15:31:51 -05:00
Ryan Pavlik c191f4bc30 st/oxr: Codespell fixes 2020-04-24 15:30:46 -05:00
Ryan Pavlik b7e28b0eb8 d/psmv: Codespell fix 2020-04-24 15:30:46 -05:00
Ryan Pavlik 128abac9e8 comp: Codespell fixes. 2020-04-24 15:30:46 -05:00
Lubosz Sarnecki ba3b220ad2 c/renderer: Use gray as idle image color. 2020-04-22 22:00:13 +01:00
Jakob Bornecrantz 01c479468c d/psvr: Use the simple 3dof imu filter 2020-04-22 22:00:13 +01:00
Lubosz Sarnecki d81b3797ba c/meson: Expose include directory in meson 2020-04-22 22:00:13 +01:00
Pete Black ccb1b911f6 c/client: Get the supported formats from the fd compositor 2020-04-22 22:00:13 +01:00
Jakob Bornecrantz 0ad9a7406c os/threading: Add #pragma once 2020-04-22 21:59:20 +01:00
Jakob Bornecrantz e37d8f4cf5 xrt: Remove timestate from xrt_device interface 2020-04-16 17:29:34 +01:00
Jakob Bornecrantz 48957b97c2 os/time: Fix warnings on C++ 2020-04-16 14:51:08 +01:00
Jakob Bornecrantz 76f83364e3 os/ble_dbus: Check if bluetooth is available
Closes #65
2020-04-16 13:48:34 +00:00
Jakob Bornecrantz 530cbf0d6c os/ble: Detect errors better 2020-04-16 13:48:34 +00:00
Jakob Bornecrantz ded6a8a4b9 os/ble_dbus: Fix return check 2020-04-16 13:48:34 +00:00
Christoph Haag 99af2b76d3 d/hdk: Remove unused, accidentally left in code 2020-04-16 14:44:54 +02:00
Christoph Haag 511dd78376 d/hdk: Poll imu in thread & drain queue on every poll
Fix #67
2020-04-16 00:24:59 +02:00