Commit graph

5926 commits

Author SHA1 Message Date
Jakob Bornecrantz 5e19ae6a5b st/oxr: Refactor wait frame function to avoid setting state before we should
We would leak frame_id and active_wait_frames increment that would cause bad
states where we hadn't fully waited but would allow xrBeginFrame to complete.
Also improve error handling so that on error conditions the semaphore is
properly decremented and the application can call xrWaitFrame again.

This was caused by unreal doing something like this:
* xrBeginFrame <-- Error
* xrWaitFrame
* xrBeginFrame
* xrEndFrame
* Called at the same time:
  * xrWaitFrame
  * xrBeginFrame <-- Would get state from non-completed xrWaitFrame
2023-05-03 16:18:10 +01:00
Jakob Bornecrantz cfb63abac1 ipc: Do not leak arguments before fully having waited 2023-05-03 16:16:13 +01:00
Jakob Bornecrantz 0fc9796a74 u/pacing: Improve debug printing in app pacer 2023-05-03 16:16:11 +01:00
Jakob Bornecrantz 6cb3048ad8 doc: Document !1801 2023-05-03 12:23:20 +01:00
Jakob Bornecrantz 5511be3c2d u/pacing: Add variable tracking to fake pacer 2023-05-03 12:23:20 +01:00
Jakob Bornecrantz 04d5942fa5 c/main: Try to detect when we miss frames 2023-05-03 12:23:20 +01:00
Jakob Bornecrantz 73f68fd111 c/main: Prefer only two swapchain images 2023-05-03 12:23:19 +01:00
Jakob Bornecrantz 2ab43f7494 c/main: Only do early acquire if we are ready 2023-05-03 12:23:02 +01:00
Jakob Bornecrantz 27fafacf63 c/main: Refactor frame handling a bit 2023-05-03 12:23:02 +01:00
Jakob Bornecrantz 2a17212d7f c/main: Use vk_surface_info when creating images 2023-05-03 12:23:01 +01:00
Jakob Bornecrantz 622e09bc19 a/vk: Add vk_surface_info helpers 2023-05-03 00:09:03 +01:00
Jakob Bornecrantz 5432e4c1b0 d/twrap: Log errors in twrap_slam_create_device 2023-05-02 23:39:58 +01:00
Jakob Bornecrantz 1f2d444ffc t/common: Fix typo 2023-05-02 23:27:57 +01:00
Fernando Velazquez Innella 6096f2199d c/client: Signal D3D12 fence from GPU instead of CPU 2023-05-02 21:23:19 +00:00
Ryan Pavlik 887b79f577 t/common: Add a missing result and null check in North Star builder 2023-05-02 21:19:40 +00:00
Jakob Bornecrantz ad1155f152 cmake: Use correct message type for OpenVR messages 2023-05-01 20:03:53 +01:00
Jakob Bornecrantz 0e2570c50b doc: Document !1797 2023-05-01 16:49:23 +01:00
Jan Schmidt 2d418ac14a d/wmr: Allow direct BT HP Reverb G2 controllers
Don't skip HP Reverb G2 controllers when they are directly
connected via bluetooth
2023-05-01 16:32:33 +01:00
Jan Schmidt 51097c9ecd d/wmr: Implement HP Reverb G2 controller
Implement the HP Reverb G2 controller subclass
and device specific input parsing.
2023-05-01 16:32:33 +01:00
Jan Schmidt 3c641c8490 xrt: Add extra HP Reverb G2 controller click controls
Add XRT_INPUT defines for HP G2 WMR controller home and squeeze click
inputs
2023-05-01 16:32:33 +01:00
Jan Schmidt 7e18fac224 d/wmr: Differentiate Odyssey+ controller
Switch the device name and input/binding mappings for
Odyssey+ controllers to differentiate them from OG WMR
controllers, allowing applications to load the correct
controller model
2023-05-01 16:32:33 +01:00
Jan Schmidt 3d0c898e22 d/wmr: Add Home button click to the OG WMR controller 2023-05-01 16:32:33 +01:00
Jan Schmidt ea53d274a5 d/wmr: Split out OG WMR controller handling
Move the original WMR controller specific handling
into a subclass of wmr_controller_base, and add
a stub placeholder for HP Reverb G2 controllers
2023-05-01 16:32:33 +01:00
Jan Schmidt f33326e90b d/wmr: Fix crash on invalid firmware
Don't access invalid memory on a short firmware read.
2023-05-01 16:32:33 +01:00
Jan Schmidt d326ff9890 d/wmr: Split the connection from controller
Factor out the bluetooth connection behaviour from
the WMR controller, so the connection can be
provided from the headset as well.
2023-05-01 16:32:33 +01:00
Jan Schmidt 35f72696fb xrt: Add WMR and Odyssey home click
Add xrt input entries to expose the home button on OG and
Odyssey+ WMR controllers
2023-05-01 16:32:33 +01:00
Jakob Bornecrantz 74e38f5f00 doc: Document !1796 2023-05-01 14:03:41 +01:00
Jakob Bornecrantz cb6201f297 st/oxr: Set extensions earlier 2023-05-01 14:03:41 +01:00
Jakob Bornecrantz ce5669aabb st/oxr: Handle LOCAL_FLOOR enums 2023-05-01 14:03:41 +01:00
Jakob Bornecrantz 2b921ab673 t/slam: Enable some tracing 2023-05-01 14:03:41 +01:00
Jakob Bornecrantz c0cc22e101 d/wmr: Expand tracing in camera 2023-05-01 14:03:40 +01:00
Jakob Bornecrantz cfdea265f4 c/client: Avoid using shared context on synchronization 2023-05-01 14:03:01 +01:00
Jan Schmidt 96d188803c d/wmr: Fix typo in debug output
correnntly -> currently
2023-05-01 13:51:44 +01:00
Jan Schmidt 236e732404 d/wmr: Fix prober crash after failing to load fw
Fix a double-free. The wmr_hmd_create() method
already cleans up the hid devices on failure.
2023-05-01 13:51:44 +01:00
Jan Schmidt 87d804c7d6 d/wmr: Log larger Device Status messages
HP Reverb G2 sends larger device status messages with unknown
content. Log how large they are, and at least dump the first
11 bytes
2023-05-01 13:51:44 +01:00
Jan Schmidt ed54b7899c d/wmr: Don't wait forever for HMD firmware
Add a 100ms timeout for firmware reads from the HMD,
and error out if it takes longer. Fixes problems
sometimes waiting forever on my G2 when it gets
into a bad state.
2023-05-01 13:51:44 +01:00
Jan Schmidt 7b4fffed8f d/wmr: Improve readability in the camera source 2023-05-01 13:51:44 +01:00
Jan Schmidt e9c977243f u/logging: Add hexdump logging method
Add macros for logging hexdumps of memory blocks to help
with driver development. Only macros for trace and debug
level logging are provided, as noone should be logging
hexdumps except for development.
2023-05-01 13:51:44 +01:00
utzcoz 4f171b3d55 ext/openxr: Update headers to 1.0.27
Signed-off-by: utzcoz <utzcoz@outlook.com>
2023-04-27 21:48:50 +08:00
Jakob Bornecrantz 5197b4a42f d/vive: Add a slider to adjust all tracked pose timestamps 2023-04-26 22:17:36 +01:00
Jakob Bornecrantz ce3c5d59fb d/wmr: Add a slider to adjust all tracked pose timestamps 2023-04-26 22:17:36 +01:00
Jakob Bornecrantz 9d8668a0a6 cmake: Remove _SLAM suffixes on KIMERA and BASALT have defines 2023-04-26 21:39:16 +01:00
Jakob Bornecrantz 99c1742c82 ext/slam: Use LDFLAGS instead of libraries
This lets us avoid LIBRARY_PATH in order to build Monado.
2023-04-26 21:39:16 +01:00
Ryan Pavlik c924157c59 a/android: Only look up the standardized intent to find our own package.
Should allow a constrained query manifest in client apps.
2023-04-25 10:40:58 -05:00
Ryan Pavlik f57bc4a849 android-jni-wrap: Update to add more things 2023-04-24 11:43:30 -05:00
Christoph Haag aa052046a8 cmake: Delete active_runtime.json if it already exists 2023-04-24 13:57:00 +00:00
utzcoz 0f2699b02f ci: Install sdl2 with vulkan feature
We need to update MONADO_WIN_BASE_TAG and MONADO_WIN_MAIN_TAG to trigger
container rebuilding.
2023-04-24 03:27:01 +00:00
utzcoz 6032b4dc8b vcpkg: Enable vulkan feature for sdl2
The comp_window_peek needs sdl2 with Vulkan supporting, and normal sdl2
installation doesn't support Vulkan. So we need to install Vulkan
feature of sdl2 explicitly to let sdl2 work with Vulkan, and let
comp_window_peek works on Windows.
2023-04-24 03:27:01 +00:00
Jakob Bornecrantz c0d242e1ed a/vk: Fix doccomment style [NFC] 2023-04-21 14:28:18 +01:00
Jakob Bornecrantz 17ea4a73eb a/vk: Mark unexported function as static [NFC] 2023-04-21 14:28:18 +01:00