Commit graph

4974 commits

Author SHA1 Message Date
Moses Turner cd163e366b c/main: Add another string for Reverb G2 to the nvidia direct mode allowlist 2022-12-31 03:11:41 -06:00
Moses Turner 946141ce40 h/mercury: Remove kine_ccdik optimizer
Goodbye, sweet prince.
This was my first attempt at the "optimizer" piece of our optical hand tracking, and it *did work* dammit! It just wasn't anywhere near as flexible or efficient as Levenberg-Marquardt.
It's worse in every way to the `kine_lm` optimizer, and getting hard to maintain, so we're getting rid of it. Gone, but never forgotten.
2022-12-29 20:03:05 +00:00
Jakob Bornecrantz 7da72f4697 external/nanopb: Generate monado_metrics with same version as files 2022-12-22 22:06:39 +00:00
Ryan Pavlik a7b9c7b69c external/nanopb: Update nanopb from upstream nanopb-0.4.7
GitOrigin-RevId: b97aa657a706d3ba4a9a6ccca7043c9d6fe41cba
2022-12-21 21:24:14 +00:00
Jakob Bornecrantz 966878b1db t/sdl_test: Make sure to include inttypes.h for PRIu64 define 2022-12-21 00:49:06 +00:00
Ryan Pavlik 9705b1e763 external/cjson: Update cJSON from upstream v1.7.15
GitOrigin-RevId: d348621ca93571343a56862df7de4ff3bc9b5667
2022-12-20 18:51:08 +00:00
Ryan Pavlik 00b1c9531d external/stb: Update stb libraries from upstream
GitOrigin-RevId: 1ee679ca2ef753a528db5ba6801e1067b40481b8
2022-12-20 11:54:28 -06:00
Jakob Bornecrantz 814170469a t/sdl_test: Include m_mathinclude to fix compile on Windows 2022-12-20 16:02:18 +00:00
Jakob Bornecrantz 1472bdf6b6 c/client: Create a share context instead of using context directly 2022-12-19 16:38:51 +00:00
Jakob Bornecrantz 0cf18ae044 c/client: Refactor context mutex locking to helper function 2022-12-19 16:38:51 +00:00
Jakob Bornecrantz b87239e7d8 d/wmr: Increase display init sleep and also add debug variable to control it 2022-12-14 12:20:10 +00:00
Malek 5c013bcecd a/math: Add stdbool include to m_lowpass_integer.h 2022-12-12 00:45:05 -08:00
Christoph Haag 2abcc17178 c/main: Add XRT_COMPOSITOR_DISABLE_DEFERRED env var 2022-12-09 16:38:06 +00:00
SeungHoon Han a594d6d86e a/android: fixed forced applied alpha=0.8 window after Android S 2022-12-08 21:41:16 +00:00
SeungHoon Han a2f5e5f1b9 a/android: hide display cutout to use full screen 2022-12-08 20:24:53 +00:00
Jakob Bornecrantz 040764c4f1 ipc: Trace around ipc_dispatch 2022-12-08 00:24:42 +00:00
Jakob Bornecrantz 50783a4c35 u/trace_marker: Add U_TRACE_[BEGIN|END] for greater control of zones/tracks 2022-12-08 00:24:42 +00:00
Jakob Bornecrantz f8d2c095ee u/trace_marker: Ensure ENABLE_TRACE is set before including Tracy headers 2022-12-08 00:24:42 +00:00
Jakob Bornecrantz b7748691b7 ext/tracy: Do not define ENABLE_TRACY globally 2022-12-08 00:24:42 +00:00
Jakob Bornecrantz 87f7b3426a t/sdl_test: Fix build on Windows 2022-12-08 00:24:42 +00:00
Jakob Bornecrantz a29a3c5ef3 c/mutli: Error log on failing semaphore wait 2022-12-06 15:26:40 +00:00
Jakob Bornecrantz ebb7c3cac2 d/wmr: Tidy prober code 2022-12-05 15:21:20 +00:00
zhibin wang 828dacc10b c/client: Fix eglDestroyImageKHR error and add AHB buffer release 2022-12-05 14:44:53 +00:00
Jakob Bornecrantz 9b3f9baff3 ipc: Properly cast assignment 2022-12-04 18:07:53 +00:00
Jakob Bornecrantz 6450cba854 ipc: Clarify code around xrt_comp_begin_session call 2022-12-04 18:07:53 +00:00
Jakob Bornecrantz bc83130354 ipc: Use correct cast 2022-12-04 18:07:53 +00:00
Jakob Bornecrantz 2ffaf7fd46 ipc: Add C++ guards to generated headers 2022-12-04 18:07:53 +00:00
Jakob Bornecrantz 09975b0d24 ipc: Use XRT_STRUCT_INIT 2022-12-04 18:07:53 +00:00
Jakob Bornecrantz 4a8448fcc3 c/multi: Clarify code around xrt_comp_layer_begin call 2022-12-04 18:07:53 +00:00
Jakob Bornecrantz 840febfb57 c/multi: Do not declare variable in switch statement 2022-12-04 18:07:53 +00:00
Jakob Bornecrantz f343bb709c c/multi: Use XRT_STRUCT_INIT 2022-12-04 18:07:53 +00:00
Jakob Bornecrantz f0021c359f xrt: Add XRT_STRUCT_INIT define
This helps with code that needs to be compiled with both C and C++.
2022-12-04 18:07:53 +00:00
Moses Turner 8c0735feec d/rift_s: Link to hand tracking driver if necessary 2022-12-04 18:05:02 +00:00
Mateo de Mayo dad7957fb2 a/math: Add clock_offset.h
For now it only has our simple exponential smoothing clock offset estimator.
But more advanced ones can go here too.
2022-12-02 16:10:09 +00:00
Bailey Morgan 35061c1d80 a/vk: Select graphics device based on prefered device type 2022-12-02 14:05:34 +00:00
Maxim Kizub e600cdaabf c/main,ipc/android: Deferred render target initialization for Android. 2022-11-30 09:32:18 -06:00
Maxim Kizub f6e1ea7aa9 t/oxr_android: fixed libmonado-service.so not found UnsatisfiedLinkError in inProcess build variant
Co-authored-by: SeungHoon Han <senicy.han@samsung.com>
2022-11-30 09:30:02 -06:00
Maxim Kizub 950f6cc506 a/android: Improve waiting for surface holder 2022-11-30 09:26:38 -06:00
Maxim Kizub 0ee891e7d6 c/main: Deferred render target initialization for windows 2022-11-30 09:25:43 -06:00
Jakob Bornecrantz f28f3a27e6 c/main: Fix crash on debug print 2022-11-30 13:31:36 +00:00
Moses Turner 85c0c78ac6 a/math: Fix m_vec3_angle function
Dot product is equivalent to a.length*b.length*cos(theta), not a.length_squared*b.length_squared*cos(theta)
2022-11-29 03:11:53 -06:00
Jakob Bornecrantz fec8e13f73 ext/openxr: Update headers to 1.0.26 2022-11-26 14:29:16 +00:00
Jakob Bornecrantz 69238be306 ext/openxr: Update XR_MNDX_force_feedback_curl 2022-11-26 14:26:58 +00:00
Jakob Bornecrantz 2a12f7d661 os/time: Use timePeriod[Begin|End] when sleeping in precise sleeper
One alternative to this is to use the CreateWaitableTimerExW function
with the CREATE_WAITABLE_TIMER_HIGH_RESOLUTION flag. On my systems the
function/flag was either as good or worse then timePeriod[Begin|End].
Setting the state globally or just just around the wait didn't seem to
have an impact on the precision.
2022-11-25 17:02:00 +00:00
Jakob Bornecrantz 96552a6caa t/common: Fix leak of calibration data in RGB-Tracker builder 2022-11-25 16:44:24 +00:00
Jakob Bornecrantz c195608602 a/tracing: Do more tracing in PSMV tracking code 2022-11-25 16:44:24 +00:00
Jakob Bornecrantz f552aacb87 a/tracking: Fix data waiting logic in PSMV tracking 2022-11-25 16:44:24 +00:00
Jakob Bornecrantz fb15e8aa50 ipc: Tidy Windows mainloop code 2022-11-25 16:04:20 +00:00
Jakob Bornecrantz 8271d213f5 ipc: Use u_winerror helper 2022-11-25 16:04:20 +00:00
Jakob Bornecrantz 6fc6968387 t/service: Try to raise priority and privilege on Windows 2022-11-25 16:04:20 +00:00
Jakob Bornecrantz 3b465b4241 u/windows: Add helper for trying priority or privilege from args 2022-11-25 16:04:20 +00:00
Jakob Bornecrantz 9e57a745b2 u/windows: Add function to raise CPU priority 2022-11-25 16:00:49 +00:00
Jakob Bornecrantz ef77cb08d0 u/windows: Add function to enable privileges on processes
Also add a small helper to add the privilege
SeIncreaseBasePriorityPrivilege, which is needed on
NVIDIA for HIGH and REALTIME priority Vulkan queues.
2022-11-25 15:54:45 +00:00
Jakob Bornecrantz 57820394f4 u/windows: Add files and u_winerror string format helper 2022-11-24 16:17:26 +00:00
Jakob Bornecrantz ad4c6a7215 u/pacing: More Tracy plots 2022-11-24 15:34:59 +00:00
Jakob Bornecrantz 8d817b773e st/prober: Print the deviecs we got when looping throught the builders 2022-11-24 12:08:17 +00:00
Jakob Bornecrantz d1db1dabfd u/pacing: Work around asserts on slow compositors
This isn't the most ideal solution but a proper fix will take longer.
2022-11-24 12:03:53 +00:00
Jakob Bornecrantz ad045fd271 t/sdl: Increase FPS 2022-11-24 12:03:53 +00:00
Jakob Bornecrantz 37da46b709 u/pacing: Add metrics output 2022-11-24 00:34:50 +00:00
Jakob Bornecrantz 87fdedeb68 u/pacing: Track more variables in app pacer 2022-11-24 00:34:50 +00:00
Jakob Bornecrantz f0cbb8a7aa t/service: Add metrics support 2022-11-24 00:34:50 +00:00
Jakob Bornecrantz 7fa20a8b46 u/metrics: Add functions to write a metrics file 2022-11-24 00:34:50 +00:00
Jakob Bornecrantz 57a31fde7c external: Dealing with MSVC in NanoPD 2022-11-24 00:34:50 +00:00
Jakob Bornecrantz 2a7c411798 external: Add monado_metrics protocol 2022-11-24 00:34:50 +00:00
Jakob Bornecrantz 58186cc63a external: Add NanoPB 2022-11-24 00:34:50 +00:00
Moses Turner f580271291 d/wmr: Guess camera orientation for Reverb G2 based on HT0 twist value 2022-11-23 13:02:35 -06:00
Moses Turner f5d4d49607 a/math: Add math_quat_to_swing_twist 2022-11-23 13:02:35 -06:00
Moses Turner b3c277196e a/math: Add faster (and correct!) math_quat_from_swing_twist 2022-11-23 13:02:35 -06:00
Moses Turner 9af195fea3 h/mercury: Add faster SwingTwistToQuaternion 2022-11-23 13:02:35 -06:00
Moses Turner e06dc0dda1 a/math: Correct documentation for math_quat_ln and math_quat_exp 2022-11-23 13:02:35 -06:00
Jakob Bornecrantz 6fe06068e8 c/main: Make XCB window deferred 2022-11-23 16:03:15 +00:00
Jakob Bornecrantz 3e1760fd04 c/main: Introduce comp_target_factory 2022-11-23 16:03:15 +00:00
Jakob Bornecrantz 93fdf0bd74 a/vk: Expose vk_select_physical_device function 2022-11-23 14:53:26 +00:00
Jakob Bornecrantz d8eb6865da c/render: Don't include comp_compositor.h 2022-11-23 14:53:26 +00:00
Maxim Kizub f5a06f9c46 c/main: Add code to defer render target initialization 2022-11-23 14:44:51 +00:00
Jakob Bornecrantz 8efb55403c d/psvr: Switch to reading sensors from its own thread
Tested-by: number-g <g@imagination.eu.org>
2022-11-22 17:58:07 +00:00
Jakob Bornecrantz 58596a5830 u/pacing: Add Tracy plots 2022-11-21 16:46:12 +00:00
Jakob Bornecrantz 7bc145d184 cmake: Add XRT_HAVE_TRACY variable 2022-11-21 16:46:12 +00:00
Jakob Bornecrantz 65e76e1277 u/trace_marker: Tracy support 2022-11-21 16:46:12 +00:00
Jakob Bornecrantz 4cecb768b1 external: Add Tracy client code 2022-11-21 16:46:12 +00:00
Jakob Bornecrantz b1b63a9397 d/vive: Do more tracing during packet handling 2022-11-21 13:47:58 +00:00
Jakob Bornecrantz 60099fdd71 t/common: Do more tracing during init and fini 2022-11-20 14:36:37 +00:00
Jakob Bornecrantz 8637617833 c/main: Do more tracing during init 2022-11-20 14:36:37 +00:00
Jakob Bornecrantz 44599a7de7 c/main: Use U_TRACE_SET_THREAD_NAME 2022-11-20 14:36:37 +00:00
Jakob Bornecrantz 432bf03981 c/multi: Use U_TRACE_SET_THREAD_NAME 2022-11-20 14:36:37 +00:00
Jakob Bornecrantz 3a2dfd850c t/hand: Use U_TRACE_SET_THREAD_NAME 2022-11-20 14:36:37 +00:00
Jakob Bornecrantz c9bbeac70a d/v4l2: Use U_TRACE_SET_THREAD_NAME 2022-11-20 14:36:37 +00:00
Jakob Bornecrantz 36d1734377 d/vive: Use U_TRACE_SET_THREAD_NAME 2022-11-20 14:36:37 +00:00
Jakob Bornecrantz 5142fa7e88 d/psmv: Use U_TRACE_SET_THREAD_NAME 2022-11-20 14:36:37 +00:00
Jakob Bornecrantz 0691ed9b89 d/wmr: Use U_TRACE_SET_THREAD_NAME 2022-11-20 14:36:37 +00:00
Jakob Bornecrantz 386aa510bd ipc: Use U_TRACE_SET_THREAD_NAME 2022-11-20 13:52:38 +00:00
Jakob Bornecrantz d48de0d832 u/worker: Use U_TRACE_SET_THREAD_NAME 2022-11-20 13:52:38 +00:00
Jakob Bornecrantz 8b0e7675e4 u/sink: Use U_TRACE_SET_THREAD_NAME 2022-11-20 13:52:38 +00:00
Jakob Bornecrantz b49dc593b8 u/pacing: Use U_TRACE_PERFETTO define 2022-11-20 13:52:37 +00:00
Jakob Bornecrantz 469a79493c u/trace_marker: Add U_TRACE_SET_THREAD_NAME 2022-11-20 11:24:27 +00:00
Jakob Bornecrantz d1e116cb58 u/trace_marker: Check for both tracing and percetto 2022-11-20 00:31:24 +00:00
Jakob Bornecrantz f4a5e599ef u/trace_marker: Add convenience U_TRACE_PERCETTO define 2022-11-20 00:31:24 +00:00
Jakob Bornecrantz 648f91d35c u/trace_marker: Refactor define names and split idents from func 2022-11-19 17:38:48 +00:00
Jakob Bornecrantz 4ee8aa4054 u/trace_marker: Reorg file (NFC) 2022-11-19 17:38:48 +00:00
Jakob Bornecrantz 7d2bd5b3e0 u/trace_marker: Fix copy paste error (NFC)
Define was unused till now.
2022-11-19 17:38:48 +00:00
Simon Zeni 9293c628d7 a/vk: add VK_FENCE_IMPORT_TEMPORARY_BIT to vk_create_fence_sync_from_native 2022-11-18 16:43:07 -05:00
Simon Zeni 278aa4cd41 c/main: use swapchain semaphores for peek window rendering 2022-11-18 11:14:41 -05:00
Jakob Bornecrantz 98b7f7d1c6 xrt: Remove xrt_gfx_native 2022-11-15 23:24:20 +00:00
Jakob Bornecrantz 8d6b794878 c/main: Add own interface for creating the main compositor 2022-11-15 23:24:20 +00:00
Moses Turner cb2c355ba6 t/hand: fix 90 degree rotation for hand detection 2022-11-15 01:58:41 +00:00
Moses Turner a9d04045e6 c/main: Add Reverb G2's display to nvidia direct allowlist 2022-11-14 19:50:03 -06:00
Jakob Bornecrantz 89aee1892b d/remote: Update protocol to allow per view data 2022-11-14 16:07:15 +00:00
Patrick Nicolas a8dc902468 a/vk Add extentions for DMA-buf 2022-11-13 22:56:06 +00:00
Ryan Pavlik 58e4cb6e15 st/steamvr: can not -> cannot 2022-11-09 14:52:03 -06:00
Ryan Pavlik eac703a106 st/prober: can not -> cannot 2022-11-09 14:52:03 -06:00
Ryan Pavlik aa01868d0f xrt: can not -> cannot (comments) 2022-11-09 14:52:03 -06:00
Ryan Pavlik 678b27145a ipc/client: can not -> cannot 2022-11-09 14:52:03 -06:00
Ryan Pavlik 11bdba7e64 drivers: can not -> cannot 2022-11-09 14:52:03 -06:00
Ryan Pavlik 73f48d12ec comp/util: can not -> cannot 2022-11-09 14:51:58 -06:00
Ryan Pavlik 2eb259f26a aux: can not -> cannot 2022-11-09 14:48:38 -06:00
Ryan Pavlik 724b2288f9 st/oxr: can not -> cannot 2022-11-09 14:48:17 -06:00
Ryan Pavlik 1fb6270194 a/util: Resolve a bothersome clang-tidy complaint in iterators. 2022-11-09 08:26:16 -05:00
Ryan Pavlik 290fafa4f7 a/util: Fix missing pragma once 2022-11-09 08:26:16 -05:00
Ryan Pavlik a072af398c t/hand: Fix doxygen warnings 2022-11-09 03:47:44 +00:00
LeGrandToto 987d4ebecb ext: Updated Catch to v2.13.10 2022-11-08 23:54:05 +00:00
Moses Turner 00bf669e61 t/common: Disable SLAM by default for Valve Index 2022-11-08 12:32:23 -06:00
Mateo de Mayo 77f8972f36 d/vive: Add hardcoded quaternions for SLAM extrinsics
These come from my own calibration and are hopefully better than the wrong ones
reported by the factory data.
2022-11-08 12:02:34 -06:00
Mateo de Mayo c3757792d7 d/vive: Generate SLAM calibration automatically from factory data
Use factory data for SLAM calibration. Sensor rotations are off in most calib
files we saw (or at least we can't figure something better) so this won't work
very well. It's still necessary to properly calibrate the headset for good
results but at least now something works without that step.
2022-11-08 17:41:43 +00:00
Mateo de Mayo 0ebc7e042f d/vive: Improve readability of precompute_sensor_transforms (NFC) 2022-11-08 17:41:43 +00:00
Jakob Bornecrantz ca83275671 ipc: Move struct declaration into same place 2022-11-07 23:48:59 +00:00
Jakob Bornecrantz f9cd474156 ipc: Use XRT_MAX_IPC_HANDLES and also validate input from client 2022-11-07 23:48:59 +00:00
Jakob Bornecrantz 26c4771bfb ipc: Make _sync struct have the right indentation 2022-11-07 23:48:59 +00:00
Jakob Bornecrantz 86a6b4b3e3 ipc: Generated code doesn't need to care about line length 2022-11-07 23:48:59 +00:00
Jakob Bornecrantz 8601499a5a xrt: Add XRT_MAX_IPC_HANDLES 2022-11-07 23:48:59 +00:00
Jakob Bornecrantz 736f1fd671 c/util: Slightly improve device and queue creation 2022-11-04 10:46:42 +00:00
Jakob Bornecrantz 3f3e19299f c/null: Use VK_KHR_global_priority if available 2022-11-04 10:46:42 +00:00
Jakob Bornecrantz 04f930d99a c/main: Use VK_KHR_global_priority if available 2022-11-04 10:46:42 +00:00
Jakob Bornecrantz 1253d58717 t/sdl: Use VK_KHR_global_priority if available 2022-11-04 10:46:42 +00:00
Jakob Bornecrantz 6ba07d564c a/vk: If global priority is not available, only allow medium queues 2022-11-04 10:46:42 +00:00
Jakob Bornecrantz 379bf36860 a/vk: Also try to use VK_KHR_global_priority when creating device 2022-11-04 10:46:42 +00:00
Jakob Bornecrantz b6803b4bf8 a/vk: Add VK_KHR_global_priority 2022-11-04 10:46:42 +00:00
Mateo de Mayo 9d6c29397f misc: Fix multiple compile warnings in gcc and clang 2022-11-03 20:08:52 +00:00
Jakob Bornecrantz 45937312bd a/vk: Print out error on too many images to allocate 2022-11-03 17:43:06 +00:00
Jakob Bornecrantz a41ccb0467 a/vk: Use xrt limits for number of collection images max 2022-11-03 17:43:06 +00:00
Jakob Bornecrantz 04ab47ef3b st/oxr: Use xrt limits for number of swapchain images max 2022-11-03 17:43:06 +00:00
Jakob Bornecrantz cf2dbb9334 ipc: Use xrt limits for number of swapchain handles max 2022-11-03 17:43:06 +00:00
Jakob Bornecrantz 589a898c74 xrt: Start collection of limits in one place 2022-11-03 17:43:06 +00:00
Moses Turner f41596f176 h/mercury: Replace old detection model, and discard overlapping hands 2022-11-03 16:46:33 +00:00
Moses Turner b8a586175d a/util: Add header for box intersection over union 2022-11-03 16:46:33 +00:00
Mateo de Mayo 8f14c572ee d/vive: Apply IMU pose correction for SLAM tracking
The offset between IMU and middle-of-eyes for the Index is quite noticeable and
tracking felt very off before this.
2022-11-03 13:08:02 +00:00
Gustavo Alvarez 21788f8650 t/cli: Link with aux_os_ble
Fixes build on certain configurations.
2022-11-03 10:03:25 +00:00
Moses Turner 0cd2f4f081 h/mercury: Fix data home 2022-11-02 22:35:27 +00:00
Moses Turner 32da562bc5 h/mercury: Remove really old keypoint estimator and NCNN stuff 2022-11-02 22:35:27 +00:00
Jakob Bornecrantz ede2292690 d/psvr: Paranoia 2022-11-02 17:55:58 +00:00
Jakob Bornecrantz 200bbc9da0 d/psvr: Protect sensore reads with device_mutex
Fixes asserts by the fusion code where samples where pushed in the wrong
order to the fusion code.
2022-11-02 17:55:58 +00:00
Jakob Bornecrantz fdac0b5137 d/psvr: Make sure to init the device_mutex before teardown can be called 2022-11-02 17:55:58 +00:00
Jakob Bornecrantz c4a734e546 a/tracking: Do not push empty frames to debug sink 2022-11-02 17:55:58 +00:00
Jakob Bornecrantz 0f17fa0f5f a/tracking: Fix data waiting logic in PSVR tracking 2022-11-02 17:55:58 +00:00
Jakob Bornecrantz f32eb0d662 c/main: Refactor comp_renderer init/fini slightly 2022-11-02 15:24:26 +00:00
Jakob Bornecrantz f6d7bfbe0a c/main: Init render shaders and resources earlier 2022-11-02 15:24:26 +00:00
Jakob Bornecrantz e76b382bc9 c/main: Destroy target before render resources 2022-11-02 15:24:26 +00:00
Jakob Bornecrantz f6fb9f715e c/main: Reorder fields to make dependency slightly clearer (NFC) 2022-11-02 15:24:26 +00:00
Jakob Bornecrantz 7b1c18255a u/pacing: Work around issues with frame reuse
The code creates a frame with the timing information, and keeps track of the
times the applications does various things during the frame loop. Like
starting to render and finished rendering and so on. It keeps track of that
frame until it has determined that the application or the system compositor
will never do anything thing with that frame.

Now the allocation side of thing is very simple, just a long array of
FRAME_COUNT size that is reused with frame_id % FRAME_COUNT. So if the
application or the compositor keeps a frame along for too long it will try to
reuse that frame. The code has asserts to catch this. Making FRAME_COUNT makes
that re-use more unlikely.
2022-11-02 00:22:19 +00:00
Jakob Bornecrantz a5f10e7aa2 c/multi: Rework logging with session transition a bit 2022-11-02 00:21:31 +00:00
Jakob Bornecrantz 01d195808d st/oxr: Use snprintf to safely write strings to app 2022-10-31 12:12:35 +00:00
Jakob Bornecrantz 51730d2db1 a/vk: Improve the VkResult to string printing (NFC) 2022-10-30 20:17:09 +00:00
Mateo de Mayo bf66a9595c build: Fix undefined reference to u_sink_create_queue
When XRT_FEATURE_SLAM is on, t_euroc_recorder.cpp is linked.
This depends on u_sink_queue.c.
2022-10-30 11:34:57 -03:00
Boris-Chengbiao Zhou cd2f204414 st/oxr: Check if user has already enabled timeline semaphores
We aren't allowed to add a second struct of the same type to the pNext
chain during Vulkan device creation.
2022-10-28 23:19:50 +02:00
Jakob Bornecrantz 35b941812a c/client: Merge have EGL conditional file adding 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz f9c6c0d016 a/ogl: Only link to EGL on Android 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz d33b2b136f a/os: Add comments about DSOs 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz 637c49c1ea a/os: Refactor out BLE functions into own library 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz 96eabd1347 a/os: Add BLE stub functions 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz d4a77da827 a/util: Add comments about DSOs 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz e629bbbe2b a/util: Split out process functions into own library 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz 8ca60f4304 a/util: Split out sink functions into own library 2022-10-27 17:19:57 +00:00
Jakob Bornecrantz c9ef44dd28 t/common: Remove stale comment 2022-10-27 17:19:57 +00:00
Bailey Morgan 67c47fbcb3 st/oxr: Change result code for invalid OpenGL context to match spec 2022-10-25 18:18:15 +00:00
Christoph Haag 9054dc01ca d/ht_ctrl_emu: Stub set_output 2022-10-24 17:20:59 +00:00
Christoph Haag 7dd0a6e473 st/oxr: Disable XR_KHR_convert_timespec_time on windows
This avoids a current CTS issue.
2022-10-20 12:33:02 +02:00
Mateo de Mayo 80fdf7317f t/slam: Add SLAM_UI option to enable the external system UI 2022-10-17 21:33:17 +00:00
Julian Petrov fb28f940b5 Fix an IPC protocol issue on windows when receiving zero HANDLEs 2022-10-14 10:49:50 -04:00
Julian Petrov d0f713c4c4 ipc: Add Windows support 2022-10-13 17:07:27 +00:00
Julian Petrov 7669d2c545 t/ctl: Don't build on Windows 2022-10-13 17:07:27 +00:00
Julian Petrov 5f4f7530d4 xrt: Introduce a new xrt_ipc_handle_t for IPC connections 2022-10-13 17:07:27 +00:00
Ryan Pavlik 6bb976e47f external: Add some headers from my util-headers project. 2022-10-13 11:43:31 +01:00
Jakob Bornecrantz 12bb18a34c u/file: Fix define checks being erroneous 2022-10-12 13:05:39 +01:00
Jakob Bornecrantz 1cafa92c3b u/pacing: Refactor out tracing writing to own function 2022-10-11 20:33:56 +01:00
Jakob Bornecrantz 5ed13c6cc2 u/pacing: Account for present slop in assert 2022-10-11 20:33:56 +01:00
Jan Schmidt fc3fbd6093 d/ht: Fix rotation/flipping of right hands
When dealing with rotated cameras, rotate them backward
to vertical, and then flip the right hand image in
the affine transform to get correct orientation of hands
for the keypoint estimator. Before, the left hand images
were being fed in upside down.
2022-10-10 23:50:58 +00:00
Jakob Bornecrantz 9077261ada d/dai: Set fields after nullptr check 2022-10-10 22:39:38 +00:00
Jakob Bornecrantz 00c3cc4c2f d/dai: With the latest depthai-core we can support color OV9782 sensors 2022-10-10 22:39:38 +00:00
Jakob Bornecrantz 4814f627c6 d/dai: Fix conversion warnings 2022-10-10 22:39:38 +00:00
Jakob Bornecrantz 504a2a288e d/dai: Fix typo 2022-10-10 22:39:38 +00:00
Jakob Bornecrantz 52d225ae3b t/north_star: Fix build when we have depthai but no hand-tracking 2022-10-10 22:39:38 +00:00
Christoph Haag 751c8034bc c/main: Remove useless base_space from get_view_poses
The compositor doesn't know the concept of requesting view poses in
respect to a "space", so remove this vestigial code.
2022-10-10 15:47:19 +02:00
Julian Petrov 2e4c857a5a u/process: Make u_process work on non-linux systems 2022-10-09 15:21:37 +01:00
Julian Petrov c7a5a0bc1b u/file: Make more functions work on Windows 2022-10-09 15:21:37 +01:00
Robbie Bridgewater cc2e7b6da3 ipc: Allow IPC path to be set dynamically
Uses cache for XRT_IPC_MSG_SOCK_FILE
2022-10-09 15:21:11 +01:00
Christoph Haag 74d82ff37f d/ht_ctrl_emu: Set xdev serial 2022-10-03 19:23:24 +02:00
Jan Schmidt e409264ba7 d/wmr: Fix Reverb G2 detection
196bf24276 broke Reverb G2
detection. Use the right PID to match the Reverb G2 headset
again.
2022-10-02 03:57:19 +11:00
Jakob Bornecrantz 5fc30a4e22 c/multi: Make sure to retire delivered frames once the session goes invisible or non-active
Launching two instances of hello_xr will cause an assert in the app pacer.
2022-10-01 13:10:42 +01:00
Jakob Bornecrantz 88ce42dbf9 c/multi: Paranioa 2022-10-01 13:10:42 +01:00
Christoph Haag f6821402fd c/main: Hook up layer squasher in main compositor
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Fernando Velazquez Innella <finnella@magicleap.com>
2022-10-01 13:10:42 +01:00
Christoph Haag 95fb034b92 c/render: Implement layer squashing for compute shader
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Co-authored-by: Fernando Velazquez Innella <finnella@magicleap.com>
2022-09-30 22:43:58 +01:00
Christoph Haag fa71462d86 c/render: Move COMP_MAX_LAYERS to render_interfaces.h 2022-09-30 22:38:54 +01:00
Jakob Bornecrantz 13124f019e d/opengloves: Fix left/right typos 2022-09-29 21:12:44 +00:00
Jakob Bornecrantz 2673787429 d/opengloves: Fix leak of config JSON 2022-09-29 21:12:44 +00:00
Jakob Bornecrantz 1e639fc2f3 d/opengloves: Fix leaks of udev objects 2022-09-29 21:12:44 +00:00
Moses Turner 034099211f d/dai: Initialize mutex and thread helper 2022-09-28 18:37:49 -05:00
Jakob Bornecrantz 127a467efc h/mercury: Add missing break statement 2022-09-28 22:56:01 +00:00
Jakob Bornecrantz da571275c2 st/oxr: Fix enum comparison warning 2022-09-28 22:56:01 +00:00
Jakob Bornecrantz 676e071aca c/main: Pass GPU info to pacer 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz 08f6440aa4 u/pacing: Trace GPU info 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz f63c786ac9 u/pacing: Add gpu_info to u_pacing_compositor 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz da542e3f5e u/pacing: Introduce latched and retired calls on app pacer 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz 7eacf6bd7a u/pacing: Refactor out tracing writing to own function 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz 4ec3512641 u/pacing: Track session_id on app pacer 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz b6b9004fb2 u/pacing: Tidy 2022-09-28 21:46:56 +00:00
Jakob Bornecrantz d1d845e430 u/pacing: Make sure to set predicted_display_time_ns 2022-09-28 21:46:56 +00:00
Ryan Pavlik 109e373e0c c/main: Move ownership of present/render semaphores to comp_target
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-09-28 21:34:06 +00:00
Jan Schmidt 3b7f95b39e d/rift_s: Rework hw2mono clock tracking
Use the common hw2mono/a2b clock code from vive_source
2022-09-26 00:32:28 +10:00
Jan Schmidt 942df72c26 d/rift_s: Reduce camera frame delay to 2 2022-09-26 00:32:28 +10:00
Jan Schmidt 32cc6e05da d/rift_s: Move builder to targets/common
Move the builder into the common area.
2022-09-26 00:32:28 +10:00
Jan Schmidt 5c573152a8 d/rift_s: Set camera orientation in calibration
Put the right rotation of the front cameras
into the camera calibration struct
2022-09-26 00:32:28 +10:00
Jan Schmidt 495eecb65f d/rift_s: Add 6DOF SLAM tracking and hand tracking
Find and capture input from cameras, and split according to
frame type. Send long exposure tracking frames through
the AEG module, and SLAM and hand tracking trackers.

Add controller emulated hand devices.

The native "fisheye62" camera distortion model is
dynamically converted to OpenCV Kannala-Brandt
parameters using a TinyCeres solver.
2022-09-26 00:32:28 +10:00
Jan Schmidt 9fbe81e494 d/rift_s: Port OpenHMD Oculus Rift S driver
Port across the Oculus Rift S driver from OpenHMD as a native
Monado driver.

This is mostly the same as the OpenHMD 3DOF driver, with
slightly better HMD distortion correction, various small
fixes, some capsense touch detection support.

Controller poses are rotated 40° to match grip pose.
2022-09-25 02:17:44 +10:00
Jakob Bornecrantz b5b832f612 u/trace_marker: Silence deprecation from percetto defines 2022-09-22 22:00:32 +01:00
Moses Turner 47714ed650 h/mercury: Add 2D model input and output visualizers 2022-09-22 13:22:55 -05:00
Moses Turner 812cc01104 h/mercury: Fix for blackbar in 180 degree orientation 2022-09-22 14:02:21 +01:00
Jakob Bornecrantz 098bd5e773 st/gui: Add discrete steps in video preview scale 2022-09-22 14:02:21 +01:00
Moses Turner 9a9878a850 st/gui: Improve record window scaling and add 180 degree flipping 2022-09-22 12:09:25 +00:00
Moses Turner d5dd9a264e a/util: Remove C++ guards and pragma once from C source file 2022-09-22 01:11:33 -05:00
Moses Turner 6ec9b73e1e d/wmr: Provide camera orientation to hand tracking 2022-09-21 23:11:58 -05:00
Jakob Bornecrantz 5c958d096d d/vive: Make sure to free the source 2022-09-22 00:41:10 +01:00
Moses Turner 45e52dee8f d/ns: Switch NS driver to builders 2022-09-21 07:57:03 -05:00
Moses Turner 6fdd790da0 d/dai: Update DepthAI driver
* Removed depthai_tracked_device - now you create a "SLAM" device, plug any frameserver into it and you're done
* Consolidated the grayscale frameservers into just one that gives you SLAM sinks
* Allows for different framerates and half-size for ov9282s
* Added debug frame sinks
* Added the ability to wait at startup for a number of frames for the streams to stabilize before submitting them to SLAM
2022-09-21 07:57:03 -05:00
Moses Turner 201708dee5 d/ht: Remove DepthAI hand tracking device
This was super crufty. Instead now you use a builder to create SLAM sinks with the DepthAI builder and plug them into a regular HT device
2022-09-21 07:57:03 -05:00
Moses Turner 074e18cac9 d/twrap: Add tracking wrapper driver 2022-09-21 07:57:03 -05:00
Moses Turner ef767af2ad cmake: Always build ht_ctrl_emu driver 2022-09-21 07:57:03 -05:00
Moses Turner 16dffc8d3b cmake: Link drv_ht and drv_cemu in t/common instead of vive/survive 2022-09-21 07:57:03 -05:00
Moses Turner 5c18f83e8d d/ulv2: Convert Ultraleap driver create function to helper 2022-09-21 01:54:40 +01:00
Moses Turner 833787c492 u/tracked: Add u_tracked_imu_3dof 2022-09-21 01:52:15 +01:00
Moses Turner d48792d9a9 u/sink: Ensure that image frames have monotonic timestamps 2022-09-21 01:52:15 +01:00
Moses Turner 17e0c39df2 u/sink: Add u_imu_sink_force_monotonic and u_imu_sink_split 2022-09-21 01:52:15 +01:00
Moses Turner 48e8894b74 u/json: Add u_json_get_pose_permissive
To parse poses from non-Monado configs with non-standard member names.
2022-09-21 01:52:15 +01:00
Moses Turner b31eb76718 u/json: Add u_json_get_pose 2022-09-21 01:52:15 +01:00
Moses Turner d91975299d u/config: Use cJSON_Delete instead of cJSON_Free for gui scene parsing 2022-09-21 01:52:15 +01:00
Moses Turner 714925e1b8 t/common: Use cJSON_Delete instead of cJSON_Free in SimulaVR 2022-09-21 01:52:15 +01:00
Moses Turner e1fbb5b619 cmake: Improve seperation between categories (NFC) 2022-09-21 01:52:15 +01:00
Moses Turner a23bf9ab36 d/ns: Use math/m_mathinclude.h to fix Windows build 2022-09-21 01:45:24 +01:00
Moses Turner 956ee5ae9d d/ns: Allow for freeing the 3D optical system 2022-09-21 01:45:24 +01:00
Jakob Bornecrantz e06608533f c/multi: Pass in option to do warm start-ups 2022-09-19 22:31:35 +00:00
Jakob Bornecrantz 6faea9224e c/multi: Add warm start and invalid states 2022-09-19 22:31:35 +00:00
Jakob Bornecrantz 4b3f97c65d c/multi: State paranioa 2022-09-19 22:31:35 +00:00
Daniel Willmott c83c21ef90 d/opengloves: Clarify encoding constants 2022-09-19 22:08:28 +00:00
Daniel Willmott f953ed7846 d/opengloves: Clarify input enums 2022-09-19 22:08:28 +00:00
Daniel Willmott ddda9ec727 d/opengloves: Add force feedback extension support 2022-09-19 22:08:28 +00:00
Daniel Willmott 74f14f2414 d/opengloves: Communication api change 2022-09-19 22:08:28 +00:00
Daniel Willmott 0bed585018 st/oxr: Add force feedback extension implementation 2022-09-19 22:08:28 +00:00
Daniel Willmott b710127fad xrt/device: Add force feedback role 2022-09-19 22:08:28 +00:00
Daniel Willmott 903aced023 xrt/include: Update xrt defines for force feedback output 2022-09-19 22:08:28 +00:00
Daniel Willmott 3c8e738e77 st/oxr: Update openxr extension support 2022-09-19 22:08:28 +00:00
Daniel Willmott 331f41d22e ext/openxr: Update specification to xr_mndx_force_feedback_curl 2022-09-19 22:08:28 +00:00
Moses Turner d2e2c3a988 cmake: Run cmake-format.sh 2022-09-19 21:57:37 +01:00
Christoph Haag 196bf24276 d/wmr: Add HP VR1000 support 2022-09-19 18:16:21 +00:00
Mateo de Mayo 3d366b9243 gui: Fix layout file not being created for the first time on Windows
By ensuring imgui.ini exists.
Also enabled u_config_json_open_or_create_file for Windows as this OS has an
implementation of u_file_get_path_in_config_dir available now.
2022-09-19 17:19:12 +00:00
Moses Turner bd265c611d d/ns: update Moses's distortion method 2022-09-19 11:20:04 -05:00
Moses Turner 1836182e24 t/common: Remove superfluous PID/VIDs from SimulaVR builder
And remove outdated comments
2022-09-19 11:17:34 -05:00
Moses Turner 33226dd892 d/rs: Add PID/VIDs for T265 2022-09-19 11:17:34 -05:00
Moses Turner 34d158b299 d/dai: Use setXLinkChunkSize(0) to reduce latency 2022-09-19 11:17:34 -05:00
Moses Turner 81764273ca h/mercury: Use much faster quaternion change of basis 2022-09-19 11:17:34 -05:00
Moses Turner e8225b273c t/common: Switch SimulaVR builder to u_file_read_content_from_path 2022-09-19 11:17:34 -05:00
Moses Turner d04139bedd u/file: Add u_file_read_content_from_path
Useful for Simula builder and North Star builder which both read straight from a path
2022-09-19 11:17:34 -05:00
Moses Turner a285294d7f h/mercury: Fix crop calculation for 180 degree rotations 2022-09-19 11:01:04 -05:00
Moses Turner 0ddf3e0e19 t/c/builder_lighthouse: Set camera orientation correctly 2022-09-16 23:41:18 +01:00
Moses Turner b735d99569 t/c/builder_lighthouse: Move state out of static storage
Also reword/rework some stuff to make it more obvious
which parts are specific for Valve Index cameras
2022-09-16 23:41:09 +01:00
Moses Turner e95d21586f h/mercury: Use camera orientation for keypoint model input 2022-09-15 21:36:37 -05:00
Jakob Bornecrantz 0fedf6fe7d sdl_test: Add SDL test framework 2022-09-15 14:06:20 +01:00
Moses Turner bea3569016 d/dai: Enable IR floodlight code and allow the floodlight to be controlled with an env var
IR floodlight support has been merged into DepthAI core
2022-09-13 19:56:27 -05:00
Moses Turner 0f40a4be8f t/c/builder_lighthouse: Fail more clearly when cameras aren't available 2022-09-13 22:10:58 +00:00
Moses Turner 4c55364d95 d/vive: Always give a vive config 2022-09-13 22:10:58 +00:00
bjorn 8d9244af53 c/render: Avoid potentially-unsupported memory type; 2022-09-13 19:21:13 +00:00
Jakob Bornecrantz 43526f48b7 c/multi: Do not draw apps that are not visible
Closes #197
2022-09-13 14:31:24 +00:00
Jakob Bornecrantz c6aa252796 c/multi: Do not keep track of current and sent state 2022-09-13 14:31:24 +00:00
Jakob Bornecrantz b95481ebaa t/ctl: Ensure connection is initialized properly 2022-09-13 14:31:24 +00:00
zhibinw 0cec22e907 ipc/android:allow none activity context for overlay app 2022-09-13 14:21:21 +00:00
Moses Turner e8054cd682 t/common: Use correct condition for building SimulaVR builder 2022-09-13 02:45:19 -05:00
Ryan Pavlik a7d553d93e xrt,comp,ipc...: Clarifying docs about "system compositor" and "multi compositor" 2022-09-12 10:59:41 -05:00
Moses Turner 9d6ca80af3 xrt: Add SimulaVR driver 2022-09-12 12:20:51 +00:00
Moses Turner cc62600972 d/rs: Allow Realsense device to be created outside of normal target list 2022-09-12 12:20:51 +00:00
Moses Turner 17acb376f9 xrt: Fix some typos that codespell caught 2022-09-11 23:32:28 -05:00
Jakob Bornecrantz 93ab662682 c/main: Destroy peek semaphores 2022-09-09 10:47:31 +01:00
Jakob Bornecrantz c0a3d53c0a c/main: Only create not begin peek command buffer 2022-09-09 10:47:30 +01:00
Jakob Bornecrantz cfa99000a9 c/main: Add image usage to make silence image view creation warnings 2022-09-09 10:46:43 +01:00
Jakob Bornecrantz d152c1f9db c/main: The source image starts in SHADER_READ_ONLY_OPTIMAL 2022-09-09 10:46:43 +01:00
Jakob Bornecrantz dedfd022b8 c/main: Tidy peek code 2022-09-09 10:46:43 +01:00
Jakob Bornecrantz 11a4f776e5 a/vk: Add vk_cmd_buffer_create helper 2022-09-09 10:46:21 +01:00
Jakob Bornecrantz 500d5b9954 a/vk: Rename command buffer helpers 2022-09-09 10:43:49 +01:00
Jakob Bornecrantz eeaaaf398b a/vk: Add helper to get buffer handle types
The image version of it was used for buffers as well.
2022-09-07 20:42:27 +01:00
Jakob Bornecrantz 115bf93487 st/oxr: Use precise sleeper for extra wait frame sleeps 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz 828246a5cd c/util: Use wait helper to implement wait frame 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz 0b2c7e207d c/multi: Use precise sleeper for scheduled frame waiting 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz e21b74059c c/multi: Use wait helper to do wait frame on main loop 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz 221aea883a c/multi: Use wait helper to implement wait frame 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz 1772baa90e ipc: Use wait helper to implement wait frame 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz a0d63d2f9c u/wait: Add wait helper 2022-09-07 15:06:57 +00:00
Jakob Bornecrantz b09aa79f4a c/multi: Improve frame timing printing a little bit 2022-09-06 18:08:10 +00:00
Jakob Bornecrantz f2b8855e51 st/oxr: Correct error message 2022-09-06 18:08:10 +00:00
Jan Schmidt 1811951dd6 t/ht: Add support for camera orientation
Add a way to pass in extra information about camera views, this new
struct is merged with the old image boundary information struct.

Co-authored-by: Moses Turner <moses@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-09-06 18:36:53 +01:00
Simon Zeni a6c30b4083 c/main: stop allocating vkCommandBuffer each blit 2022-09-05 17:58:38 +00:00
Jakob Bornecrantz e931e0fed9 ext/openxr: Update headers to 1.0.25 2022-09-04 23:19:00 +01:00
Mateo de Mayo d47d0ce2d9 u/logging: Log to stderr in Windows 2022-09-02 22:43:24 +00:00
Jarvis Huang 7be4163b91 d/android: Fix errors while getting display metrics 2022-09-02 16:25:12 +00:00
Jarvis Huang 52c790d1a9 t/android: Store jvm/context in service-lib 2022-09-02 16:25:12 +00:00
Jarvis Huang 25e96a508c aux/android: Using DexClassLoader to load class 2022-09-02 16:25:12 +00:00
Mateo de Mayo dfd37bba78 c/render: Fix forloop bounds innocuous typo 2022-08-31 09:50:17 -03:00
Jakob Bornecrantz 1d4c4cc4a0 c/render: Add scratch image 2022-08-25 16:58:03 +01:00
Christoph Haag 10e5e75a1d c/render: Default mock image to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
Since it's only used as a default/fallback read image it's
best to put it in that layout and keep it there.
2022-08-25 16:58:03 +01:00
Jakob Bornecrantz 4505bf09ff c/render: Rename scratch to mock
Can't use default as it's a keyword in C.
2022-08-25 16:58:03 +01:00
Christoph Haag eec55c5102 c/render: Put clear and distortion shaders in own sub structs 2022-08-25 16:58:03 +01:00
Jakob Bornecrantz 8b654c76cc c/render: Spelling 2022-08-25 16:58:03 +01:00
Jakob Bornecrantz 7a52814c26 c/render: Code style 2022-08-25 16:58:03 +01:00
Jakob Bornecrantz e02f47ef72 c/null: Request VK_KHR_maintenance[1|2] 2022-08-25 16:58:03 +01:00
Jakob Bornecrantz acd5655a79 c/main: Request VK_KHR_maintenance[1|2] 2022-08-25 16:58:03 +01:00
Jakob Bornecrantz 767637abb8 a/vk: Add image view with usage creation helper 2022-08-25 16:57:56 +01:00
Jakob Bornecrantz fa02407726 a/vk: Add mutable R8G8B8A8_[UNORM|SRGB] image creation helper 2022-08-25 16:57:54 +01:00
Jakob Bornecrantz a5efaceba5 a/vk: Add small chain helper 2022-08-25 16:57:36 +01:00
Jakob Bornecrantz e79b23275b a/vk: Remove unused vk_get_access_flags function 2022-08-25 15:06:09 +01:00
Jakob Bornecrantz 90f3adcdd1 a/vk: Group code 2022-08-25 15:06:09 +01:00
Jakob Bornecrantz e7c217cea5 a/vk: Track various limits 2022-08-25 15:06:09 +01:00
Jakob Bornecrantz b0f51acf77 a/vk: Track maintenance extensions 2022-08-25 15:05:44 +01:00
Jakob Bornecrantz fc55d623c0 xrt: Deal with vulkan underscore compat issues 2022-08-25 15:05:14 +01:00
Christoph Haag 3c9ef82060 a/math: Add math_matrix_4x4_transform_vec3 2022-08-25 12:41:07 +01:00
Jakob Bornecrantz 06ee685e9a c/util: Enable swapchain to be sub-classed 2022-08-24 19:56:42 +00:00
Jakob Bornecrantz d578203a8e c/util: Refactor comp_swapchain interface a bit 2022-08-24 19:56:42 +00:00
Jakob Bornecrantz ff4ce5f7e2 d/remote: Reset timout argument to select
Select can modify the argument, so need to reset it.
2022-08-24 14:36:56 +01:00
Ryan Pavlik 570f27d486 st/oxr: Wire up Win32 OpenGL 2022-08-22 19:53:50 +00:00
Jakob Bornecrantz a681252ac1 st/oxr: Tidy includes 2022-08-22 19:53:50 +00:00
Ryan Pavlik bdcc5be476 c/client: Win32 OpenGL client compositor
Co-authored-by: Milan Jaros <milan.jaros@vsb.cz>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-08-22 19:53:50 +00:00
Milan Jaros afe84a2c35 c/client: Swapchain for Win32 GL
Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-08-22 19:53:50 +00:00
Ryan Pavlik dc470ca6fe c/client: Adjust minimum GL version for clients to 3.0.0. 2022-08-22 19:53:50 +00:00
Ryan Pavlik fc0f390a87 aux/ogl: Add WGL wrapper to the build. 2022-08-22 19:53:50 +00:00
Ryan Pavlik 483b0ecbc9 xrt: Header for Win32 OpenGL. 2022-08-22 19:53:50 +00:00
Ryan Pavlik f2967e834c xrt: Include wingdi.h for WGL 2022-08-22 19:53:50 +00:00
Moses Turner 4de631285b u/hand: Fix finger ordering 2022-08-22 13:19:48 +01:00
Ryan Pavlik 1b02783113 d/sample: Clean up, specify a blend mode 2022-08-18 16:45:45 -05:00
Jakob Bornecrantz 074121e371 st/oxr: Use correct device to check for hand tracking support 2022-08-15 15:57:42 +00:00
Jakob Bornecrantz 97874a524a st/oxr: Remove old unused device role index system 2022-08-15 15:57:42 +00:00
Jakob Bornecrantz 4fa509034d st/oxr: Print out all roles 2022-08-15 15:57:42 +00:00
Jakob Bornecrantz 2632c2239d c/multi: Start and stop the native session
This depends on the number of active app sessions.
2022-08-15 14:46:26 +00:00
zhibinw 601143bfb7 st/oxr: Support FOCUSED to SYNCHRONIZED transfer in oxr_session_poll 2022-08-15 14:38:18 +01:00
Jakob Bornecrantz 8e70290ec1 d/opengloves: Pass in identity pose to hand simulation 2022-08-14 16:16:27 +01:00
Jakob Bornecrantz 936733d4b7 d/vive: Pass in identity pose to hand simulation 2022-08-14 16:16:27 +01:00
Jakob Bornecrantz d978a863c1 d/vive: Tidy 2022-08-14 16:16:27 +01:00
Jakob Bornecrantz 7e24b1dfe7 u/hand: Move common init into init helper function 2022-08-14 16:16:27 +01:00
Jakob Bornecrantz e6efcd7a02 u/hand: Take xrt_hand enum instead of bool 2022-08-14 16:16:27 +01:00
Jakob Bornecrantz 2b05bfc709 u/hand: Constify arguments 2022-08-14 16:16:27 +01:00
Jakob Bornecrantz dc28c1f04a d/remote: Fix hand tracking 2022-08-14 16:16:27 +01:00
Jakob Bornecrantz f535135c13 d/survive: Fix warning and org code (NFC) 2022-08-14 13:19:00 +01:00
Moses Turner 386117c5ee NFC: a/math: Make math_quat_from_swing prettier 2022-08-13 19:31:58 +00:00
Simon Zeni 778900cd3c c/main: add hmd peek window 2022-08-12 14:19:13 -04:00
Jakob Bornecrantz b6cab2fe07 c/main: Treat cube as the other optional layers 2022-08-11 13:42:17 +01:00
Simon Zeni 90f708d91c xrt: Enable XR_KHR_composition_layer_cube
Co-authored-by: Bjorn Swenson <bjorn@collabora.com>
2022-08-11 13:42:09 +01:00
Jarvis Huang 5063e76d16 ipc: Update active client id while activate session changed 2022-08-11 11:57:07 +08:00
Jan Schmidt f8a486884b u/u_json: Implement u_json_get_int_array() 2022-08-10 18:30:08 +01:00
Jan Schmidt ce13de9484 aux/math: Add math_matrix_3x3_from_quat()
Add a function to get a 3x3 rotation matrix
from a quaternion.
2022-08-10 18:30:08 +01:00
Moses Turner e5466553a2 d/euroc: Allow zero timestamps
Negative timestamps are still not allowed, but artificially generated datasets might start at exactly zero
2022-08-10 15:09:53 +00:00
Jakob Bornecrantz d6df203d03 d/opengloves: Fix warning (NFC) 2022-08-10 16:03:33 +01:00
Mateo de Mayo dabf592d59 t/euroc: Add lock for IMU recording queue 2022-08-10 14:28:59 +00:00
Jakob Bornecrantz 39f80f2ef5 d/vive: Remove unsued variable 2022-08-10 14:18:45 +00:00
Jakob Bornecrantz 54b43f1f31 t/common: Fix warnings in lighthouse builder 2022-08-10 14:18:45 +00:00
Jakob Bornecrantz 45e268dd16 st/oxr: Don't use mysterious time variable for error printing 2022-08-10 14:18:45 +00:00
Jakob Bornecrantz 42f5cf4c9d d/opengloves: Use correct argument when casting 2022-08-10 14:18:45 +00:00
Aidan Thornton 3485babd71 comp: rotate the compute compositor's distortion texture
Some devices like Android smartphones have displays which are
rotated, meaning the compositor needs to rotate its output.

Add support for this to the compute compositor by rotating the
contents of the textures it uses for distortion lookups. This
requires postponing the calculation of that texture and adding
code to recreate it if the rotation changes (which is allowed,
but unlikely to happen in practice.)
2022-08-10 12:39:44 +00:00
Aidan Thornton 4840def448 a/math: add math_matrix_2x2_transform_vec2 2022-08-10 12:39:44 +00:00
Jan Schmidt 96fb9ce34a wmr: Clean up camera debug last.
Make sure to stop the USB thread before destroying the debug sink
as cancelling the transfers is not sufficient to guarantee
there will be no final callback (or one in progress)
2022-08-08 17:31:53 +00:00
Ryan Pavlik 11525976fa c/client: Fix doc warning 2022-08-08 16:44:24 +00:00
Ryan Pavlik 831c2aefaf a/math: Fix doc warning 2022-08-08 16:44:24 +00:00
Ryan Pavlik e6da9b8090 a/d3d: Fix doc warning 2022-08-08 16:44:24 +00:00
Ryan Pavlik 094498dbf3 a/vk: Fix up and factor out external image support check 2022-08-08 16:44:24 +00:00
bjorn 987bc48edc Fix XrNegotiateRuntimeRequest::structVersion check; 2022-08-08 16:21:40 +00:00
Christoph Haag c24e482e5e st/oxr: Make OpenXR timestamps relative to service startup
This solves a problem where OpenXR timestamps could become invalid
(negative) in certain circumstances:

The timestamps that the OpenXR state tracker returned were offset such
that they appeared to start at OpenXR application startup time.

However monado-service is a long running service using system timestamps.
Because of this, if monado-service started work using a system timestamp
acquired before an OpenXR application started, then this system timestamp
could not be converted into an OpenXR without becoming invalid.

With this change, the OpenXR timestamps for OpenXR applications are offset
such that they appear to start at monado-service startup time instead.

As a side effect, all OpenXR applications connected to the same
monado-service instance will receive timestamps from the same domain.
2022-08-08 15:52:18 +00:00
Charlton Rodda 996aefe596 Improve validation in xrLocateViews 2022-08-04 19:21:39 +01:00
danwillm c4a290aa97 xrt/util: Fix typo with number of joints per finger 2022-08-01 17:33:40 +00:00
danwillm 76f96686d1 xrt/drivers: Convert hand tracking drivers to use hand simulation
Co-authored-by: Moses Turner <moses@collabora.com>
2022-08-01 17:33:40 +00:00
danwillm 1dee288459 aux/util: Share joint width hand tracking function 2022-08-01 17:33:40 +00:00
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