Commit graph

4242 commits

Author SHA1 Message Date
danwillm 9e7f814328 aux/util: Remove old hand tracking code 2022-08-01 17:33:40 +00:00
danwillm 9dc8632b0f aux/util: Add u_hand_simulation
Co-authored-by: Moses Turner <moses@collabora.com>
2022-08-01 17:33:40 +00:00
Supreeeme 501d2c4fd5 Fix crash when no hand tracking or controllers 2022-07-31 17:09:19 -04:00
danwillm 72ff5cab80 st/steamvr_drv: add skeletal input from openxr hand tracking
Co-authored-by: Moses Turner <moses@collabora.com>
2022-07-28 12:19:20 +01:00
danwillm 9c9f4bb5c5 st/steamvr_drv: comment out "action binding reloaded" log message 2022-07-28 12:19:20 +01:00
danwillm 75995fede0 external, st/steamvr_drv: update OpenVR to 1.16.8 2022-07-28 12:19:20 +01:00
Christoph Haag ee450e6f29 comp/main: Fix chosen vk display mode debug print 2022-07-27 15:04:31 +02:00
Moses Turner 2868348e8c t/common: Make controllers work again with the Lighthouse builder
!1418 briefly broke controller setup.
2022-07-27 10:49:29 +00:00
Moses Turner 0c4b45c6c2 a/util: Add DEBUG_GET_ONCE_TRISTATE_OPTION 2022-07-27 10:49:29 +00:00
Moses Turner c0eed827c5 xrt: Remove t_hand_tracking_output_space
LEFT_CAMERA is the only one that remained useful
2022-07-27 10:49:29 +00:00
Moses Turner a5c0f0b426 h/mercury: Fix debug log 2022-07-27 10:49:29 +00:00
Jakob Bornecrantz 65d88f00aa t/common: Fix warning 2022-07-26 18:15:04 +00:00
Jakob Bornecrantz 19302a5d21 c/util: Fix warning 2022-07-26 18:15:04 +00:00
Jakob Bornecrantz 086a702b79 c/main: Fix warning 2022-07-26 18:15:04 +00:00
Jakob Bornecrantz 86ae6a5bb1 d/wmr: Fix warning 2022-07-26 18:15:04 +00:00
Ryan Pavlik 3fb162ea3a c/client: Turn off depth formats for D3D11, they are breaking Vulkan right now 2022-07-26 14:45:29 +00:00
Ryan Pavlik 980ad86008 a/vk: Get and show some external buffer data on startup, too. 2022-07-26 14:45:29 +00:00
Ryan Pavlik 490559ee6c st/oxr: Wire in D3D12 support 2022-07-26 14:45:29 +00:00
Ryan Pavlik a4d2740b4b c/client: D3D12 client compositor 2022-07-26 14:45:29 +00:00
Ryan Pavlik a9facfe671 c/client: Extract some utilities usable by D3D11 and 12 2022-07-26 14:45:29 +00:00
Ryan Pavlik 576b158a83 a/d3d: Add some d3d12 features 2022-07-26 14:45:29 +00:00
Ryan Pavlik f718ff151f st/oxr: Add d3d12 support to the extension support header. 2022-07-26 14:45:29 +00:00
Ryan Pavlik 5c24b8e637 xrt: Define D3D12 interface 2022-07-26 14:45:29 +00:00
Ryan Pavlik 189be3300c st/oxr: Add helper to verify compatible usage flags. 2022-07-26 14:45:29 +00:00
Ryan Pavlik ee26b5f575 a/d3d: Split out some d3d11 stuff from generic 2022-07-26 14:45:29 +00:00
Ryan Pavlik 79f86ff0e3 c/client: Fix swapchain leak in D3D11. 2022-07-26 14:45:29 +00:00
Ryan Pavlik 842c160c49 a/util: Guard against bad defs of "max" 2022-07-26 14:45:29 +00:00
Ryan Pavlik 8f55f87f3d build: Let compositor util consumers get to the includes. 2022-07-26 14:45:29 +00:00
Ryan Pavlik a8bb821cf5 ipc: Fix typo 2022-07-26 14:45:29 +00:00
Ryan Pavlik 46ad907dac ipc: Replace size_t usages.
Not safe to use any type whose size differs between 32 and 64 bit builds.
2022-07-26 14:45:29 +00:00
Ryan Pavlik 413c8230ff a/d3d: Clean up formats 2022-07-26 14:45:29 +00:00
danwillm 53bbe0a293 t/common: add opengloves fixer-upper to lighthouse builder 2022-07-25 23:57:45 +01:00
danwillm fd61dd08b2 drivers: add all of opengloves driver 2022-07-25 23:57:45 +01:00
danwillm 0943ce10be a/util, xrt: u_hand_tracking interface change 2022-07-25 23:57:45 +01:00
Mateo de Mayo 36ca9260cf d/vive: Update tracking status to fix segfault
Co-authored-by: Moses Turner <moses@collabora.com>
2022-07-25 19:08:46 +00:00
Mateo de Mayo 6e16959098 d/vive: Add vive_source to convert v4l2 timestamps into monotonic clock
Use a sink in the middle of the stream to correct for v4l2 timestamps with
hardware timestamps to monotonic clock.

This sink, together with other utilities related to data streaming, lives in a
new vive_source entity, with similar functionality to wmr_source or rs_source.

The vive_source lifetime is managed by the builder xfctx, which prevents
deallocation dependencies between vive_device and the v4l2_fs to cause segfaults.
2022-07-25 19:08:46 +00:00
Mateo de Mayo 13d90bff77 d/vive: Implement 3DoF/SLAM switching button and pose offset 2022-07-25 19:08:46 +00:00
Mateo de Mayo f0ceb40f6a d/vive: Prepare data streaming and SLAM tracker 2022-07-25 19:08:46 +00:00
Mateo de Mayo 3cbb7f6b9f d/vive: Pass status of visual tracking into the driver 2022-07-25 19:08:46 +00:00
Mateo de Mayo 4f81967e8a t/common: Refactor lighthouse builder to prepare for more visual trackers
The idea here is to follow a similar approach to how we are doing it in the
WMR driver with the setup_visual_trackers() function.
2022-07-25 19:08:46 +00:00
Mateo de Mayo 8d929fe2fa d/v4l2: Split some definitions into a new header 2022-07-25 19:08:46 +00:00
Mateo de Mayo ae8305f324 u/deque: Add generic wrapper for std::deque 2022-07-25 19:08:46 +00:00
danwillm 6d6ddc0b12 inc/xrt: add XRT_HAVE_BLUETOOTH 2022-07-25 16:20:07 +01:00
danwillm de53e431ed d/multi: fix untested codepath 2022-07-25 15:23:49 +01:00
Nova 0954bd0dd8 d/wmr: Clean up check_and_get_interface in wmr_prober.c 2022-07-25 12:19:48 +01:00
Nova e141aa2d55 d/wmr: Add initial support for original Odyssey HMD 2022-07-25 12:19:48 +01:00
Christoph Haag ffb0346ba4 d/survive: Fix compilation on clang
Fixes error

/home/haagch-collabora/monado/src/xrt/drivers/survive/survive_driver.c:384:53: error: passing 'const union xrt_output_value *' to parameter of type 'union xrt_output_value *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
        int ret = survive_controller_haptic_pulse(survive, value);
                                                           ^~~~~
/home/haagch-collabora/monado/src/xrt/drivers/survive/survive_driver.c:340:89: note: passing argument to parameter 'value' here
survive_controller_haptic_pulse(struct survive_device *survive, union xrt_output_value *value)
2022-07-24 23:48:57 +02:00
Mateo de Mayo 997f4451b8 st/gui: Make debug frame sinks a bit more compact 2022-07-22 16:19:49 +00:00
Mateo de Mayo aaf5fe1b7b d/vive: Improve ticks-to-nanoseconds conversion 2022-07-22 16:19:49 +00:00
Mateo de Mayo aa617a9d8b d/vive: Group 3dof IMU fusion fields and add a mutex 2022-07-22 16:19:49 +00:00
Mateo de Mayo c181909b0d t/slam: Add debug sinks 2022-07-22 16:19:49 +00:00
Moses Turner f6ef1d8f28 d/dai: Add code to control IR floodlight and exposure behind ifdef 2022-07-21 00:23:32 +01:00
Moses Turner 4d0e46a5ac d/dai: Remove depthai::opencv dependency 2022-07-21 00:23:32 +01:00
bjorn 6275c4de10 c/main: comp_renderer uses queue from vk bundle;
The vk bundle currently creates a single queue, calls vkGetDeviceQueue,
and stores it in the bundle.  There's only ever 1 queue from 1 queue
family right now, even when using the compute compositor.

It doesn't really make sense for the renderer to re-request this queue
instead of using the one in the bundle.  If we wanted to store a local
version to it, it should probably be assigned directly (i.e. r->queue =
vk->queue) to ensure that it's the same.  If we decide we want multiple
queues later, that would be a good time to add this sort of thing back.
2022-07-19 16:26:18 +00:00
Ryan Pavlik 12fab0653c xrt: Compositor doc improvement 2022-07-15 16:30:06 -05:00
Ryan Pavlik de4bf3be0a st/oxr: Doc improvment 2022-07-15 15:37:08 -05:00
Ryan Pavlik 4c5327fc65 xrt: Improve code docs 2022-07-15 12:50:04 -05:00
Ryan Pavlik 8f7eed3521 state_trackers: Remove obsolete documentation stub 2022-07-15 12:49:55 -05:00
bjorn 919936991c ipc: make all IPC input aggregates const; 2022-07-14 20:31:38 +00:00
Ryan Pavlik b08797a4a5 st/oxr: Fix missing return, resolve warnings 2022-07-14 14:17:35 +00:00
Ryan Pavlik 7e4c7d8407 c/client: Resolve warnings 2022-07-14 14:17:35 +00:00
Ryan Pavlik f69b6d6320 a/vk: Annotate some must-check-return functions 2022-07-14 14:17:35 +00:00
Ryan Pavlik b0405023b7 st/oxr: Resolve warning 2022-07-14 14:17:35 +00:00
Ryan Pavlik 593a277dd7 st/steamvr_drv: Resolve warnings 2022-07-14 14:17:35 +00:00
Ryan Pavlik 107f56b6d9 a/util: Resolve warnings 2022-07-14 14:17:35 +00:00
Ryan Pavlik 88389ae0ca a/math: Resolve warnings. 2022-07-14 14:17:35 +00:00
bjorn f703355761 c/main: rm unused wireframe setting; 2022-07-13 10:29:27 -07:00
Moses Turner fa2554f289 st/oxr: Don't use the debug gui by default in out-of-process 2022-07-12 16:18:17 +00:00
Mateo de Mayo f55ac05578 t/slam: Implement feature count metric UI and recording 2022-07-12 12:47:05 +00:00
Mateo de Mayo 789111daf8 u/var: Add u_var_curves 2022-07-12 12:47:05 +00:00
Mateo de Mayo 0324fbae6c u/var: Add u_var_curve
Let's you draw any arbitrary curve from a getter function.
2022-07-12 12:47:05 +00:00
Mateo de Mayo bf9e6fa370 u/var: Add u_var_ro_ftext 2022-07-12 12:47:05 +00:00
Mateo de Mayo db3fe110ba u/var: Auto width and match XYZ to RGB colors for ff_vec3 2022-07-12 12:47:05 +00:00
Mateo de Mayo c2009b6acc t/slam: Allow timing extension to be toggled on runtime 2022-07-12 12:47:05 +00:00
Mateo de Mayo 536001e2ad external/slam: Update header to 4.0.0
1. Add feature info pose extension
2. Make pose extensions toggleable on runtime
3. Add timestats helper for external system to keep track of info for pose extensions
2022-07-12 12:47:05 +00:00
Mateo de Mayo 49cd45b24e d/euroc: Fix typo 2022-07-12 12:47:05 +00:00
bjorn ce498e18ed a/vk: Relax compute-only queue family check;
This changes the search to prefer compute-only queues, but consider
compute-enabled queues as acceptable fallbacks.
2022-07-11 17:33:59 +00:00
Xaver Hugl 94407f6679 compositor/direct_wayland: don't warn about connector removals
The connector being withdrawn has no effect on active leases, printing a
warning is unnecessary.
2022-07-11 16:37:34 +02:00
Mateo de Mayo afa7f7ade9 u/vector: Add generic wrapper for std::vector 2022-07-07 15:35:04 +00:00
Ryan Pavlik f4cc2f3bf4 cmake: Fix some details of Clang on Windows. 2022-07-05 11:17:53 -05:00
bjorn 128ea42915 c/render: inline vk_command_buffer helper;
It's not really abstracting much anymore, and makes it more difficult to
see what's going on.
2022-07-01 22:01:32 +00:00
bjorn 4c09d20f80 c/render: render_resources has its own command pool;
Currently, there is a single command pool in the vk bundle, shared by
everyone.  Since command pools (and command buffers allocated from those
pools) can only be used on one thread at a time, this requires locking.
However, the main point of having these annoying command pool things in
the first place is that you can use one for each thread/lifetime/area in
the app and avoid the overhead of the locks (both computational and
cognitive).

In this change I have given the rendering bits of the compositor its own
command pool.  Instead of allocating and freeing a command buffer every
frame, a single command buffer is allocated from the pool during
initialization, and the pool is reset at the beginning of each frame.
Normally, multiple pools would need to be used, but this is not
necessary in monado because frames are serialized. The `TRANSIENT` and
`ONE_TIME_SUBMIT` flags have been added, which can allow for some driver
optimizations.  The render code no longer takes out the command pool
mutex.  The shared command pool is still there for a few remaining
places where vulkan work needs to be done outside the compositor.

I used the command buffer vulkan helpers when possible, but I would
maybe propose the idea of removing them, since they aren't really
wrapping much at this point.  The `C` macro helps a lot and it's a bit
easier to see the Vulkan details in front of you instead of needing to
switch back and forth between the helper.

Later, I think it would be cool to apply and document some constraints
like "the queue is only accessed in functions XYZ, the render_resources
command pool must only be accessed in layer_commit from 1 thread" etc.
2022-07-01 22:01:32 +00:00
bjorn 24c9dabfbb aux/vk: Add vkResetCommandPool; 2022-07-01 22:01:32 +00:00
Ryan Pavlik 0496ba9c5c aux/vk: Add additional include dirs conditionally. 2022-07-01 21:57:07 +00:00
bjorn a4e5a2d027 Support cubemap swapchains; 2022-07-01 12:23:53 -07:00
Moses Turner e552ef6bf3 t/common: Better error-checking in lighthouse builder 2022-06-30 15:20:46 +01:00
Moses Turner 567304374d d/v4l2: Factor out format setup so we can catch errors in stream_start 2022-06-30 15:19:51 +01:00
Jakob Bornecrantz 2cbad30823 u/pacing: Introduce a app pacing factory 2022-06-27 19:09:46 +01:00
Jakob Bornecrantz 6e2644dea7 u/pacing: Tidy comments 2022-06-27 19:09:46 +01:00
Jakob Bornecrantz 0fb155b886 c/multi: Include interface header 2022-06-27 19:09:46 +01:00
Jakob Bornecrantz 23aca9c0b9 c/multi: Document multi_system_compositor 2022-06-27 18:35:40 +01:00
Jakob Bornecrantz 202f37be63 t/common: Include config build for null compositor 2022-06-27 18:35:40 +01:00
utzcoz 34c97c48ef ipc,t/oxr_android: Add FLAG_IMMUTABLE for PendingIntent from S+
Signed-off-by: utzcoz <utzcoz@outlook.com>
2022-06-27 09:59:27 -05:00
Ryan Pavlik 62c87d27d6 android: Request new android.permission.HIGH_SAMPLING_RATE_SENSORS 2022-06-25 09:59:37 +08:00
Ryan Pavlik cec89ae751 targets: Update manifests for Android 12 2022-06-25 09:59:37 +08:00
Ryan Pavlik e1a0486f30 gradle: Update some deps slightly to cope with gradle 7 2022-06-25 09:59:37 +08:00
Ryan Pavlik 98f430f6f7 gradle: More dependency updates. 2022-06-25 09:59:37 +08:00
Moses Turner 4aaa61350b t/common: Add lighthouse builder 2022-06-24 01:58:51 +01:00
Moses Turner bd421e683c d/vive: Handle not-found devices correctly 2022-06-24 01:58:51 +01:00
Moses Turner 29cd525a3b d/vive: Prepare for lighthouse builder 2022-06-24 01:54:45 +01:00