Commit graph

1621 commits

Author SHA1 Message Date
Jakob Bornecrantz 753b910b5a c/swapchain: Don't only give out the zero index 2020-06-02 13:02:04 +01:00
Jakob Bornecrantz 5b0085f1c1 c/client: Mark consumed FDs as invalid 2020-06-02 13:02:04 +01:00
Jakob Bornecrantz 9ec0b559d4 ipc/util: Don't follow null pointers and add alignment paranoia 2020-06-02 13:02:04 +01:00
Jakob Bornecrantz 05827abd8e ipc/server: Fix swapchain handling 2020-06-02 13:02:04 +01:00
Jakob Bornecrantz ebd5773fb8 util: Add function for u_hashset to allocate a item 2020-06-02 13:02:04 +01:00
Jakob Bornecrantz 0d2a24b9a0 util: Add a index fifo 2020-06-02 13:02:04 +01:00
Jakob Bornecrantz 371622c199 d/psvr: Normalize rotation 2020-06-02 13:02:04 +01:00
Lubosz Sarnecki 7186bddf60 c/comp+ipc: Use array indices again.
This fixes a regression introduced by the IPC and layer rendering
patchsets and passes the array_index to the correct places, so the
correct VkImageView is used instead of the one with index 0.
2020-06-02 12:42:42 +02:00
Christoph Haag f68252bfbe st/oxr: Check quadlayer swapchain for NULL 2020-06-01 18:38:54 +02:00
Jakob Bornecrantz 77c2b9cb5d c/main: Include <math.h> in comp_layer_renderer.c 2020-05-29 23:37:22 +01:00
Jakob Bornecrantz ace4d0e825 os/threading: Incude xrt_compiler.h 2020-05-29 23:36:23 +01:00
Christoph Haag 6045742561 st/oxr: Translate relation_flags in oxr_space_locate() 2020-05-29 01:46:42 +02:00
Christoph Haag 7fe0f3610b st/oxr: Fill entire xrt_space_relation in oxr_xdev_get_pose_at, not just pose
In particular the relation_flags indicate whether the pose is valid or a fallback pose.
2020-05-29 01:25:57 +02:00
Christoph Haag f10b341f57 st/oxr: Don't assert on invalid pose
ensure_valid_position_and_orientation() inserts fallback poses when
driver reported poses are invalid.
2020-05-29 01:09:54 +02:00
Christoph Haag c9b692903c st/oxr: Don't indiscriminately set orientation & position to valid in oxr_space_action_relation() 2020-05-29 01:02:31 +02:00
Christoph Haag 3bdc57c4b3 st/oxr: Don't indiscriminately set orientation & position to valid in ensure_valid_position_and_orientation() 2020-05-29 00:57:35 +02:00
Christoph Haag 384114b821 d/survive: Don't invert valid position condition 2020-05-29 00:35:58 +02:00
Lubosz Sarnecki 1e8106c974 c/compositor: Render multiple layers without IPC.
Hook up layer rendering when XRT_FEATURE_SERVICE is not set.
2020-05-28 22:16:57 +00:00
Lubosz Sarnecki 4ad806df38 ipc/server_process: Check for swapchain NULL pointer.
Skip rendering when swapchains are invalid.
2020-05-28 22:16:57 +00:00
Jakob Bornecrantz 066009c0c5 c/layer_renderer: Enable blending. 2020-05-28 22:16:57 +00:00
Lubosz Sarnecki d0539161dc c/renderer+ipc: Use layer renderer.
Make the renderer and IPC aware of multiple projection and quad layers
using the layer renderer.

Remove redundant code related to idle images and imported buffers and
command buffer rebuild, since we now always just display the layer
renderer's frame buffer.

Get view and projection properties from xrt_device.
2020-05-28 22:16:57 +00:00
Lubosz Sarnecki aedd4d9ff8 c/layers: Implement layer renderer.
Implements a layer renderer capable of handling multiple quad
and projection layers rendered in it's own Vulkan pipeline.
2020-05-28 22:16:57 +00:00
Lubosz Sarnecki fc271ad5da aux/math: Add function to calculate quad model matrix. 2020-05-28 22:16:57 +00:00
Lubosz Sarnecki 68c5eecb96 aux/vk: Add image helper struct and functions. 2020-05-28 22:16:56 +00:00
Lubosz Sarnecki 589c7e4fef aux/vk: Add buffer helper structs and functions. 2020-05-28 22:16:56 +00:00
Lubosz Sarnecki 905040319a aux/vk: Use optimal tiling in vk_create_image_simple.
Fixes an validation issue on NVIDIA and should bring more performance.
2020-05-28 22:16:56 +00:00
Jakob Bornecrantz 03f802de77 st/oxr: Correctly validate time in xrLocateSpace 2020-05-28 22:56:59 +01:00
Jakob Bornecrantz dd04379209 st/oxr: Now that layers are supported up the max layers to what the spec requires 2020-05-28 22:56:59 +01:00
Ryan Pavlik cef1970340 ipc: Make script more pythonic 2020-05-28 13:22:30 -05:00
Ryan Pavlik ff3a4d8b50 ipc: Fix all Flake8 warnings 2020-05-28 13:20:28 -05:00
Ryan Pavlik 4efdb6762a ipc: More script simplification. 2020-05-28 11:56:22 -05:00
Ryan Pavlik 0964a6dd07 ipc: Clean up generation script 2020-05-28 11:34:36 -05:00
Ryan Pavlik a44a915151 ipc: Put generator main in a function, for testing purposes 2020-05-28 11:34:36 -05:00
Ryan Pavlik 8bd1ac776e ipc: Fix class methods, mistaken use of class variables in IPC generator 2020-05-28 11:34:36 -05:00
Christoph Haag 7b2c54c223 d/survive: don't report invalid poses as valid 2020-05-28 17:37:09 +02:00
Christoph Haag 25bafd71c8 d/survive: Remove useless loop
We already have a SurviveSimpleObject, no need to look for it through iteration
2020-05-28 17:20:46 +02:00
Jakob Bornecrantz 7cd9dfabc8 st/oxr: Translate swapchain usage flags 2020-05-28 15:50:47 +01:00
Jakob Bornecrantz 23b882df08 st/oxr: Write out pose values on failure, better say which layer failed and also check projection layer poses 2020-05-28 15:50:47 +01:00
Jakob Bornecrantz 9d791cdfd3 math: Use non-squared 'length' of quat in validation
Correctly validate quaternion using non-squard "length" instead of squard
"length", certain combinations of elements would produce valid regular "length"
but not valid squard ones.
2020-05-28 15:50:47 +01:00
Ryan Pavlik 8c54139f79 inc/xrt: Remove declaration of xrt_prober_create. 2020-05-27 18:40:56 -05:00
Ryan Pavlik a034260ec3 ipc/client: Remove implementation of xrt_prober_create 2020-05-27 18:40:56 -05:00
Ryan Pavlik 293ec1e6dd st/p: Use helper functions for xrt_device 2020-05-27 18:40:56 -05:00
Ryan Pavlik 011a68704c st/gui: Use helper functions for xrt_device 2020-05-27 18:40:56 -05:00
Ryan Pavlik 1438541147 st/gui: Port to using xrt_instance, instead of xrt_prober directly. 2020-05-27 18:40:56 -05:00
Ryan Pavlik 1a313b6f58 t/cli: Port to use xrt_instance, instead of xrt_prober directly. 2020-05-27 18:40:56 -05:00
Ryan Pavlik 51dba8ad94 t/common: Add a target_instance_no_comp library 2020-05-27 18:40:56 -05:00
Ryan Pavlik 3b1f003705 t/openxr: Remove reference to/implementation of xrt_prober_create 2020-05-27 18:40:56 -05:00
Ryan Pavlik 6c77b8d314 t/common: Replace references to xrt_prober_create 2020-05-27 18:40:56 -05:00
Ryan Pavlik c42675437b st/gui: Remove no-longer-needed timekeeping. 2020-05-27 18:40:56 -05:00
Ryan Pavlik c7841fd73c inc/xrt: Improve docs for prober interface. 2020-05-27 18:40:56 -05:00
Jakob Bornecrantz aa0523e535 c/main: Only allocate one image for static swapchains 2020-05-27 21:57:48 +01:00
Jakob Bornecrantz e8e7493679 ipc: Pass all arguments to create swapchain image 2020-05-27 21:57:48 +01:00
Jakob Bornecrantz efd35da334 st/oxr: Correctly translate XrSwapchainCreateFlags 2020-05-27 21:21:00 +01:00
Jakob Bornecrantz 0aeb2ccfb2 st/oxr: Turn XrPaths into atoms 2020-05-27 21:21:00 +01:00
Jakob Bornecrantz 7cf5edbf87 st/oxr: Now that IPC correctly wait frames check predicted display for zero 2020-05-27 18:12:26 +01:00
Jakob Bornecrantz 51545411f9 st/oxr: Validate time better xrConvertTimeToTimespecTimeKHR 2020-05-27 18:12:26 +01:00
Jakob Bornecrantz ef41cf2088 u/time: Use a very large hammer to "fix" time_state 2020-05-27 17:50:06 +01:00
Jakob Bornecrantz 18fbd3f819 ipc: Make the XR client actually wait in wait frame by setting the correct semaphore value 2020-05-27 17:50:06 +01:00
Ryan Pavlik 168f2ced41 inc/xrt: Improve xrt_instance documentation 2020-05-26 19:36:28 +00:00
Ryan Pavlik 16d3020ae8 include/xrt: Fix doxygen warning. 2020-05-26 19:36:28 +00:00
Jakob Bornecrantz 4039dc7096 st/oxr: Validate some internal state and improve error message 2020-05-26 19:34:49 +01:00
Christoph Haag 41e3a6fd17 st/oxr: error on displayTime <= 0 in xrEndFrame 2020-05-26 19:34:49 +01:00
Jakob Bornecrantz 589a4ad3e9 st/oxr: Better printing of envBlendMode errors 2020-05-26 19:34:49 +01:00
Christoph Haag 4ea17ce7be st/oxr: Always error on unsupported blend mode
The spec requires always returning an error if the blend mode is unsupported:

XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED must be returned if
XrFrameEndInfo::environmentBlendMode is not supported.
2020-05-26 19:34:49 +01:00
Ryan Pavlik 5383944f85 comp/main: Fix warning 2020-05-26 11:25:03 -05:00
Ryan Pavlik e565ab6d0f d/psvr: Fix warnings 2020-05-26 11:25:03 -05:00
Ryan Pavlik 3624c17754 st/oxr: Fix some warnings by initializing variables. 2020-05-26 11:25:03 -05:00
Ryan Pavlik 525f9c09f2 inc/xrt: Documentation improvements and cleanups. 2020-05-26 11:24:57 -05:00
Ryan Pavlik 0f7832f2c8 st/p: Fix warnings when building without OpenCV 2020-05-26 11:21:09 -05:00
Jakob Bornecrantz 98d11709fb st/oxr: Remove head offset when submitting layers 2020-05-26 11:33:58 +01:00
Lubosz Sarnecki eab3cac623 st/oxr: Verify valid swapchain array index for quads. 2020-05-26 11:33:58 +01:00
Lubosz Sarnecki 8b0a43a64e st/oxr: Test for XR_ERROR_POSE_INVALID.
In quad verification.
2020-05-26 11:33:58 +01:00
Lubosz Sarnecki b1541c2d1e st/oxr: Return XR_ERROR_SWAPCHAIN_RECT_INVALID.
For out of bounds imageRect offsets on quad layers.
2020-05-26 11:33:58 +01:00
Lubosz Sarnecki 1bad77efb4 st/oxr: Return XR_ERROR_SWAPCHAIN_RECT_INVALID.
For negative imageRect offsets on quad layers.
2020-05-26 11:33:58 +01:00
Jakob Bornecrantz 129d76687e c/main: Idle VkDevice after presenting VkSwapchain 2020-05-26 11:33:58 +01:00
Jakob Bornecrantz 7ab48b691c c/main&ipc: Adopt to flip y in layers change
Client side changes by Lubosz Sarnecki.
2020-05-26 11:33:58 +01:00
Lubosz Sarnecki 9c8d0ae3cc xrt: Pass the flip y on layer per layer basis.
st/oxr: Adopt to flip y in layers change.
c/client: Adapt to flip y in layers change.
Set true for GL and false for Vulkan.
2020-05-26 11:33:58 +01:00
Lubosz Sarnecki e445f60ccf ipc: Add client side support for layers. 2020-05-26 11:33:58 +01:00
Jakob Bornecrantz 83ace60132 c/main: Add simple support for new layer interface 2020-05-26 11:33:58 +01:00
Jakob Bornecrantz e36e457560 c/client: Add full support for new layer interface 2020-05-26 11:33:58 +01:00
Lubosz Sarnecki 9349193d0c st/oxr: Use new layer interface and accept multiple projection and quad layers.
Authered by Jakob Bornecrantz and Lubosz Sarnecki.
2020-05-26 11:33:58 +01:00
Jakob Bornecrantz 84700f3209 xrt: Add layers to the compositor interface 2020-05-26 11:33:58 +01:00
Jakob Bornecrantz f9e933af39 d/psmv: Transform the ball tip pose so it can be used for pointing 2020-05-25 19:50:31 +00:00
Christoph Haag 07d8fdae46 build: Set XRT_HAVE_V4L2 in meson too 2020-05-25 20:50:33 +02:00
Jakob Bornecrantz b7b9d9307b ipc: Remove leftover fprintf (NFC) 2020-05-23 13:54:49 +01:00
Jakob Bornecrantz cea8f93892 st/oxr: Fix missed change from MNDX_egl_enable name change 2020-05-21 11:20:32 +01:00
Jakob Bornecrantz d37f446def st/oxr: Update openxr header and switch to XR_MNDX_egl_enable 2020-05-20 18:08:56 +00:00
Ryan Pavlik 75d05c49de build: Fix missed rename of config 2020-05-19 16:15:00 -05:00
Christoph Haag 854272a7d0 d/vive_controller: Don't infinitely loop in device update
This prevented the update thread from being joined and the driver from being destroyed.
2020-05-14 00:25:34 +02:00
Christoph Haag b32652c4df ipc: Implement xrWaitFrame by waiting on a shared semaphore v2
Version 2 additions by Jakob, still use a semaphore to wake up the client.
But now instead call the compositor wait frame and have that thread wake up
the client, and return immediatly on the IPC channel.
2020-05-13 17:07:08 +01:00
Jakob Bornecrantz ac38679641 r/debug: Fix ODR rule violation
Closes #79
2020-05-12 22:06:10 +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 4dd7a603f4 xrt: Temporarily fix build broken by layer violation. 2020-05-12 11:52:51 -05:00
Ryan Pavlik 098ddde5da ipc: Fix typo 2020-05-12 11:46:53 -05:00
Christoph Haag 653ca1d39d d/vive: Declare struct forward declaration as extern
Fixes build with gcc on arch.
2020-05-12 15:38:04 +02:00
Lubosz Sarnecki 136794ab63 c/distortion: Idle before running destructor. 2020-05-11 20:22:51 +01:00
Lubosz Sarnecki 3e88a850ff c/renderer: Use vk_submit_cmd_buffer from vk_helpers. 2020-05-11 20:22:51 +01:00
Lubosz Sarnecki dc45605c84 c/renderer: Use vk_init_cmd_buffer from vk_helpers. 2020-05-11 20:22:51 +01:00
Lubosz Sarnecki e8d273bc41 aux/vk: Add vkFlushMappedMemoryRanges. 2020-05-11 20:22:51 +01:00
Lubosz Sarnecki 54985b110a aux/vk: Add descriptor set functions. 2020-05-11 20:22:50 +01:00
Lubosz Sarnecki f131739c00 aux/vk: Take VkExtent2D and VkImageUsageFlags in vk_create_image_simple. 2020-05-11 20:21:58 +01:00
Lubosz Sarnecki c09beb9efb aux/vk: Add vk_get_access_flags. 2020-05-11 20:21:58 +01:00
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
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
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 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
Jakob Bornecrantz c8b4a00482 comp: Delay swapchain destruction until a safe time, like end frame. 2020-04-15 19:57:46 +01:00
Jakob Bornecrantz 061dbefbd0 u/threading: Add a new higher level threading helpers 2020-04-15 17:33:35 +00:00
Lubosz Sarnecki 916d7708c2 c/renderer: Don't wait for device idle every frame.
Do wait on device idle when destroying the swap chain.
Don't wait on device idle multiple times in resize.

Validation on NVIDA and AMD is happy when only keeping
the two idles when resizing and destroying the swapchain.
2020-04-15 18:07:17 +02:00
Lubosz Sarnecki e477452ac6 c/renderer: Add fences for each command buffer.
Wait for fences on vkQueueSubmit.
2020-04-15 18:07:17 +02:00
Lubosz Sarnecki 8d3a0938fa aux/vk: Add vkResetFences. 2020-04-15 16:43:57 +02:00
Lubosz Sarnecki bda1cdaee1 c/renderer: Use only one buffer counter cache.
Use the same counter for frame and command buffers, as their number is
equal, which is retrieved from swapchain.image_count.
Use the struct member num_buffers in favor of passing it as parameter.
Reuse some command buffer functions.
2020-04-15 16:43:57 +02:00
Lubosz Sarnecki ddc7ceb214 c/renderer: Don't wait on device idle after acquiring swapchain image.
vkAcquireNextImageKHR is synchronized with the present_complete
semaphore.
2020-04-15 16:43:57 +02:00
Lubosz Sarnecki a34ad629f7 c/renderer: Don't wait idle queue after present.
This is not nesseccary as the vkQueuePresentKHR is synchronized by the
render_complete semaphore.
2020-04-15 16:38:54 +02:00
Lubosz Sarnecki 6cb99ea8bf c/renderer: Return false when vkEndCommandBuffer fails. 2020-04-15 14:00:35 +02:00
Jakob Bornecrantz ec076a0d5b xrt: Add helper functions for xrt_swapchain 2020-04-11 15:44:44 +01:00
Jakob Bornecrantz 945f2c82ed targets: Move xrt_instance implementation into targets 2020-04-11 12:31:58 +01:00
Jakob Bornecrantz b5354c4d83 st/gui: Remove old video test 2020-04-11 12:31:55 +01:00
Jakob Bornecrantz 57f407f02e st/gui: Tidy CMakeLists.txt 2020-04-11 12:19:28 +01:00
Jakob Bornecrantz 85bceaceca st/prober: Tidy CMakeLists.txt 2020-04-11 12:19:28 +01:00
Jakob Bornecrantz 69043bbf33 xrt: Add helper functions to xrt_device. 2020-04-11 00:55:14 +01:00
Jakob Bornecrantz c39cb39643 st/oxr: Use new xrt_instance object 2020-04-10 13:48:18 +01:00
Jakob Bornecrantz bbc07ed5f2 st/prober: Provide a default implementation of xrt_instance interface 2020-04-10 13:48:18 +01:00
Jakob Bornecrantz fa0789343e targets: Add stub implementations of xrt_gfx_provider_create_fd
This is needed by st/prober's default implementation of xrt_instance.
2020-04-10 13:48:18 +01:00
Jakob Bornecrantz 3b084b5c91 xrt: Add new xrt_instance object 2020-04-10 13:32:25 +01:00
Jakob Bornecrantz 452c1c0ba3 d/v4l2: Tweaks for the ELP stereo camera 2020-04-10 12:29:21 +00:00
Jakob Bornecrantz 231d39185e t/file: Remove hacky file handling functions 2020-04-10 12:29:21 +00:00
Jakob Bornecrantz 2063bc30b8 st/prober: Load tracking config from json and use new settings struct 2020-04-10 12:29:21 +00:00
Jakob Bornecrantz a11aa689a7 st/gui: Save camera and calibration data using new settings 2020-04-10 12:29:21 +00:00
Jakob Bornecrantz bc31233570 xrt: Add new "settings" interface for sharing camera settings across components 2020-04-10 12:29:21 +00:00
Jakob Bornecrantz de20d87f87 xrt: Make it possible for the prober to pass in JSON data to the drivers 2020-04-10 12:29:21 +00:00
Jakob Bornecrantz 7b049a9d65 t/file: Expose non-hack version of the calibration data save function 2020-04-10 12:29:21 +00:00
Jakob Bornecrantz f47c384b79 u/json: Add bool getter function 2020-04-10 12:29:21 +00:00
Jakob Bornecrantz b5dd07f2fa u/file: Add file helpers 2020-04-10 12:29:21 +00:00
Pete Black c02f89dc18 comp: Spell check 2020-04-09 17:34:27 +01:00
Lubosz Sarnecki bf49a421ba c/direct: Use common init swapchain function.
Simplify and add error messages.
2020-04-09 16:15:17 +00:00
Lubosz Sarnecki 77207ed585 c/direct: Shorten displays member names. 2020-04-09 16:15:17 +00:00
Lubosz Sarnecki 29b771818e c/direct: Move common direct mode code to comp_window_direct.
Create code file for common direct mode code.

Make common functions take generic parameters.

Use common code in randr and nvidia back ends.

Remove redunant includes.
2020-04-09 16:15:17 +00:00
Lubosz Sarnecki 94bc4cba28 c/direct: Split NVIDIA and RandR backends.
Rename functions and structs.

Define unused function overrides separatelty.

c/window: Define new backend init methods.
2020-04-09 16:15:17 +00:00
Lubosz Sarnecki 4ddcca7abd w/direct_mode: Use same num_displays variable for NVIDIA and RandR. 2020-04-09 16:15:17 +00:00
Jakob Bornecrantz 1ccfa236db xrt: Tidy whitespace 2020-04-09 15:08:11 +01:00
Pete Black 80d1d29cb5 comp: Tidy and spell check 2020-04-09 14:50:35 +01:00
Jakob Bornecrantz 6fe02588f9 comp: Get num_images from the fd compositor 2020-04-08 15:20:36 +01:00
Jakob Bornecrantz 9d009784b6 st/gui: Show name of device when no modes are found 2020-04-08 10:51:12 +01:00
Jakob Bornecrantz 817ec2f2bc u/hashset: Fix ISO C++ warning 2020-04-07 16:19:55 +01:00
Lubosz Sarnecki 6b05c216ce c/settings: Add a bunch of display strings to NVIDIA whitelist.
Whitelist Oculus DK1, DK2 and CV1.
Whitelist Vive Pro and Valve Index.
2020-04-07 13:45:11 +00:00
Lubosz Sarnecki 56a8e80844 c/direct_mode: Print meaningful error if no display matches NVIDIA whitelist. 2020-04-07 13:45:11 +00:00
Lubosz Sarnecki 7da70568be c/direct_mode: Use VkDisplayModeParametersKHR.
In favor of own struct to determine best available mode.
The loop now also starts as one, as we do not need compare the 0th mode
it itself and returns if there is only one mode.
2020-04-07 15:38:11 +02:00
Lubosz Sarnecki 7afb012544 c/direct_mode: Check if NVIDIA path found any displays.
This helps failing earlier with an NVIDIA Optimus setup, which currently
is not supported.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki 6158a23dd9 c/direct_mode: Port to plain C. 2020-04-07 15:00:16 +02:00
Lubosz Sarnecki 16d6500923 c/direct_mode: Don't cache enumerated modes in a std:map. 2020-04-07 15:00:16 +02:00
Lubosz Sarnecki 015d9457fe c/direct_mode: Extract append_randr_display function
Don't allocate string when it's not needed.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki b399960f67 c/direct_mode: Cast display int only for comparision with size().
It is clearer to leave `int display` from settings as signed integer and
cast only for the comparision with the unsigned vector size.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki a449ed174a c/direct_mode: Create append_nvidia_entry_on_match function. 2020-04-07 15:00:16 +02:00
Lubosz Sarnecki f8c99b0230 c/direct_mode: Use ARRAY_SIZE macro. 2020-04-07 15:00:16 +02:00
Lubosz Sarnecki c0ae309415 c/direct_mode: Remove unused nv_modes map. 2020-04-07 15:00:16 +02:00
Lubosz Sarnecki 865b668ee7 c/xcb: Port to plain C.
The code was already essentialy C, just needed to replace the pairs with
structs and the vector with an array, it was fixed length anyway.

The code feels more natural in C.
2020-04-07 15:00:16 +02:00
Jakob Bornecrantz 46f51e8139 os/ble: Fix memory leak if we fail to find a device 2020-04-03 17:21:55 +01:00
Jakob Bornecrantz 4d7634845d st/prober: Print serial, product and manufacturer from udev 2020-04-03 14:10:07 +01:00
Jakob Bornecrantz 96edbd9249 st/prober: Print serial, product and manufacturer from libuvc 2020-04-03 14:09:56 +01:00
Lubosz Sarnecki 1b7b8c163f comp: Further remove unused struct field initializers. 2020-04-01 12:50:10 +00:00
Lubosz Sarnecki b6d8d4b458 comp: Don't initialize unused fields in Vulkan structs.
In order to save redundancy with initializing empty fields with NULL / 0
values and improve readability of the Vulkan code.

This patch also uses struct initializers where possible.

This essentially reverts 1eae45212e.
2020-04-01 12:50:10 +00:00
Lubosz Sarnecki 65d6ade6f3 d/ns: Remove redundant semicolons.
As found by C++ pedantic warnings.
2020-03-31 18:26:56 +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
Lubosz Sarnecki 20f281631b comp: Don't leak xcb replies.
According the XCB documentation the reply structs must be freed. I found
this when running a minimal example related to the direct mode code in
valgrind.
2020-03-31 17:47:01 +02:00
Jakob Bornecrantz a8a4d8c3dd d/arduino: Add new flexible arduino based input device 2020-03-27 10:22:19 +00:00
Ryan Pavlik bc53be8562 t/imu_fusion: Clean up and improve comments 2020-03-26 12:00:26 +00:00
Ryan Pavlik 4c54ccd0fb d/psmv: Switch to using pre-filter 2020-03-26 12:00:26 +00:00
Ryan Pavlik 98ad405d59 d/psmv: Use all 6 calibration measurements to compute accel bias. 2020-03-26 12:00:26 +00:00
Ryan Pavlik 86b3d9f587 t/calibration: Provide read-only access to size as cv::Size in calibration wrapper 2020-03-26 12:00:26 +00:00
Ryan Pavlik 4f5e2aea4e aux/tracking: Fix the API that led to the error I hit. 2020-03-26 12:00:26 +00:00
Ryan Pavlik c6a574191d aux/tracking: Add image undistort/normalize cache mechanism 2020-03-26 12:00:26 +00:00
Ryan Pavlik cf883817c2 t/psmv: Retrieve more data from camera calib. 2020-03-26 12:00:26 +00:00
Ryan Pavlik d198e93fcb external: Update flexkalman 2020-03-26 12:00:26 +00:00
Jakob Bornecrantz 9ff0ee2e6a st/gui: Fix compilation issue with OpenCV
Closes #63
2020-03-25 19:59:16 +00:00
Jakob Bornecrantz 622c848fa2 t/calib: Silence missing reference warning 2020-03-25 16:32:16 +00:00
Jakob Bornecrantz dd5246ceaf d/dd: Use new pre-filter and 3DOF fusion, also tidy driver. 2020-03-25 13:58:51 +00:00
Jakob Bornecrantz 2a68f3c9d3 d/dd: Give correct delta into math_quat_integrate_velocity 2020-03-25 13:58:51 +00:00
Jakob Bornecrantz 99eda56d39 d/vive: Use new 3DOF fusion 2020-03-25 13:58:51 +00:00
Jakob Bornecrantz 3e5da414f7 aux/math: Add 3DOF imu fusion 2020-03-25 13:58:51 +00:00
Jakob Bornecrantz f2ebe74748 aux/math: Add a simple imu pre-filter 2020-03-25 13:58:51 +00:00
Jakob Bornecrantz 23a66eb031 aux/math: Add math_matrix_3x3_rotate_vec3 function 2020-03-25 13:58:51 +00:00
Jakob Bornecrantz 18373730a8 aux/math: Expand the vec3 functions 2020-03-25 13:58:51 +00:00
Jakob Bornecrantz 21e77b85d7 aux/math: Add quat from angle vector function 2020-03-25 13:58:51 +00:00
Jakob Bornecrantz e3516061bb u/var: Add expand RO values 2020-03-25 13:58:51 +00:00
Ryan Pavlik a974562d43 t/openxr: Unify configured files for Meson and CMake. 2020-03-23 17:29:43 -05:00
Ryan Pavlik 377ae07e53 xrt: Add missing SPDX tags 2020-03-23 17:29:43 -05:00
Ryan Pavlik 09c189b6ba build: Install more targets 2020-03-23 17:29:43 -05:00
Jakob Bornecrantz f8847912a7 os/ble: Fix error on not finding any device 2020-03-13 11:07:32 +00:00
Jakob Bornecrantz c99546e88f xrt: Add some docu to refcount function 2020-03-11 22:00:54 +00:00
Jakob Bornecrantz 6ecc1e30f3 xrt: Make stereo_camera_calibration refcounted
This allows the data to be safely shared and passed around, even allowing us
to tag frames with the data and passed around that way instead.

Since it now can be passed around more safely make the prober call the save
function instead of the calibration code. This then forms a basis for further
work where we can hook this up into a more proper configuration file.
2020-03-11 22:00:54 +00: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
Pete Black a0be6e139a xrt: Add xrt_vec2_i32 2020-03-11 21:36:49 +00:00
Pete Black 8597ad5ee8 u/bitwise: Add bitwise manipulator functions 2020-03-11 21:36:49 +00:00
Jakob Bornecrantz 0b63cb2da3 aux/math: Add vec2 squared length function 2020-03-11 20:37:20 +00:00
Jakob Bornecrantz 119dc283af u/mesh: Fix file brief 2020-03-11 20:37:20 +00:00
Christoph Haag de7d9de5ae st/oxr: Fill XrViewConfigurationView with new two call helper
The previous two call helper macro copied the entire input struct to output struct.
In particular this did not keep the .type and .next fields intact.

Rather than trying to keep those intact, each struct type should have its own fill function,
only filling in the data we actually want to fill in.
2020-03-11 05:10:07 +01:00
Jakob Bornecrantz 622320904a xrt: Misc tidy of u_var_timing 2020-03-09 20:01:38 +00:00
Jakob Bornecrantz a54b92162e comp: Fix accidental code change from commit 9b662596
Spotted by @mpiatka.
2020-03-09 14:40:10 +00:00
Christoph Haag e8ccb07db7 st/gui: Add compositor frame timing graph to debug ui 2020-03-09 12:59:12 +01:00
Ryan Pavlik 8548d3f7e6 build: Another missed linking fix. 2020-03-05 17:52:49 +00:00
Jakob Bornecrantz a03d1fbf97 d/rs: Use realsense2::realsense2 in cmake
Not sure if this is the correct thing todo as the librealsense example
doesn't use the realsense2::realsense2 form.

https://github.com/IntelRealSense/librealsense/blob/master/examples/cmake/CMakeLists.txt
2020-03-05 17:27:08 +00:00
Jakob Bornecrantz 59f0d0ff0a u/time: Use smaller xrt_config_os.h instead of xrt_config.h 2020-03-05 11:25:50 +00:00
Ryan Pavlik 46c9fa7c2b build: aux_util depends on aux_math. 2020-03-04 17:25:27 -06:00
Ryan Pavlik fe40691052 build: Start using version script to reduce the number of exported symbols 2020-03-04 09:55:16 -06:00
Ryan Pavlik 71c29425d4 build: Fix linking issues preventing the OpenXR runtime from working. 2020-03-04 09:54:47 -06:00
Ryan Pavlik 92205ab5be build: Refactor CMake build to use static libraries instead of object bundles.
This allows transitive dependencies to work easier and improves compatibility.
It takes a little bit more storage at build time, and possibly a little extra time.
2020-03-04 11:15:35 +00:00
Ryan Pavlik 91ba5d04bc st/prober: Fix some unused-thing warnings when building with fewer deps. 2020-03-04 11:15:35 +00:00
Ryan Pavlik f3eac87504 xrt: Correct usage of XRT_MAYBE_UNUSED on functions.
It shouldn't be used on a function marked "static inline" - that's
sufficient to avoid the warning. So, it should almost never be in
a header.
2020-03-04 11:15:35 +00:00
Ryan Pavlik 778315bc52 xrt: Fix layer violations in interface headers.
A few were including aux headers.
2020-03-04 11:15:35 +00:00
Ryan Pavlik b1b08a610c st/prober: Add missing includes 2020-03-04 11:15:35 +00:00
Jakob Bornecrantz d2126882f6 d/rs: Add missing include 2020-03-04 11:15:35 +00:00
Ryan Pavlik 443528030d d/psmv: Add missing include 2020-03-04 11:15:35 +00:00
Ryan Pavlik 601a079387 d/hydra: Add missing include 2020-03-04 11:15:35 +00:00
Ryan Pavlik 0cb53a8c53 d/vive: Add missing include 2020-03-04 11:15:35 +00:00
Ryan Pavlik 5a633905de t/psvr: Add missing include 2020-03-04 11:15:35 +00:00
Ryan Pavlik 2c271048c0 d/dummy: Fix typo in comment 2020-03-04 11:15:35 +00:00
Jakob Bornecrantz 2ded61258c build: Fix no drivers getting included on cmake
I'm pretty sure I already did this, I guess I dropped the patch by
misstake. Well here it is anyway.
2020-03-03 13:36:21 +00:00
Ryan Pavlik b1b451eb96 comp: Fix 32-bit warnings 2020-03-03 10:50:41 +00:00
Ryan Pavlik d4c5b37bc0 st/oxr: Fix 32-bit warnings 2020-03-03 10:50:41 +00:00
Ryan Pavlik 2aa3b27695 aux/vk: Fix 32-bit warning 2020-03-03 10:50:41 +00:00
Ryan Pavlik 5af6182810 comp: Fix 32-bit porting issues. 2020-03-03 10:33:14 +00:00
Ryan Pavlik ffa5a76cea comp/client: More 32-bit porting fixes 2020-03-03 10:33:14 +00:00
Ryan Pavlik 163b39b7a1 st/oxr: Fix some 32-bit porting warnings. 2020-03-03 10:33:14 +00:00
Ryan Pavlik 4d7a8d819c util/hashset: Add missing include. 2020-03-03 10:33:14 +00:00
Ryan Pavlik 7d10788232 include/xrt: Fix Vulkan-related build issue on 32-bit. 2020-03-03 10:33:14 +00:00
Ryan Pavlik 98b1b11604 include/xrt: Add a bit-width detection define. 2020-03-03 10:33:14 +00:00
Ryan Pavlik d7121e8df4 st/oxr: Fix the declaration of our entry points.
We need the attributes and calling convention to match the header
2020-03-03 10:33:14 +00: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 a925af90e7 xrt: Do not pass in timestate into compositor 2020-03-02 20:18:49 +00:00
Ryan Pavlik 807438bb69 os/time: Remove XRT_MAYBE_UNUSED usages.
static inline is sufficient to avoid warnings about unused functions.
2020-03-02 14:01:18 -06:00
Ryan Pavlik 31ee6a1966 os/time: Documentation. 2020-03-02 13:59:06 -06:00
Ryan Pavlik 8f0082e810 drivers: Clean up documentation.
Making the Modules page in Doxygen more consistent.
2020-03-02 12:35:49 -06:00
Ryan Pavlik fca21e83b0 aux/util: Provide a conversion function from CLOCK_MONOTONIC nanoseconds to adjusted time. 2020-03-02 12:34:19 -06:00
Ryan Pavlik 227e53d030 os/time: Clean up comments and ifdefs. 2020-03-02 12:24:49 -06:00
Jakob Bornecrantz ca3c266dc1 comp: Split client and main in the build system as well 2020-03-02 12:01:04 +00:00
Jakob Bornecrantz 8c06787d93 comp: Refactor documentation 2020-03-02 12:00:22 +00:00
Jakob Bornecrantz b308facf90 comp: Move all glue code into client folder 2020-03-02 12:00:22 +00:00
Jakob Bornecrantz 3ca7fbf2f0 comp: Remove common directory 2020-03-02 12:00:22 +00:00
Jakob Bornecrantz aeef692e08 xrt: Refactor out main compositor creating into own interface 2020-03-02 12:00:22 +00:00
Jakob Bornecrantz 09aa8794b2 aux/vk: Refactor out helper code into own library 2020-03-02 11:58:40 +00:00
Jakob Bornecrantz a7dff8284a xrt: Tidy xrt_vulkan_includes.h 2020-02-29 21:09:18 +00:00
Jakob Bornecrantz d4928e1a1c comp: Improve comment on vk_bundle 2020-02-29 21:09:18 +00:00
Jakob Bornecrantz e80775fb63 comp: Reuse vk_create_view function in swapchain 2020-02-29 21:09:18 +00:00
Jakob Bornecrantz 63ca028b83 t/hsv: Improve latency when debugging by pushing debug frame after all other frames 2020-02-29 16:20:41 +00:00
Jakob Bornecrantz b05cf3667a d/v4l2: Use timeval conversion function 2020-02-27 13:55:58 +00:00
Jakob Bornecrantz d375843b65 os/time: Add time getting and conversion functions
For Linux it is based on CLOCK_MONOTONIC.
2020-02-27 13:55:57 +00:00
Jakob Bornecrantz 039e29e7ad u/time: Tidy 2020-02-27 13:55:48 +00:00
Jakob Bornecrantz a228c3efff xrt: Slightly more correct Display typedef
Closes #49
2020-02-24 16:58:15 +00:00
Christoph Haag 1cf742a3dc comp: Add XRT_COMPOSITOR_DESIRED_MODE env var to choose mode for direct mode.
The variable should be set to the index in the enumeration of a modes according to VK_KHR_display.

Monado can print a list of available modes with their indices with the env var XRT_COMPOSITOR_PRINT_MODES=1.
2020-02-19 13:51:00 +00:00
Christoph Haag c2250e5af0 comp: print available modes with XRT_COMPOSITOR_PRINT_MODES=1
To not clutter the user's output with debug info, add a variable to print only the available modes.
2020-02-19 13:51:00 +00:00
Christoph Haag 6b8103f31b comp: Update nominal frame interval to match chosen mode in direct mdoe
This value is used in xrWaitFrame() to throttle the application's rendering
down to the refresh rate of the HMD.
2020-02-19 13:51:00 +00:00
Christoph Haag 36d6b71e8a comp: Choose best mode for direct mode by default
Best mode means: first maximize the rendered pixels, then maximize the refresh rate.
2020-02-19 13:51:00 +00:00
Jakob Bornecrantz 7207c50992 math: Add filter fifo helper 2020-02-18 13:33:22 +00:00
Christoph Haag 7403d45133 d/ohmd: Add quirk to rotate WVR2 display left
OpenHMD can't easily tell us the WVR SKU because it has to read it
from the config after opening the device, while the product string
is set at device list time.

As a workaround, recognize the WVR2 by its resolution.
2020-02-18 00:33:59 +01:00
Jakob Bornecrantz a4ed39bf65 d/ohmd: Select correct pano_warp_scale 2020-02-15 16:03:13 +00:00
Jakob Bornecrantz f974301877 d/rs: Process frame does not take ownership of the frame 2020-02-12 14:16:39 +00:00
Jakob Bornecrantz 42df1aab20 d/ns: Tidy code 2020-02-12 12:22:21 +00:00
Jakob Bornecrantz eee034c18d d/ns: Remove unused file 2020-02-12 12:22:08 +00:00
Jakob Bornecrantz 68422f6e3e d/ns: Fix all warnings and tidy code 2020-02-12 12:22:08 +00:00
Nova d4e034dd44 d/ns: Greatly extend the North Star driver 2020-02-12 12:22:07 +00:00
Jakob Bornecrantz fd9cef6493 d/vive: Use proper external include in meson 2020-02-10 20:38:19 +00:00
Jakob Bornecrantz 937e6fafb7 d/ns: Use RealSense 6DOF for tracking if available 2020-02-10 20:07:31 +00:00
Jakob Bornecrantz b75ac54fe6 d/ns: Only create a North Star hmd if config path is set 2020-02-10 20:07:31 +00:00
Jakob Bornecrantz d6d934e35f d/rs: Meson build 2020-02-10 20:07:31 +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 d48022d55d u/json: Add a lot more helper functions 2020-02-09 21:06:47 +00:00
Nova 4cfd4c4657 math: Added vec3 math functions 2020-02-09 21:06:47 +00:00
Ryan Pavlik f3803f7365 t/imu: Update docs to specify units for gyro. 2020-01-31 17:19:54 +01:00
Ryan Pavlik afd5328bd6 t/imu: Add optional debug prints to simple IMU fusion.
By request of @pblack.
2020-01-31 17:19:48 +01:00
Ryan Pavlik a11ba04b96 aux/tracking: handle loading into empty mat 2020-01-31 17:19:48 +01:00
Ryan Pavlik 85761db12c aux/math: Update comment 2020-01-31 17:19:48 +01:00
Ryan Pavlik 84dfbf241f d/vive: Fix typo. 2020-01-31 10:47:52 +01:00
Ryan Pavlik c590a3f69b st/oxr: Fix segfault in conformance 2020-01-31 10:47:52 +01:00
Ryan Pavlik eaf834249b t/calib: Verify that storage location doesn't move for wrappers. 2020-01-31 10:47:52 +01:00
Jakob Bornecrantz fca0513b4e d/v4l2: Print out the card name during debugging 2020-01-26 19:37:37 +00:00
Jakob Bornecrantz 0df88dedca st/gui: Add support for Leap Motion Controller 2020-01-26 19:37:37 +00:00
Jakob Bornecrantz ca06c16eeb st/gui: Better conversion sinks 2020-01-26 19:37:37 +00:00
Jakob Bornecrantz 8aee77401b t/calib: Tweak printing and move assert to after printing 2020-01-26 19:37:37 +00:00
Jakob Bornecrantz be75fe823a t/calib: Fix default asymmetrical circles rows values 2020-01-26 19:37:37 +00:00
Pete Black a80ef43339 t/calib: Also accept L8 frames 2020-01-26 19:37:37 +00:00
Jakob Bornecrantz c14d709a85 u/sink: Better error printing in converters 2020-01-26 19:37:37 +00:00
Jakob Bornecrantz 405f68c98a u/sink: Convert handle YUV888 to RGB888 as well 2020-01-26 19:37:37 +00:00
Jakob Bornecrantz 50b3794816 u/sink: Add quirk support for Leap Motion Conrtoller 2020-01-26 19:37:37 +00:00
Jakob Bornecrantz 16eb05e089 u/sink: Make quirk sink creation parameters into a struct. 2020-01-26 19:37:37 +00:00
Jakob Bornecrantz f16230a2d5 u/sink: Add a converter sink that accepts yuv, yuyv or l8 2020-01-26 19:37:36 +00:00
Pete Black f45f69c9f2 u/sink: Add a deinterleaver sink 2020-01-26 19:37:36 +00:00
Jakob Bornecrantz 576fcac5ae xrt: Add interleaved stereo format 2020-01-26 19:37:36 +00:00
Jakob Bornecrantz e74fab4d14 d/ns: Correct directory in documentation 2020-01-26 17:04:34 +00:00
Jakob Bornecrantz 1bcf13ba7e u/mesh: Refactor and document 2020-01-26 16:00:14 +00:00
Jakob Bornecrantz 2114fc877d comp: Add option to draw wireframe 2020-01-25 20:19:13 +00:00
Jakob Bornecrantz 62addc7a9f d/ns: Add stub mesh generation code 2020-01-25 17:32:32 +00:00
Nova 981fe55a27 d/ns: Add North Star stub driver 2020-01-25 17:06:51 +00:00
Jakob Bornecrantz 260a0279aa d/dummy: Track pose 2020-01-25 16:40:09 +00:00
Jakob Bornecrantz 21ed0facb7 st/gui: Add a bit hacky pose controls 2020-01-25 16:39:57 +00:00
Jakob Bornecrantz ef4798ab1c u/var: Add pose tracking 2020-01-25 16:37:46 +00:00
Jakob Bornecrantz 38fbb1d7ad u/var: Use a macro to only write list once 2020-01-25 14:54:44 +00:00
Jakob Bornecrantz d305f773ea d/ohmd: Do not open External Device by default 2020-01-25 14:42:02 +00:00
Jakob Bornecrantz 356e4c18c1 d/dummy: Add dummy HMD driver 2020-01-25 14:42:02 +00:00
Jakob Bornecrantz a48d5bb835 d/vive: Also rotate acceleration 2020-01-24 21:43:32 +00:00
Ryan Pavlik 798fa623ea u_json: Add array helper. 2020-01-24 21:42:43 +00:00
Jakob Bornecrantz b3e84f9041 xrt: Make sure that auto probers can add non-HMD devices after a HMD has been found 2020-01-23 15:51:36 +00:00
Jakob Bornecrantz c2560ae6d2 xrt: Switch to new quirking sink
This is done in one commit as split out they would leave the code
in a fairly broken state.
2020-01-17 14:31:50 +00:00
Jakob Bornecrantz 4024bd454a xrt: Expose the name of the frameserver source 2020-01-17 14:31:45 +00:00
Jakob Bornecrantz 6603882a2d u/sink: Add new quirking sink 2020-01-17 14:31:45 +00:00
Jakob Bornecrantz 30e9338aba t/calib: Don't lose any pixels in stereo rectification 2020-01-17 14:01:52 +00:00
Jakob Bornecrantz 1085db150b t/calib: Fix rectify for stereo fisheye camera 2020-01-17 14:00:22 +00:00
Jakob Bornecrantz ba10152765 t/calib: Print out rectify matricies 2020-01-17 14:00:22 +00:00
Jakob Bornecrantz 67d33550cf t/calib: Change how default arguments are applied 2020-01-17 12:09:08 +00:00
Jakob Bornecrantz 8564bbec4f st/prober: Update GUI with new truths 2020-01-16 23:04:14 +00:00
Ryan Pavlik e35c87d59e comp: Fix glXGetProcAddress prototype when building as C++ 2020-01-16 22:37:43 +00:00
Ryan Pavlik 5592ed28da xrt: Make vkGetInstanceProcAddr prototype available. 2020-01-16 22:37:39 +00:00
Ryan Pavlik 0df4dc2be1 st/prober: Fix typo 2020-01-16 22:37:29 +00:00
Jakob Bornecrantz d1af0b7f15 t/calib: Play around with mono calibration a bit 2020-01-16 22:34:04 +00:00
Jakob Bornecrantz 62013c142b t/helper: Introduce a small debug frame helper 2020-01-16 18:15:21 +00:00
Jakob Bornecrantz 50eda5a262 t/hsv: Copy stereo format to result frame 2020-01-16 17:47:08 +00:00
Jakob Bornecrantz 5d6ed6973c u/sink: Copy stereo format to result frame 2020-01-16 17:47:08 +00:00
Ryan Pavlik c957072dfc t/calib: Remove references to left and right from new structs 2020-01-16 09:14:07 -06:00
Ryan Pavlik 81acc290cb t/calib: Clean up emplace_back calls. 2020-01-16 09:14:07 -06:00
Ryan Pavlik 2d20f2066a t/psmv: Update existing blob tracker to work with simpler input 2020-01-16 09:12:50 -06:00
Ryan Pavlik 91fdfd0c94 t/file: Have matrix reader be more careful about loading, and optionally transpose
The, actually consistently use result of matrix read and built-in transpose to simplify code
2020-01-16 09:08:32 -06:00
Ryan Pavlik bc49fd4803 t/calib: Use cv::Mat_<> for wrappers since the element type is known 2020-01-16 09:08:32 -06:00
Ryan Pavlik fcdebc6e9d aux/tracking: Re-organize structs related to camera calibration.
Removes the "raw" data structures for camera calibration, not needed.
The only thing they contained beyond the revised regular structures
was derived data that the consumer might parameterize differently.

Renames t_settings_stereo to t_stereo_camera_calibration.
The calibration info is data (that could be stored on the device, etc),
not settings.
2020-01-16 09:07:52 -06:00
Jakob Bornecrantz 771006f97b t/calib: Fix OpenCV type-related assertions and some perf enhancments
Pre-reserve, use emplace to avoid copies.
This is a combination of Ryan's patches and mine.

t/calib: performance improvements
t/calib: Fix doxygen warning
t/calib: Fix asserts and some perf enhancments
2020-01-16 00:02:56 +00:00
Samantha Bowen 14bfd17f39 d/ohmd: Add position tracking. 2020-01-15 21:07:05 +00:00
Ryan Pavlik b44f14d348 st/gui: Display the calibration status data. 2020-01-14 15:55:50 -06:00
Ryan Pavlik 9790ca7602 t/calib: Add interface for getting some status info on calib process. 2020-01-14 15:55:50 -06:00
Ryan Pavlik dec5d8de7d st/gui: Update camera calibration config GUI 2020-01-14 15:55:50 -06:00
Ryan Pavlik 871395d5b5 build: Adjust meson build equivalently 2020-01-14 12:28:23 -06:00
Ryan Pavlik c68d3bfe54 build: Adjust CMake build to allow actually disabling dependencies/options 2020-01-14 11:51:12 -06:00
Ryan Pavlik f834d20300 xrt: Move OpenXR platform defines to build system 2020-01-14 11:51:12 -06: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 47f704277a xrt: Let BUILD_TRACKING mean you need more than just the IMU fusion.
This is required to build anything that uses the IMU fusion module
without OpenCV.
2020-01-14 11:51:12 -06:00
Ryan Pavlik 67a561d0ea st/oxr: Fix ifdef guards 2020-01-14 11:51:12 -06:00
Ryan Pavlik 682f41a37c comp: Fix build when VK_USE_PLATFORM_XLIB_XRANDR_EXT is not defined 2020-01-14 11:51:12 -06:00
Ryan Pavlik 358cde31b7 comp: Add a comment explaining why a function is guarded 2020-01-14 11:51:12 -06:00
Ryan Pavlik d03db42075 d/hdk: Does not require hidapi 2020-01-14 11:51:12 -06:00
Jakob Bornecrantz 382813edd6 d/vive: Dump JSON config on debug instead of spew 2020-01-14 15:59:41 +00:00
Jakob Bornecrantz 8ded6bac8b d/vive: Extract lighthouse data 2020-01-14 15:59:41 +00:00
Jakob Bornecrantz 5bf65b41fa math: Add some more functions 2020-01-14 15:59:41 +00:00
Jakob Bornecrantz 796d9c49ec t/calib: Support stereo fisheye in the config file 2020-01-14 15:42:31 +00:00
Jakob Bornecrantz 4ae650a006 t/calib: Support stereo fisheye in stereo calibration 2020-01-14 15:42:31 +00:00
Jakob Bornecrantz 0e6b908f80 t/callib: Move stereo calibration to new interaction 2020-01-14 15:42:31 +00:00
Jakob Bornecrantz 3f9d94cb8a d/psmv: Mark ball pose as active depending on tracking 2020-01-13 21:59:37 +00:00
Jakob Bornecrantz c383a933ea st/oxr: Propegate device input active status through API 2020-01-13 21:59:37 +00:00
Jakob Bornecrantz 7082a599c7 xrt: Make it possible for the device set active status on inputs 2020-01-13 21:59:37 +00:00
Jakob Bornecrantz 998b198b44 math: Fix math_pose_invert 2020-01-13 10:37:14 +00:00
Ryan Pavlik 4cc9380f0b st/oxr: Fix missing include. 2020-01-09 17:36:24 -06:00
Ryan Pavlik c1928468af t/gui: Fix SDL flag enum type 2020-01-09 17:35:54 -06:00
Ryan Pavlik c123195800 t/oxr: Fix type issue with sdl2 code 2020-01-09 17:35:54 -06:00
Ryan Pavlik 9e953083fc st/oxr: Move shipped binding data into a separate header to avoid re-declaration of statics 2020-01-09 17:35:54 -06:00
Ryan Pavlik 13c099f59e xrt: Fix for mismatched parameter names 2020-01-09 22:54:01 +00:00
Ryan Pavlik ae466ce70e d/vive: Fix typos. 2020-01-09 16:32:18 -06:00
Jakob Bornecrantz b816afce63 d/vive: Extract Index canting parameter from the config 2020-01-09 15:22:14 +00:00
Jakob Bornecrantz 7618f4c5a4 math: Make it possible to get a rotation from a rotation matrix 2020-01-09 15:22:14 +00:00
Jakob Bornecrantz 35fcd2ae3d xrt: Add xrt_matrix_3x3 2020-01-09 15:22:14 +00:00
Ryan Pavlik 290bd7937b d/vive: Port to cJSON.
Replacing nxjson because of license issues: upstream of nxjson is LGPL3.
2020-01-09 15:21:04 +00:00
Jakob Bornecrantz eda46d3bea util: Add some wrapper files around cJSON
This makes cJSON files be accessible from everywhere in Monado,
and adds a nice place to add common helpers.
2020-01-09 15:21:04 +00:00
Jakob Bornecrantz d6ca37bc70 d/vive: Set last acc and gyro values 2020-01-09 15:21:04 +00:00
Jakob Bornecrantz 8306e00bd1 d/vive: Apply all axis flip after scale and bias 2020-01-09 15:21:04 +00:00
Jakob Bornecrantz 995ecfaac2 d/vive: Tidy IMU code 2020-01-09 15:21:04 +00:00
Jakob Bornecrantz 4895ab704c d/vive: Tidy and refactor config parsing 2020-01-09 15:21:04 +00:00
Christoph Haag bc20d84171 st/oxr: Also make sure to keep actions with outputs active 2020-01-09 02:13:08 +01:00
Christoph Haag a3d04090c5 st/oxr: Always make actions active that have inputs
If an applications only syncs a subset of action sets, the actions from all
sets that are not synced get the active bit reset.

Once the application starts syncing the previously not synced sets again,
the actions have to become active again.
2020-01-09 02:12:59 +01:00
Jakob Bornecrantz ba104f59f3 d/vive: Tidy motherboard thread 2019-12-22 14:08:14 +00:00
Jakob Bornecrantz 85197f1584 d/vive: Tidy sensors thread 2019-12-22 14:08:14 +00:00
Jakob Bornecrantz 784b53ded2 d/vive: Spew instead of debug vive_device_update_inputs 2019-12-22 13:35:37 +00:00
Ryan Pavlik 5c830f16b2 t/oxr: Fix linking in absence of SDL2 2019-12-07 18:25:37 +00:00
Ryan Pavlik 6d60227e06 comp: More renaming for clarity 2019-12-07 18:25:37 +00:00
Ryan Pavlik 9668437c78 comp: Rename comp_xlib_client to indicate it's also GL related 2019-12-07 18:25:37 +00:00
Ryan Pavlik e49fdd8523 st/oxr: EGL extension requires OpenGL enabled 2019-12-07 18:25:37 +00:00
Ryan Pavlik 51c3240c23 st/oxr: Improve extension support header. 2019-12-07 18:25:37 +00:00
Ryan Pavlik f25b5d7f8d st/gui: clang-tidy 2019-12-07 18:25:37 +00:00
Ryan Pavlik c92590930d d/vive: clang-tidy 2019-12-07 18:25:37 +00:00
Ryan Pavlik 5772f86292 d/psvr: clang-tidy 2019-12-07 18:25:36 +00:00
Ryan Pavlik a36d351a18 d/psmv: clang-tidy 2019-12-07 18:25:36 +00:00
Ryan Pavlik 56f8e3272e a/tracking: clang-tidy 2019-12-07 18:25:36 +00:00
Ryan Pavlik ceb600167c u/var: Clang tidy and make param names consistent/expressive 2019-12-07 18:25:34 +00:00
Ryan Pavlik 24158bd747 t/gui: Apply clang-tidy fixes to remove redundant returns. 2019-12-07 18:24:56 +00:00
Ryan Pavlik d9fb855f6e t/cli: Fix type correctness 2019-12-07 18:24:56 +00:00
Ryan Pavlik 06ce6617f5 st/oxr: Port logger realloc to helper macro 2019-12-07 18:24:56 +00:00
Ryan Pavlik c9f1b2be4b d/vive: Port realloc to helper macro 2019-12-07 18:24:56 +00:00
Ryan Pavlik a6d9eea394 comp: Port memory allocation to the helper macros 2019-12-07 18:24:56 +00:00
Ryan Pavlik 2d86dfd560 d/v4l2: Type safety fixes and realloc porting 2019-12-07 18:24:56 +00:00
Ryan Pavlik b47428b451 st/p: Convert to realloc macro 2019-12-07 18:24:56 +00:00
Ryan Pavlik f6d3aabc08 st/oxr: Convert remaining realloc in binding code 2019-12-07 18:24:56 +00:00
Ryan Pavlik 2b5fa2c57f st/p: Fix enum types in libusb usage 2019-12-07 18:24:56 +00:00
Ryan Pavlik 447b3550e8 st/oxr: Fix enum types in shipped bindings 2019-12-07 18:24:56 +00:00
Ryan Pavlik 2751824e16 st/gui: Type safety fixes 2019-12-07 18:24:56 +00:00
Ryan Pavlik e11eb0203f d/vive: Initializer order fix 2019-12-07 18:24:56 +00:00
Ryan Pavlik 282f38ca62 d/vive: Type safety fix 2019-12-07 18:24:52 +00:00
Ryan Pavlik be8530db74 d/psvr: Type correctness fixes 2019-12-07 18:21:28 +00:00
Ryan Pavlik a7a7545d0d d/psmv: Casting/type safety fixes 2019-12-07 18:21:22 +00:00
Ryan Pavlik 86db0622f9 d/vive: Split nxjson sources from vive sources 2019-12-07 18:21:17 +00:00
Christoph Haag fcd43180e6 comp: Error when forcing a nonexistent vulkan gpu index
Instead of segfaulting.
2019-12-03 20:33:46 +01:00
Ryan Pavlik 808892742b st/p: Fix allocation size error with realloc macro 2019-12-03 09:39:06 -06:00
Ryan Pavlik f20a0e14e0 st/oxr: Fix oversized allocation in binding code 2019-12-03 09:39:06 -06:00
Ryan Pavlik 4f6b4761cb aux/util: Add U_ARRAY_REALLOC_OR_FREE to safely wrap realloc. 2019-12-03 09:39:06 -06:00
Ryan Pavlik a602b2247f st/oxr: Fix bug in get current interaction profile.
We returned the path instead of putting it in the out value.
2019-12-03 09:39:06 -06:00
Ryan Pavlik 7ca4fb34d5 d/v4l2: typo fix 2019-12-03 09:39:06 -06:00
Ryan Pavlik 90e57a4e8a xrt: Fix types related to EGL.
Fixes #46
2019-12-03 09:30:31 -06:00
Jakob Bornecrantz ba9fd61bb8 u/sink: Reject frames that don't have a valid JPEG header 2019-11-23 00:01:05 +00:00
Jakob Bornecrantz cdec2ca367 t/calib: Add resolution size to image name 2019-11-22 23:59:35 +00:00
Jakob Bornecrantz ab0d94201a t/calib: s/grey/gray/g 2019-11-22 15:53:17 +00:00