Commit graph

934 commits

Author SHA1 Message Date
Jakob Bornecrantz 76445c8fe9 d/psvr: Fix use after free of timekeeping 2019-11-15 15:23:25 +00:00
Jakob Bornecrantz b33811930b d/psvr: Get data info packet 0x82 2019-11-15 14:55:18 +00:00
Jakob Bornecrantz 419f038017 t/calib: Also save the fisheye distortion always 2019-11-14 17:05:16 +00:00
Jakob Bornecrantz f9599a6763 t/imu: Make sure imu_fusion is aligned 2019-11-14 16:35:56 +00:00
Jakob Bornecrantz 08e898c111 comp: Do not use cut-off in vive shader 2019-11-14 15:12:17 +00:00
Ryan Pavlik e01cf5efd3 t_imu: Actually return non-zero leftover acceleration data. 2019-11-14 12:14:58 +00:00
Ryan Pavlik 2823193302 t_imu_fusion: Add capability to get world non-gravity acceleration 2019-11-14 12:14:58 +00:00
Ryan Pavlik 21352ca338 t_imu: Add param for accelerometer output 2019-11-14 12:14:58 +00:00
Ryan Pavlik a17413744b t_calibration: clang-tidy 2019-11-14 12:14:58 +00:00
Ryan Pavlik 4d411723a1 t/psvr: Fix parameter names 2019-11-14 12:14:58 +00:00
Ryan Pavlik e9d64c4c41 a/math: Clang-tidy 2019-11-14 12:14:58 +00:00
Ryan Pavlik 0a9efbf443 t_imu: Comments 2019-11-14 12:14:58 +00:00
Ryan Pavlik 958c1b7df9 t_imu_fusion: Perform some filtering of accelerometer signal 2019-11-14 12:14:58 +00:00
Ryan Pavlik 29c630cec8 d/psvr: Port PSVR to use timestamps 2019-11-14 12:14:58 +00:00
Ryan Pavlik 194938c405 d/psmv: Port positional tracking to use t_imu_fusion with timestamps 2019-11-14 12:14:58 +00:00
Ryan Pavlik 7bb9fad5e6 t_imu_fusion: adjust to use timepoints directly 2019-11-14 12:14:58 +00:00
Ryan Pavlik aaf08a2abd d/psmv: Porting to changed API that uses timestamps instead of dt 2019-11-14 12:14:58 +00:00
Ryan Pavlik 7314bd75b7 t_imu: Change C API to take timestamps instead of dt 2019-11-14 12:14:58 +00:00
Ryan Pavlik 1440c95f78 t/psmv: Angular rate limit. 2019-11-14 12:14:58 +00:00
Ryan Pavlik 83f652bda1 aux/tracking: Add low-pass IIR filter 2019-11-14 12:14:58 +00:00
Ryan Pavlik ca7397be45 d/psmv: Initial port to imu fusion for orientation-only 2019-11-14 12:14:58 +00:00
Julian Eisel 05b069b0a0 Fix two use-after-free's and multiple memory leaks 2019-11-13 21:53:16 +01:00
Ryan Pavlik af0515232f t_imu_fusion: Fix initialization of orientation from accelerometer. 2019-11-11 18:14:44 -06:00
Ryan Pavlik 08903e67b3 u_var: Update comments/prototypes. 2019-11-11 18:14:14 -06:00
Ryan Pavlik 355476d6b7 aux/tracking: Remove accidentally-left-in parameters from t_imu 2019-11-11 17:57:40 -06:00
Ryan Pavlik 882388b320 st/prober: Fix typo 2019-11-11 17:57:40 -06:00
Ryan Pavlik e44dd1a755 d/vive: Use define for standard gravity 2019-11-11 17:57:40 -06:00
Ryan Pavlik 5eaced0e4d aux/tracking: Use define for standard gravity 2019-11-11 17:57:40 -06:00
Ryan Pavlik 8a0ab71c09 t_imu: Comments. 2019-11-11 17:57:40 -06:00
Ryan Pavlik 8ce507391a external: Update flexkalman 2019-11-11 17:57:34 -06:00
Jakob Bornecrantz 76d6133142 cmake: Fix v4l2 flag not being set 2019-11-10 01:36:46 +00:00
Jakob Bornecrantz c6e6ba7485 t/psmv: Expose ball last position to debug gui 2019-11-10 01:36:44 +00:00
Jakob Bornecrantz 47bc4de56d t/doc: Fallout from latest codespell version 2019-11-09 12:53:42 +00:00
Jakob Bornecrantz a29dd8c0a4 st/oxr: Improve destruction of GUI hack 2019-11-09 12:53:42 +00:00
Jakob Bornecrantz 86244f726f st/oxr: Improve error condition handling on instance creation 2019-11-09 12:53:42 +00:00
Christoph Haag e78e5c8045 st/oxr: Return appropriate errors for incomplete OpenGL XLib binding
* xDisplay must be a pointer to a Display value
* glxDrawable must be a valid GLXDrawable value
* glxContext must be a valid GLXContext value

intentionally not checked:
* glxFBConfig must be a valid GLXFBConfig value
We don't care about this one for now.
2019-11-08 16:07:10 +01:00
Drew DeVault 4c7f830ea5 d/vive: reset orientation on headset button 2019-11-07 09:39:33 -05:00
Jakob Bornecrantz 1f02c54858 d/vive: Fix copy typo 2019-11-07 13:45:56 +00:00
Lubosz Sarnecki 2ffa77d923 d/vive: Handle error when config could not be read. 2019-11-07 14:16:09 +01:00
Lubosz Sarnecki db1e5b9f16 d/vive: Initialize useful defaults.
This initializes default values in the display, distortion and IMU
properties so the runtime is happy in case the JSON config could not be
read.

This patch also moves default value initialization for the Index
into one place with the others, for cases we do not have the data.
2019-11-07 14:16:09 +01:00
Jakob Bornecrantz e7e550fa8d d/psmv: Fix build 2019-11-06 19:51:24 +00:00
Jakob Bornecrantz a54cdb2632 d/psvr: Can we get some info out of the calibration data 2019-11-06 19:50:07 +00:00
Jakob Bornecrantz 845af78c20 d/psvr: Only flip Z-axis after calibration is applied 2019-11-06 19:50:07 +00:00
Jakob Bornecrantz c60b9881e2 d/psmv: More verbose error handling 2019-11-06 19:48:01 +00:00
Drew DeVault e5a9cbb2f9
Implement XR_MND_egl_enable
This extension introduces a more robust way of creating an XrSession for
OpenGL. It also lays the groundwork for future OpenGL ES support.

https://github.com/KhronosGroup/OpenXR-Docs/pull/40

Signed-off-by: Simon Ser <contact@emersion.fr>
Signed-off-by: Drew DeVault <sir@cmpwn.com>
2019-11-06 10:07:21 +01:00
Simon Ser eefeec12fd oxr: check input type in oxr_swapchain_gl_enumerate_images
Don't blindly cast the input struct to XrSwapchainImageOpenGLKHR, check
that the type is XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR.
2019-11-05 16:32:04 +00:00
Christoph Haag 3b87d518c4 build: Fix meson build without v4l2 2019-11-05 15:36:52 +01:00
Jakob Bornecrantz 93218fa9e4 d/psvr: Tweak panotools values 2019-11-05 12:31:42 +00:00
Jakob Bornecrantz 5e3565c28f st/oxr: Set maximum image rect size to 200% 2019-11-05 12:31:42 +00:00
Jakob Bornecrantz defdd97288 st/oxr: Fix recommended swapchain image height 2019-11-05 12:31:42 +00:00
Jakob Bornecrantz 9eedb05f1b st/prober: Do not autoprobe if we have a HMD 2019-11-05 12:15:56 +00:00
Simon Ser 9183f53c5f
xrt: allow NULL args in various functions
The spec says NULL arguments are valid when the argument just exists for
extensibility. Fix the implementation to accept NULL args.
2019-11-05 10:40:21 +01:00
Simon Ser 8ade6b654b
xrt: introduce OXR_VERIFY_ARG_TYPE_CAN_BE_NULL
It's like OXR_VERIFY_ARG_TYPE_AND_NOT_NULL, but doesn't ensure the argument
is non-NULL.
2019-11-05 10:21:23 +01:00
Simon Ser 1b51db68f9
xrt: rename OXR_VERIFY_ARG_TYPE_AND_NULL to …_NOT_NULL 2019-11-05 10:15:35 +01:00
Jakob Bornecrantz 072e9afb54 t/psvr: Counter tracking origin offset
At least until we have proper tracking for the PSVR.
2019-11-03 14:23:03 +00:00
Jakob Bornecrantz 7c73a1b6bd xrt: Tidy xrt_compiler.h and silence some doxygen warnings 2019-11-02 22:54:23 +00:00
Jakob Bornecrantz b59676e184 st/oxr: Comment all parameters 2019-11-02 22:40:26 +00:00
Ryan Pavlik 059234bbfc d/vive: Cleanup scopes, types, leak in vive_sensors_read_config 2019-11-01 22:41:22 +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
Drew DeVault 6bce0838e0 d/vive: Fix minor typo in vive driver 2019-11-01 14:35:41 +00:00
Simon Ser 36102bfa1e
comp: make Wayland window unresizable
This prevents the compositor from issuing resize requests. We ignore
those anyway.
2019-10-31 16:42:26 +01:00
Christoph Haag 746cccca36 meson: HDK driver does not depend on hidapi 2019-10-31 02:26:19 +01:00
Christoph Haag 680b8971b3 d/hdk: Remove unused hidapi include 2019-10-31 01:50:30 +01:00
Jakob Bornecrantz b5ee4f0dbd comp: Make it obvious that you should implement destroy yourself 2019-10-30 11:06:02 +00:00
Jakob Bornecrantz 46b9d28e8d t/imu: No fancy new c++ syntax until clang-format-8 is used on CI
Go to your room clang-format and think about what you have done.
2019-10-29 20:08:59 +00:00
Jakob Bornecrantz 477e740568 d/psmv: Fix flipped bit for cross and square 2019-10-29 20:08:49 +00:00
Jakob Bornecrantz e84ca2de34 st/oxr: Use xrt_compositor helpers 2019-10-28 21:00:56 +00:00
Jakob Bornecrantz 1abdae5b64 xrt: Add helper functions for xrt_compositor 2019-10-28 20:56:33 +00:00
Jakob Bornecrantz c11640d66b st/oxr: Make sure actions that are not marked as active are deactivated 2019-10-28 14:58:59 +00:00
Jakob Bornecrantz 312a99ecf8 st/oxr: Implement any sub-action path handling 2019-10-28 14:58:59 +00:00
Christoph Haag 7d9ef2f371 comp: Add setting to force a vulkan gpu index 2019-10-25 21:05:06 +02:00
Jakob Bornecrantz 186f3ff7e0 st/prober: Ignore I2C based hid devices 2019-10-25 18:39:34 +01:00
Jakob Bornecrantz 5f4ddcc414 t/cli: Add a just probe command 2019-10-25 18:34:18 +01:00
Ryan Pavlik 56f61412f5 d/psmv: Fix possible alignment issues and endianness comments 2019-10-25 18:08:20 +01:00
Jakob Bornecrantz 06ffb8da8f d/psvr: Remove none used inbuilt mesh 2019-10-25 13:05:54 +00:00
pblack 73420739d9 d/psvr: Adjust values and remove comments 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz c5e1511271 d/psvr: Use new mesh distortion generator functions 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz be712c7049 d/ohmd: Use mesh shader for none distortion 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz ef6931b7f9 aux/util: Refactor mesh generation 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz b403da22eb aux/util: Add distortion mesh generation 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz b67d65b4a5 aux/util: Add function to free device and stuff hanging off it 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz 9b6625961a comp: Implement new mesh shader 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz 9d238d7313 xrt: Refactor mesh distortion fields 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz cdafcda626 math: Add some vec2 functions 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz c906caabf4 d/psvr: Disable mesh distortion 2019-10-25 13:05:54 +00:00
Jakob Bornecrantz babd3af4ae d/psvr: Add link to documention 2019-10-25 12:32:40 +01:00
Jakob Bornecrantz b9e1ca6e55 d/psvr: Document calibration data getting process better 2019-10-25 12:27:54 +01:00
Jakob Bornecrantz fda43c5a19 d/psvr: Add code to get device name and calibration data 2019-10-25 11:11:45 +01:00
Jakob Bornecrantz 6580e3ee3f d/psmv: Use U_ZERO 2019-10-24 22:45:07 +01:00
Jakob Bornecrantz 6bfb1d9110 d/psmv: Fix buttons parsing 2019-10-24 22:16:40 +01:00
Ryan Pavlik 6b8b1ae935 st/oxr: Fix changed since last sync and support for more input types 2019-10-24 22:16:40 +01:00
Jakob Bornecrantz aa52da072f xrt: Remove relation input type 2019-10-24 21:51:07 +01:00
Ryan Pavlik 0ebf754996 xrt: Add XRT_GET_INPUT_TYPE, document XRT_INPUT_NAME 2019-10-24 21:43:18 +01:00
Ryan Pavlik 166bee167e xrt: Comment the input types 2019-10-24 21:43:14 +01:00
Ryan Pavlik 6b0f18bf6e tracking: Build kalman things as a single TU 2019-10-24 18:51:21 +02:00
Jakob Bornecrantz 8f6da565e2 d/v4l2: Align up the buffer size 2019-10-24 16:43:45 +01:00
Ryan Pavlik d3d6f15107 st/prober: More data in the "failed to get interface number" messages. 2019-10-24 15:45:41 +01:00
Ryan Pavlik 1ce0124d5c t/psmv: Simple two-state machine for tracking. 2019-10-24 15:45:41 +01:00
Ryan Pavlik af85f6af6b t/psmv: Reset filter if we get non-finite 2019-10-24 15:44:01 +01:00
Ryan Pavlik 28abcf7ce6 t/psmv: Filter the blobs selected 2019-10-24 15:44:01 +01:00
Ryan Pavlik c713ca61f2 t/psmv: Rotate IMU into something like camera space 2019-10-24 15:44:01 +01:00
Jakob Bornecrantz ccd139ab68 xrt: Add xrt_atomic_cmpxchg 2019-10-23 23:39:22 +01:00
Ryan Pavlik e90ea99aa8 comp: Adjust frame waiting logic to behave correctly.
Some sub-calculations are still slightly hacky,
but now the overall structure is correct.
2019-10-23 17:18:46 +02:00
Jakob Bornecrantz 742fe05dd8 comp: Cody style shaders 2019-10-23 11:07:33 +01:00
Jakob Bornecrantz 127e5e67b4 comp: Cut-off is not needed 2019-10-23 10:21:33 +01:00
Jakob Bornecrantz 8301bd8d4c external: Refactor out sdl functions from main cimguo.cpp 2019-10-22 21:37:03 +01:00
Jakob Bornecrantz 60be24e119 external: If out non-implemented imgui init functions 2019-10-22 21:24:58 +01:00
Ryan Pavlik 939c41aba9 st/oxr: If the app called request-exit, go to exiting instead of ready. 2019-10-22 21:14:04 +02:00
Jakob Bornecrantz 6b99e2fbdc d/psvr: Add new imu code, but it's stubbed out... Unless? 2019-10-22 19:51:24 +01:00
Jakob Bornecrantz 35ae8f31ce d/vive: Add some variable tracking 2019-10-22 18:52:52 +01:00
Ryan Pavlik 713830338e st/oxr: Allow wait frame in headless since it does more than just waiting. 2019-10-22 17:29:04 +00:00
Lubosz Sarnecki 5becb60714 d/vive: Use different device string for each variant. 2019-10-22 19:18:47 +02:00
Lubosz Sarnecki 02dc839ca8 d/vive: Add initial support for the Valve Index. 2019-10-22 19:18:47 +02:00
Lubosz Sarnecki 2ed3109c95 d/vive: Add initial support for Vive Pro. 2019-10-22 19:18:47 +02: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
Lubosz Sarnecki 8e6cc11d69 external: Add nxjson. 2019-10-22 19:18:47 +02:00
Lubosz Sarnecki a1d729af8f os/hid: Add os_hid_get_feature_timeout. 2019-10-22 19:18:47 +02:00
Lubosz Sarnecki 6eb1086578 st/prober: Add string functions.
Functions for printing and matching xrt_proper_string.
2019-10-22 19:18:47 +02:00
Ryan Pavlik e2428ee7fa st/oxr: Handle request exit session and stopping state 2019-10-22 18:00:00 +02:00
Jakob Bornecrantz 0826ff9273 st/oxr: xrCreateActionSpace is fully implemented 2019-10-22 15:19:23 +01:00
pblack e32902843c comp: Add chromatic aberration correction to mesh 2019-10-22 14:44:26 +01:00
Jakob Bornecrantz cd5153dead xrt: Spelling 2019-10-22 12:10:20 +01:00
Jakob Bornecrantz 937f5d582a st/oxr: Refactor logging options to instance 2019-10-22 11:47:25 +01:00
Jakob Bornecrantz ce57fae37d st/oxr: Actually implement oxr_slog_abort 2019-10-22 11:45:21 +01:00
Jakob Bornecrantz 0b16e1e94d d/v4l2: Set the timestamp 2019-10-22 09:44:39 +01:00
Jakob Bornecrantz 4d0b2f0b81 d/v4l2: Better control quirking tools 2019-10-21 17:21:28 +01:00
Jakob Bornecrantz 24bc8135e0 t/hsv: Add a debug sink 2019-10-19 23:15:51 +01:00
Jakob Bornecrantz dcd9bbb4d7 st/gui: Use r8g8b8 or l8 converter 2019-10-19 23:15:49 +01:00
Jakob Bornecrantz f38f631fe8 aux/util: Add special r8g8b8x8 or l8 converter 2019-10-19 23:15:48 +01:00
Jakob Bornecrantz 078ac7c59e st/oxr: Slightly better error message 2019-10-19 22:18:29 +01:00
Jakob Bornecrantz e56271d968 st/oxr: Add super hacky debug gui 2019-10-15 20:54:57 +01:00
Jakob Bornecrantz 5f1078675d st/gui: Do not call prober select in debug scene 2019-10-15 20:54:52 +01:00
Jakob Borncrantz 7239282aab st/prober: Add tracking factory variable tracking 2019-10-15 21:05:37 +02:00
Jakob Borncrantz d245fc33c9 d/ohmd: Add variable tracking 2019-10-15 21:00:12 +02:00
Jakob Borncrantz 0bc91ab1cd cmake: Make sure to link to pthreads 2019-10-15 21:00:12 +02:00
Ryan Pavlik f4f07da0c2 t/file: Comment matrix sizes since entirely generic matrix types used. 2019-10-15 20:50:32 +02:00
Ryan Pavlik bc081bee80 t/psmv: cleanup/comments 2019-10-15 20:50:32 +02:00
Jakob Bornecrantz f8ee9281f8 t/calibration: Move more data storage to C portion 2019-10-13 10:48:07 +01:00
Jakob Bornecrantz 43c366ad41 t/file: Save more calibration data 2019-10-12 22:07:49 +01:00
Jakob Bornecrantz 9ec1205f37 t/api: Add comments and put all files in tracking group 2019-10-12 12:24:19 +01:00
Jakob Bornecrantz a435817a6f t/file: Add comments and restyle (NFC) 2019-10-12 12:23:42 +01:00
Lubosz Sarnecki 783a36fbcc st/prober: Add libusb error strings and can open function.
The prober will now output libusb errors as string. This patch also adds
a `can_open` function to the prober, that opens and closes device with
libusb to ensure devices can be opened.

This makes it possible to ensure early that permissions on the device
are correct.
2019-10-11 15:56:30 +01:00
Lubosz Sarnecki 6ec8721899 xrt: Add num_devices to prober found interface.
In order to access multiple devices the prober found interface needs to
pass the length of the device list. This patch updates the found
interface in all drivers.
2019-10-11 15:56:20 +01:00
Lubosz Sarnecki 3e8bd73e34 d/hdk: Use float to avoid implicit cast. 2019-10-11 15:55:18 +01:00
Jakob Bornecrantz fece0458b6 t/psmv: Make it possible to get the tracked ball pose 2019-10-11 15:40:42 +01:00
Jakob Bornecrantz a0a4fa3399 st/oxr: Fixes for ball on stick bindings 2019-10-11 15:40:39 +01:00
Drew DeVault bca5899fcc meson: fix build with 0.52+ 2019-10-10 23:21:27 +00:00
Drew DeVault 202d1d72aa openxr/meson.build: remove install: true
This removes the meson feature warnings.
2019-10-10 22:58:10 +00:00
Drew DeVault 7f16e7230f oxr_verify.cpp: rewrite in C 2019-10-10 22:54:19 +00:00
Drew DeVault d7debdb724 oxr_logger.cpp: rewrite in C 2019-10-10 22:54:19 +00:00
Drew DeVault 6c275f0aae oxr_event.cpp: rewrite in C 2019-10-10 22:54:19 +00:00
Drew DeVault 904d58d365 oxr: track list of sessions; poll sessions 2019-10-10 22:51:21 +00:00
Drew DeVault a736812f63 oxr: mostly implement XR_SESSION_LOSS_PENDING
This is missing support for xrPollEvents, which needs to be handled
separately as it's not properly rigged up throughout Monado yet.
2019-10-10 22:51:21 +00:00
Jakob Bornecrantz bffe802449 t/psmv: Adjust room position in prober instead 2019-10-10 23:47:51 +01:00
Ryan Pavlik 3630dae537 t/psmv: FindLowestScore template param renames
Less terse
2019-10-10 21:48:09 +00:00
Ryan Pavlik 430e27d084 t/psmv: Use new imu fusion in psmv positional tracking. 2019-10-10 21:48:09 +00:00
Ryan Pavlik 18f9760986 tracking: Add t_imu: simple IMU fusion for absolute orientation 2019-10-10 21:48:09 +00:00
Ryan Pavlik b00f5315c2 t/psmv: Initial Kalman filter.
Rotation a little out of control right now because still using bad fusion.
2019-10-10 21:48:09 +00:00
Ryan Pavlik 85b6c7222d tracking: Add t_fusion for Kalman filter added code. 2019-10-10 21:48:09 +00:00
Ryan Pavlik c660183848 external: Add multi-header version of FlexKalman.
Takes off a little build time compared to single-header version.
2019-10-10 21:48:09 +00:00
Jakob Bornecrantz 315d3b65f1 comp: Do not destry VK_NULL_HANDLE buffers and memory 2019-10-10 22:11:09 +01:00
Jakob Bornecrantz 7680038f8b t/gui: Request forward compatible OpenGL version and minimum 3.2 2019-10-10 16:06:57 +01:00
pblack 1dacea071d d/psvr: Add hacked mesh distortion 2019-10-10 13:28:01 +01:00
Jakob Bornecrantz e86628884b comp: Add disabled shader debugging code 2019-10-10 13:28:01 +01:00
Jakob Bornecrantz 2db8138e8e comp: Hack in a flip of the right eye 2019-10-10 13:28:01 +01:00
Jakob Bornecrantz fafbe287e1 comp: Clamp UV textures to a black border 2019-10-10 13:28:01 +01:00
pblack 898c1b4a9f comp: Add mesh distortion shader 2019-10-10 13:28:01 +01:00
pblack b351e8cd75 aux/util: Don't overwrite distortion info 2019-10-10 01:52:45 +01:00
Jakob Bornecrantz 102e36efc9 st/gui: Don't include glad directly 2019-10-09 22:11:41 +01:00
Jakob Bornecrantz 1afc4df95c st/gui: Refactor gui code into it's own state tracker 2019-10-09 21:53:21 +01:00
Jakob Bornecrantz e327d56bf4 aux/ogl: Introduce a single small OpenGL library 2019-10-09 17:07:23 +01:00
Jakob Bornecrantz 420f25c7f7 t/gui: Refactor out SDL2 code 2019-10-09 16:32:58 +01:00
Jakob Bornecrantz 473047962f d/psvr: Correct screen size 2019-10-08 11:19:14 +01:00
Jakob Bornecrantz acd2c50470 aux/math: Rework offset transformation
This reverts commit 0d9aaae470, and changes it.
2019-10-08 11:19:14 +01:00
Jakob Bornecrantz 0d9aaae470 aux/math: Correct(?) transform 2019-10-08 01:04:46 +00:00
Jakob Bornecrantz 68e7544f57 comp: Free window swapchain VkImageViews & VkSwapchainKHR 2019-10-08 00:04:25 +01:00
Jakob Bornecrantz 649bf88379 comp: Make sure to free VkImageViews on swapchains 2019-10-07 23:48:39 +01:00
Jakob Bornecrantz 0108207b3d comp: Use VK_NULL_HANDLE 2019-10-07 23:27:09 +01:00
Jakob Bornecrantz 1d9009a461 comp: Set array_size 2019-10-07 23:26:43 +01:00
Benjamin Saunders 3d5872f346 comp: Fix missing usages on Vulkan client swapchains 2019-10-07 22:08:56 +01:00
Ryan Pavlik 23e7f99a71 t/psmv: More algorithm simplification/optimization 2019-10-07 12:39:56 +00:00
Ryan Pavlik 7e358ea721 t/psmv: Simplify final stage of tracking. 2019-10-07 12:39:56 +00:00
Ryan Pavlik d7d12a69f8 aux/tracking: Remove unused functions.
Use cv::norm instead.
2019-10-07 12:39:56 +00:00
Ryan Pavlik 09f984258f t/psmv: Improve finding the nearest blob.
No more need to construct a vector every time.
2019-10-07 12:39:56 +00:00
Ryan Pavlik 5d9311bd30 d/psmv: Fix size of tracking ball. 2019-10-07 12:39:56 +00:00
Ryan Pavlik 76aa839f5b a/track: Simplify. 2019-10-07 12:39:56 +00:00
Ryan Pavlik 37d4eae37a a/track: Fix typo. 2019-10-07 12:39:56 +00:00
Jakob Bornecrantz d8cd9ffcdd st/prober: Better error printing 2019-10-04 10:32:02 +01:00
Jakob Bornecrantz f2fcfd98e1 aux/os: Return 'errno' on device open failure 2019-10-04 10:32:02 +01: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
Jakob Bornecrantz 51f3fac192 aux/tracking: Refactor calibration data handling 2019-09-29 15:43:54 +01:00
Jakob Bornecrantz b37eb0f55b xrt: Add xrt_size struct 2019-09-29 15:43:54 +01:00
Jakob Bornecrantz cbee61a008 xrt: Don't derive pointer alignment 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz ec7e98538c st/prober: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 76527b73f8 st/oxr: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 0987927343 aux/util: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 423da670fa aux/tracking: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz b95e114160 aux/math: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 3bee6e3a8b d/ohmd: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 30de1d0928 d/psvr: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 5cd4d272a2 comp: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 42f4784d14 xrt: Code style, pointer star location 2019-09-29 11:45:19 +01:00
Jakob Bornecrantz 70f632be10 aux/tracking: Refactor PS Move tracking code 2019-09-28 18:06:05 +01:00
pblack 5d616cd077 aux/tracking: Port PS Move tracker 2019-09-28 18:04:19 +01:00
Jakob Bornecrantz 3e27720083 t/gui: Better handling of sink interceptors 2019-09-28 18:02:41 +01:00
Jakob Bornecrantz bc26f68c74 aux/calibration: Do fast pass for checkerboard detection and tidy file 2019-09-28 15:17:48 +01:00
Jakob Bornecrantz b5eae545e7 aux/tracking: Fix build on new OpenCV versions 2019-09-28 02:55:37 +01:00
Jakob Bornecrantz 6dcf69df83 aux/tracking: Adjust checkerboard corners for subpixel accuracy 2019-09-28 02:47:42 +01:00
Jakob Bornecrantz ee3f54adb6 aux/tracking: Add parameters to calibration 2019-09-27 20:49:31 +01:00
Jakob Bornecrantz 8d0aa220c1 aux/tracking: Tidy calibration 2019-09-27 20:49:31 +01:00
Jakob Bornecrantz ea5203fbc0 aux/tracking: Fix position hack in PSVR 2019-09-27 20:28:04 +01:00
Jakob Bornecrantz cc2f456663 aux/tracking: Fix warnings 2019-09-27 20:28:04 +01:00
Jakob Bornecrantz 216f7df355 d/ohmd: Less distorted view on external device 2019-09-27 20:28:04 +01:00
Jakob Bornecrantz fcc316d6f1 st/prober: First ball is red 2019-09-27 20:28:04 +01:00
Jakob Bornecrantz 58305a33c6 meson: OCD 2019-09-27 12:25:05 +01: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 765d263b96 d/psvr: Use os_nanosleep 2019-09-27 11:44:54 +01:00
Jakob Bornecrantz b8205d77fe meson: Add all tracking files
PSVR and PSMV trackers are independant from the drivers, so build them all always.
2019-09-26 22:34:14 +01:00
Jakob Bornecrantz 6081b147fc cmake: Tidy auxiliary file 2019-09-26 22:34:14 +01:00
Jakob Bornecrantz 953ce6480d st/prober: Gate tracking on OpenCV instead of PSMV and PSVR 2019-09-26 22:34:14 +01:00
Drew DeVault b4f0c79abd comp_compositor.c: prefer Wayland over XCB 2019-09-26 12:15:27 -04:00
Drew DeVault 9bcfa56f2f compositor: overhaul Wayland backend
This simplifies the Wayland backend, fixes the build configuration for
it, ports it to xdg-shell stable, and reworks some false assumptions
from the original port.
2019-09-26 12:15:27 -04:00
Drew DeVault 064aef3526 build: port to meson 2019-09-26 15:05:22 +00:00
Drew DeVault c6586cfd1e comp_compositor: use nanosleep instead of usleep
Improves portability
2019-09-26 15:05:22 +00:00
Jakob Bornecrantz 9c7c818637 d/v4l2: Use more portable sysconf(_SC_PAGESIZE) 2019-09-26 16:03:48 +01:00
pblack 3d7ec1546b aux/tracking: Port calibration to new gui/node setup 2019-09-26 09:32:46 +01:00
Ryan Pavlik 24260bb042 st/oxr: Silence meaningless negotiate errors/warnings.
Loader just indiscriminately populates all function pointers.
2019-09-24 22:01:05 +00:00
Ryan Pavlik bbd63ff071 st/oxr: Disable partial implementation of debug extension for now. 2019-09-24 14:16:31 -05:00
Ryan Pavlik 80b0c14590 st/oxr: Paths cannot end with a slash. 2019-09-24 10:20:16 -05:00
Ryan Pavlik b7aebc2146 st/oxr: Implement oxr_xrStructureTypeToString 2019-09-24 10:20:16 -05:00
Ryan Pavlik 192a219d1c st/oxr: Implement oxr_xrResultToString 2019-09-24 10:20:16 -05:00
Jakob Bornecrantz a211b392df st/prober: Set origin for PSVR tracker as well
Spotted by Pete Black.
2019-09-24 01:14:48 +01:00
Jakob Bornecrantz b1febd8971 t/gui: Add a calibration scene 2019-09-23 11:46:06 +01:00
Jakob Bornecrantz 4a0a95dab8 aux/tracking: Fix calibration code to work with new frame semantics 2019-09-23 11:43:23 +01:00
Jakob Bornecrantz 79eba848ae st/prober: Add hardcoded tracking system integration for PSMV and PSVR 2019-09-22 12:00:48 +01:00
Jakob Bornecrantz 871b06cd72 aux/tracking: Add stub PSVR tracker 2019-09-22 11:50:34 +01:00
Jakob Bornecrantz 37590e7525 aux/tracking: Add stub PSMV tracker 2019-09-21 19:12:12 +01:00
Jakob Bornecrantz a4ee0dd838 d/psvr: Use tracking interface 2019-09-21 19:02:13 +01:00
Jakob Bornecrantz b47efb1520 d/psmv: Use tracking interface 2019-09-21 18:33:45 +01:00
Jakob Bornecrantz b50415a367 t/gui: Add main menu and pure debug scene 2019-09-21 18:33:45 +01:00
Jakob Bornecrantz 387bc123f8 xrt: Expand tracking interface 2019-09-21 18:22:06 +01:00
Jakob Bornecrantz 65eeb19939 targets: Link with tracking if built 2019-09-21 18:21:05 +01:00
Jakob Bornecrantz ba12a0aa0e aux/tracking: Track hsv filter sinks 2019-09-21 18:21:05 +01:00
Jakob Bornecrantz ef3074afa7 aux/util: Add sink as tracker variable 2019-09-21 18:21:05 +01:00
Jakob Bornecrantz 046c9e18b9 d/psmv: Fix timestamp parsing (ZCM2) 2019-09-20 12:06:58 +01:00
Ryan Pavlik 63d62cf4fe d/psmv: Fix timestamp parsing (ZCM1) 2019-09-20 12:06:48 +01:00
Ryan Pavlik f123c41146 t/gui: Support quat values 2019-09-20 10:07:50 +01:00
Ryan Pavlik 65cc62daf9 aux/util: Add quat support to variable tracker 2019-09-20 10:07:48 +01:00
Ryan Pavlik f10eaafcdb t/gui: Align floats by always outputting the + or - 2019-09-20 10:07:46 +01:00
Lubosz Sarnecki 910f16fd30 targets/cli: Fix build with OpenHMD disabled.
Without this patch the build is failing due to linker errors
when BUILD_WITH_OPENHMD is set to false.
2019-09-20 10:15:17 +02:00
Lubosz Sarnecki 9dec3dda81 drv_psvr: Fix prototype warnings in clang. 2019-09-20 10:14:49 +02:00
Jakob Bornecrantz 51dafe7b05 xrt: Add usb_dev_class to xrt_prober_device 2019-09-18 13:03:01 +01:00
Jakob Bornecrantz ad373c55b7 os: Include xrt_config.h in os_threading.h 2019-09-17 11:42:28 +01:00
Jakob Bornecrantz ff341e43f0 d/psvr: Use standard gravity value 2019-09-16 16:36:54 +01:00
Jakob Bornecrantz d3eb48ada4 d/psmv: Normalize acceleration to gravity 2019-09-16 16:36:48 +01:00
Jakob Bornecrantz 1bcf537785 aux/math: Add standard gravity value 2019-09-16 16:36:47 +01:00
Jakob Bornecrantz 46389cd6ae xrt: Send in real prober to auto probers 2019-09-15 23:24:58 +01:00
Jakob Bornecrantz 59a2b87c43 d/psmv: Tidy code and add some comments 2019-09-15 23:22:25 +01:00
Jakob Bornecrantz d4e139f09e d/psmv: Use gyro_bias from calibration data on ZCM2 2019-09-15 23:22:25 +01:00
Jakob Bornecrantz 548f4edee3 d/psmv: Don't use the copy sample on ZCM2 2019-09-15 23:22:25 +01:00
Jakob Bornecrantz 9d1353c626 t/gui: Connect it all together 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz a507aee906 t/gui: Add two scenes 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz 74bdb0cb38 t/gui: Add imgui code 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz 71b3de9c46 t/gui: Add scene manager 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz c474112782 t/gui: Add OpenGL sink code 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz 968952aa9e t/gui: Add st/prober code 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz 44d58037b7 t/gui: Add SDL2 based GUI target 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz d48b3385f8 ext/imgui: Add Dear ImGui 2019-09-15 18:52:17 +00:00
Jakob Bornecrantz a673f9b7fc st/oxr: Add Monado ball on a stick controller 2019-09-15 15:44:39 +01:00
Jakob Bornecrantz 79ad85e9b7 st/oxr: Add interaction profile code
Not a complete implementation but gets us far enough to
respect the bindings that a application gives us.
2019-09-15 15:44:39 +01:00
Jakob Bornecrantz 2337299279 st/oxr: Make sure action keys don't start at zero 2019-09-15 15:44:39 +01:00
Jakob Bornecrantz 2db3df9027 st/oxr: Add oxr_sink_logger, the slog-inator! 2019-09-15 15:44:39 +01:00
Jakob Bornecrantz 81213f119c os: Tidy threading 2019-09-15 15:43:57 +01:00
Jakob Bornecrantz ee5fe9a4e5 d/psmv: Even more tidy 2019-09-15 15:43:57 +01:00
Jakob Bornecrantz 0641342b7d d/psmv: Tidy driver 2019-09-15 15:29:47 +01:00
Jakob Bornecrantz 3d744c5959 d/psmv: Add support for ZCM2 2019-09-15 15:29:45 +01:00
Jakob Bornecrantz e98fb81c56 d/psmv: Make calibration values slight more readable 2019-09-15 15:29:43 +01:00
Jakob Bornecrantz 7dcfe5ca50 d/psmv: Flip axis once more 2019-09-15 15:29:41 +01:00
Jakob Bornecrantz 932b8dfd70 d/psmv: Refactor calibration and make room for ZCM2 2019-09-15 12:28:53 +01:00
Jakob Bornecrantz b5c7f080de d/psmv: Use new thread helper to create a pulling thread 2019-09-13 22:17:34 +01:00
Jakob Bornecrantz 0d09d225dd os: Add wrappers for threading primitives 2019-09-13 22:11:02 +01:00
Jakob Bornecrantz e82f3616c9 d/psmv: Tick time 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz b5c37bcf10 d/psmv: Don't force sending of update packet when setting output 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz 523c9980c9 d/psmv: Super simple sensor "fusion" 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz 1488dcf579 d/psmv: Add stub update fusion function 2019-09-11 22:21:53 +01:00
Jakob Bornecrantz d2acc9d6e4 d/psmv: Also set gyro data 2019-09-11 22:20:22 +01:00
Jakob Bornecrantz c5e5c98c9c d/psmv: Shouldn't negate Z-axis in gyro calibration data 2019-09-11 22:20:20 +01:00
Jakob Bornecrantz 5b02974ae0 d/psmv: Correctly handle z-axis 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz e179349644 d/psvr: Super simple sensor "fusion" 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz 750b8bb755 d/psvr: Expose more data via variable code 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz c2c230b3de d/psvr: Refactor and improve packet reading 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz bf9bcf8e26 d/psvr: Read sensor packets when updating input 2019-09-11 16:43:09 +01:00
Jakob Bornecrantz 8d001ca95f st/oxr: Even more fixes for system xdevs 2019-09-09 21:57:37 +01:00
Jakob Bornecrantz affd1cb2c1 st/oxr: Tidy 2019-09-09 20:47:43 +01:00
Jakob Bornecrantz b84413cc35 st/oxr: Fix system xdev init 2019-09-09 20:47:30 +01:00
Jakob Bornecrantz 94d4822afb d/psmv: Use correct calibration value 2019-09-08 10:01:55 +01:00
Jakob Bornecrantz 962de77ca0 st/oxr: Carry around extra xrt_devices
Pretty much only used for enabling 3 PS Move Controllers right now.
2019-09-08 10:01:55 +01:00
Jakob Bornecrantz 2abc98dbec aux/util: Add split sink 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz 798ef43342 st/prober: Make sure the usb-product is always filled out 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz c021199b98 xrt: Add interface to prober to open video devices 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz 3b1abffa2d xrt: Refactor frameserver start stream arguments 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz 1b35846506 d/psmv: Expose more variables and add gui annotations 2019-09-07 14:34:20 +01:00
Jakob Bornecrantz 10d9fbcd9e aux/util: Add some gui annotations to variable tracking 2019-09-07 14:32:53 +01:00
Jakob Bornecrantz 2a6e194b2d d/psmv: Improve accelerometer adjustment 2019-09-06 19:14:12 +01:00
Jakob Bornecrantz 2e5c8f43a0 d/psmv: Export a whole lot more variables 2019-09-06 19:14:12 +01:00
Jakob Bornecrantz 9cf6108899 aux/util: Add more types to variable tracker 2019-09-06 18:12:15 +01:00
Jakob Bornecrantz 5e3d5295b7 xrt: Add xrt_vec3_i32 2019-09-06 18:12:15 +01:00
Jakob Bornecrantz 3f13224502 d/psmv: Fix strict aliasing warnings when compiling with optimisations 2019-09-06 15:46:17 +01:00
Jakob Bornecrantz aaaa9fc235 st/oxr: Fix strict aliasing warnings when compiling with optimisations 2019-09-06 15:46:17 +01:00
Jakob Bornecrantz e8ead02c4c st/oxr: Silence warning from snprintf when compiling with optimisations 2019-09-06 15:46:06 +01:00
Jakob Bornecrantz d6465bc017 d/psvr: Enable by default 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 8570493db1 d/psvr: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 9192c9c6b5 d/psmv: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 676bc81f40 d/v4l2: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz d8f8f670d3 st/prober: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz 591e6d3b29 st/oxr: Add variable tracking 2019-09-06 14:37:45 +01:00
Jakob Bornecrantz a9e88f3f20 aux/util: Add variable tracking code 2019-09-06 14:37:42 +01:00
Jakob Bornecrantz 58008d2ff1 d/psmv: Return error code 2019-09-05 22:18:14 +01:00
Jakob Bornecrantz 1ae8acc71c d/psmv: Read calibration data 2019-09-05 17:24:57 +01:00
Jakob Bornecrantz 29b1713be9 xrt: Add enum xrt_device_name so that state trackers can reason about device 2019-09-04 12:47:18 +01:00
Jakob Bornecrantz a0f2793457 xrt: It's a cross not a x 2019-09-03 15:26:10 +01:00
Jakob Bornecrantz 5de401ea58 comp: Tidy wait frame 2019-08-31 14:17:41 +01:00
Jakob Bornecrantz cfb1ca3052 comp: Ensure nominal_frame_interval_ns is a sane value 2019-08-31 14:17:41 +01:00
Jakob Bornecrantz cfa89b84c1 d/psmv: Tidy doc 2019-08-27 09:04:03 +01:00
Jakob Bornecrantz 005abd5429 t/cli: Tidy CMakeLists.txt file 2019-08-27 08:52:57 +01:00
Jakob Bornecrantz 358183115f aux/track: Micro optimize hsv filter 2019-08-27 08:34:40 +01:00
Jakob Bornecrantz f5a93699cb xrt: Add XRT_NO_INLINE define 2019-08-27 08:34:40 +01:00
Jakob Bornecrantz 1e93ba2461 xrt: Refactor frame interface 2019-08-27 08:17:21 +01:00
Jakob Bornecrantz b9c3ac797e xrt: Add colour structs 2019-08-27 08:17:21 +01:00
Jakob Bornecrantz 7f3651775b xrt: Add xrt_reference struct 2019-08-27 08:17:21 +01:00
Jakob Bornecrantz 6774a7e1b3 xrt: Add atomics and container_of helpers 2019-08-27 08:17:21 +01:00
Jakob Bornecrantz 98d7c3542c d/v4l2: Minor fixes 2019-08-27 08:17:21 +01:00
Jakob Bornecrantz 0f9b5786f3 st/oxr: Remove unnecessary NULL check 2019-08-22 16:46:42 +01:00
Ryan Pavlik a8ae7c432d aux/tracking: Fix class vs struct warnings in calibration and hsv debug code. 2019-08-21 14:29:37 -05:00
Ryan Pavlik 12de62fdbc d/psmv: Fix typo in bit mask.
Found by clang-tidy.
2019-08-21 14:28:54 -05:00
Ryan Pavlik dae90d4b42 st/oxr: Fix potential null-deref in events.
Found by clang-tidy
2019-08-21 14:28:32 -05:00
Ryan Pavlik 624fe8ab59 st/oxr: Change iteration of actions. 2019-08-21 14:28:07 -05:00
Jakob Bornecrantz 79402d0081 aux/track: Add stub calibration tracker 2019-08-20 13:07:42 +01:00
Jakob Bornecrantz a2ffb18852 aux/util: Add a special yuv or yuyv converter sink 2019-08-20 12:40:05 +01:00
Jakob Bornecrantz fc88d7d099 aux/util: Add more formats 2019-08-20 12:40:05 +01:00
Jakob Bornecrantz 36f24036eb xrt: Add more formats 2019-08-20 12:40:05 +01:00
Jakob Bornecrantz c8f16be641 xrt: Refactor out frame from frameserver 2019-08-20 12:35:55 +01:00
Christoph Haag d9736ba3b7 comp: wait for next frame in xrWaitFrame
fixes 6e396ed

It was unnecessary to move the wait to xrEndFrame.
It does not matter if the compositor renders the frame immediately because the
frame physically can not be displayed before the next HMD refresh.

On the other hand, leaving too short of a time for the compositor to render
may delay the frame past its predicted time.
2019-08-20 10:10:10 +00:00
Ryan Pavlik 2389c207f5 st/oxr: debug utils extension cleanup 2019-08-19 17:12:33 -05:00
Ryan Pavlik 077d0c39c5 st/oxr: Unify handling of extensions. 2019-08-19 17:12:33 -05:00
Benjamin Saunders c111f528b8 oxr: Optionally install as the default runtime 2019-08-19 12:09:49 -05:00
Jakob Bornecrantz a0fcaf9b6b aux/util: Disable use of conversion table for YUV to RGB for now 2019-08-17 10:34:40 +01:00
Jakob Bornecrantz 042d30c590 comp: Fix warnings 2019-08-17 10:34:12 +01:00
Jakob Bornecrantz 33dd9b65ea st/oxr: Don't pad systemName with a lot of padding
This was a thinko by me and just plain wrong.
2019-08-17 09:31:01 +01:00