Ryan Pavlik
3ed593df4b
st/oxr: Fix typo in comment
2022-04-18 10:53:09 -05:00
Ryan Pavlik
5dcb5c360c
comp: Fix warnings on MSVC
2022-04-18 10:53:02 -05:00
Ryan Pavlik
3631289e4f
xrt: Rename interface: reserved word in msvc.
2022-04-18 10:52:57 -05:00
Ryan Pavlik
11e0d7ed76
comp: Fix comment typo
2022-04-18 10:52:45 -05:00
Ryan Pavlik
1331e93bdc
xrt: Fix typo
2022-04-18 10:52:42 -05:00
Jakob Bornecrantz
8ed5a082be
c/render: Add missing comments to timewarp shader
2022-04-18 13:03:32 +01:00
Jakob Bornecrantz
1999891a19
c/render: Use a Vulkan projection matrix with Y down in projection space
2022-04-18 13:03:32 +01:00
Jakob Bornecrantz
e561bec87d
c/render: Use specialization constant for distortion size
...
This would allow Vulkan shader specialization to be used to change
the size and runtime instead of having to recompile.
2022-04-18 13:03:32 +01:00
Jakob Bornecrantz
87ea035416
c/render: Document compute distortion shader sampling code
2022-04-18 13:03:32 +01:00
Jakob Bornecrantz
f4d3c8a93f
c/render: Correctly calculate uv to tan angle offset values
2022-04-18 13:03:32 +01:00
Jakob Bornecrantz
f20031ec99
c/render: Correctly convert shader index to target pixel uv
2022-04-18 13:03:32 +01:00
Jakob Bornecrantz
ca33ac434c
c/render: Correctly scale uv for compute distortion
2022-04-17 15:26:51 +00:00
Jakob Bornecrantz
3b6b45b762
d/wmr: Prettier xfer status printing
2022-04-17 16:06:11 +01:00
Christoph Haag
7ebd11e1d4
comp/render: Add VkExternalMemoryBufferCreateInfo
...
Fixes validation error when calling render_buffer_init_exportable
VUID-vkBindBufferMemory-memory-02726(ERROR / SPEC): msgNum: -168767885 - Validation Error: [ VUID-vkBindBufferMemory-memory-02726 ] Object 0: handle = 0xe88693000000000c, type = VK_OBJECT_TYPE_BUFFER; Object 1: handle = 0xcad092000000000d, type = VK_OBJECT_TYPE_DEVICE_MEMORY; | MessageID = 0xf5f0ce73 | vkBindBufferMemory(): The VkDeviceMemory (VkDeviceMemory 0xcad092000000000d[]) has an external handleType of VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT which does not include at least one handle from VkBuffer (VkBuffer 0xe88693000000000c[]) handleType Unhandled VkExternalMemoryHandleTypeFlagBits. The Vulkan spec states: If the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkBindBufferMemory-memory-02726 )
Objects: 2
[0] 0xe88693000000000c, type: 9, name: NULL
[1] 0xcad092000000000d, type: 8, name: NULL
2022-04-15 01:27:38 +02:00
Ryan Pavlik
a55a5a54b3
a/math: Normalize argument order of one euro filter initializing functions.
2022-04-13 09:40:40 -05:00
Ryan Pavlik
3e6ec47296
monado: Apply clang-tidy fixes to most of the codebase.
...
All at least visually inspected, some revised from the auto-fixit
2022-04-13 09:34:54 -05:00
Nima01
f705683957
d/wmr: Partial decoding of device status message. Notifies when screen is fully powered up Reverb G1.
2022-04-13 00:19:50 +00:00
Ryan Pavlik
029fa2496e
a/math: Tell clang-tidy to leave our MSVC-mandated define alone.
...
Also try to avoid redefinition warnings from MSVC.
2022-04-13 01:11:17 +01:00
Ryan Pavlik
0ae0316400
cmake: Format build files
2022-04-13 01:11:13 +01:00
Ryan Pavlik
4939bc2f59
a/util: Manual fixes to clang-tidy issues.
2022-04-13 01:10:54 +01:00
Ryan Pavlik
f769ff8977
comp/main: Manual fixes to clang-tidy issues
2022-04-13 01:10:46 +01:00
Ryan Pavlik
55364cde35
xrt: Manual fixes to clang-tidy issues.
2022-04-13 01:10:14 +01:00
Alexander Koenig
5d76c83c37
Fix typo in rotate_lenses_right quirk, helps with #166
2022-04-12 23:14:32 +00:00
Ryan Pavlik
71580213aa
comp/client: Fix doxygen warnings
2022-04-12 23:06:11 +00:00
Ryan Pavlik
e551f6a9b8
t/hand/mercury: Fix some doxygen warnings.
2022-04-12 23:06:11 +00:00
Ryan Pavlik
62ff3bad54
t/cli: Fix warning when building without slam
2022-04-12 23:06:11 +00:00
Ryan Pavlik
e8435da3e5
st/p: Silence an MSVC warning
2022-04-12 23:06:11 +00:00
Ryan Pavlik
91c94f015e
st/oxr: Fix or silence a number of MSVC warnings
2022-04-12 23:06:11 +00:00
Ryan Pavlik
ef9b15ee67
d/dummy: Silence some warnings
2022-04-12 23:06:11 +00:00
Ryan Pavlik
b999b326dc
comp/render: Silence warning
2022-04-12 23:06:11 +00:00
Ryan Pavlik
fe7cf853e9
comp/render: Guard gcc pragmas
2022-04-12 23:06:11 +00:00
Ryan Pavlik
ad1961fce7
auxiliary: Fix or disable a number of warnings
...
Both MSVC and doxygen warnings.
2022-04-12 23:06:11 +00:00
Ryan Pavlik
2b5f07c8e4
a/util: Silence warnings if using percetto in C++
2022-04-12 14:38:58 -05:00
zhibinw
172ed2e847
xrt: Do not require OPENXR permission when connect MonadoService
2022-04-12 14:20:17 +00:00
Mateo de Mayo
e41cc1eec3
d/qwerty: Fix warning for AIM pose
2022-04-12 10:20:02 -03:00
Jakob Bornecrantz
9fd8018a16
st/oxr: Improve space and view debug printing
2022-04-11 20:27:53 +01:00
Jakob Bornecrantz
eb90745f4e
st/oxr: Add pretty print functions
2022-04-11 20:27:53 +01:00
Jakob Bornecrantz
179664d6b6
st/oxr: Add pretty print integration in oxr_sink_logger
2022-04-11 20:27:53 +01:00
Jakob Bornecrantz
03df012e90
st/oxr: Add XRT_PRINTF_FORMAT to oxr_slog
2022-04-11 18:27:39 +01:00
Jakob Bornecrantz
58daee4752
st/oxr: Remove log argument to oxr_action_get_pose_input function
2022-04-11 18:27:39 +01:00
Jakob Bornecrantz
e8fb10bd82
u/pretty: Add pretty print helpers
2022-04-11 18:27:39 +01:00
Jakob Bornecrantz
cbeebe6ca4
xrt: Add XRT_GET_INPUT_ID
2022-04-09 22:07:06 +01:00
Jakob Bornecrantz
b26a602322
c/main: Fix copy-typo
2022-04-08 20:15:00 +01:00
Jakob Bornecrantz
42df7b7b21
c/main: Lock cmd pool mutex when reading back frames
2022-04-08 19:30:06 +01:00
Jakob Bornecrantz
400c3900f0
c/render: Take the pool lock to fix threading errors
2022-04-08 19:20:33 +01:00
Jakob Bornecrantz
0ee1127431
aux/vk: Rename barrier functions and introduce new variant
2022-04-08 19:17:41 +01:00
Jakob Bornecrantz
9d74e7a8c5
aux/vk: Tidy command buffer related functions
2022-04-08 17:34:30 +00:00
Jakob Bornecrantz
6e13a0a21b
aux/vk: Use correct aspect for image barrier
2022-04-08 17:34:30 +00:00
Jakob Bornecrantz
0d152381a8
c/client: Move NOOP begin/end to EGL client
2022-04-08 11:32:40 +01:00
Jakob Bornecrantz
46debec4fd
c/client: Use begin and end in layer commit
2022-04-08 11:21:06 +01:00
Jakob Bornecrantz
7996457f3e
c/client: Tidy
2022-04-08 11:21:06 +01:00
Christoph Haag
cb7855b8bd
c/client: Ensure the correct GL context is current
...
when running OpenGL functions.
Co-authored-by: James Hogan <james@albanarts.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-04-07 20:17:29 +02:00
James Hogan
7440e14fb4
aux/ogl: Add GLX API wrapper
...
Add a wrapper for the GLX API around the GLAD header.
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2022-04-07 02:21:34 +02:00
James Hogan
3dfcc48564
external: Update GLAD to add GLX 1.3
...
Update glad command to include GLX 1.3 and regenerate.
This will be useful to implement proper OpenGL context saving,
switching, and restoring.
reuse: Add glad/glx.h
2022-04-07 02:21:34 +02:00
Christoph Haag
8dd19ea794
st/prober: Also disable autoprober drivers when qwerty is enabled
2022-04-06 23:23:55 +02:00
Christoph Haag
6b58c70f11
st/prober: remove stray ;
2022-04-06 23:23:52 +02:00
Mateo de Mayo
8468c8e0a6
t/cli: Add slambatch command
2022-04-06 11:50:17 -03:00
Mateo de Mayo
310248546d
d/euroc: Add euroc runner
2022-04-06 11:50:17 -03:00
Mateo de Mayo
4c85e3fbb3
t/slam: Refactor tracker to accept a config struct on creation
2022-04-06 11:50:17 -03:00
Mateo de Mayo
a80f88eb00
d/euroc: Refactor player to accept a config struct on creation
2022-04-06 11:50:17 -03:00
Mateo de Mayo
ff8c2d820c
d/euroc: Improve player tolerance to more datasets
...
Makes all usable euroc and tumvi datasets stream properly by fixing
some border cases that a couple of datasets had.
2022-04-06 11:50:17 -03:00
Mateo de Mayo
2a4a9aa210
t/slam: Add configuration options to tracker
...
Specifically:
- SLAM_PREDICTION_TYPE
- SLAM_CSV_PATH
2022-04-06 11:50:17 -03:00
Mateo de Mayo
7f0699dffc
d/euroc: Add configuration options to the player
...
Specifically:
- EUROC_PLAY_FROM_START
- EUROC_USE_SOURCE_TS
- EUROC_PRINT_PROGRESS
- EUROC_MAX_SPEED
- EUROC_PLAYBACK_SPEED
2022-04-06 11:50:17 -03:00
Mateo de Mayo
b6cd12a860
misc: Add gui nullcheck and initialize thread running field
2022-04-06 11:50:17 -03:00
Jakob Bornecrantz
716ba4db60
tracking: Predeclare struct instead of including cJSON in header
2022-04-06 15:38:44 +01:00
Jakob Bornecrantz
d89b8f40d9
st/oxr: Detect VK_LAYER_MND_enable_timeline_semaphore
...
And enable timeline semaphore support if it is found.
2022-04-06 12:08:48 +01:00
Jakob Bornecrantz
1a00709186
aux/vk: Add vkEnumerateDeviceLayerProperties to instance functions
2022-04-06 11:45:24 +01:00
Campbell Suter
e18ca850ba
steamvr_drv: Use the correct grip name for XRT_DEVICE_SIMPLE_CONTROLLER
...
Previously, xrt_device_get_tracked_pose was called with
XRT_INPUT_GENERIC_HEAD_POSE when getting the pose of a SIMPLE_CONTROLLER device.
When using the 'remote' driver, this lead to two warnings per frame [1] and more
importantly the device pose wasn't being read. I haven't tested this with any
other drivers, but it appears that at least the QUERTY driver likely has an
issue with this too, as it uses the input name to determine whether to return
the HMD or controller pose.
[1] ERROR [r_device_get_tracked_pose] Unknown input name
2022-04-06 00:50:40 +00:00
Ryan Pavlik
16c016c4ca
comp/render: Use a helper
2022-04-05 22:48:24 +00:00
Ryan Pavlik
8af498aa20
a/vk: Fix typo
2022-04-05 22:48:24 +00:00
Ryan Pavlik
7952773908
a/vk: Expose get_device_memory_handle as vk_get_native_handle_from_device_memory
2022-04-05 22:48:24 +00:00
Ryan Pavlik
9463de7e6f
xrt: Undef Status and Bool in vulkan include if we think the xlib header got included.
2022-04-05 23:32:07 +01:00
Jakob Bornecrantz
48fd3e626c
c/client: Tidy VK compositor
2022-04-05 23:22:26 +01:00
Jakob Bornecrantz
3bff3827d9
c/client: Remove acquire_release_fence completely
...
The barriers are a completely GPU affair no need to syncronize with the host.
2022-04-05 23:22:26 +01:00
Jakob Bornecrantz
e7713bf1e4
c/multi: Be slightly smarter about late frames
2022-04-05 23:22:26 +01:00
Jakob Bornecrantz
cf413a445f
c/multi: Add per client thread that waits for sync objects
2022-04-05 23:22:26 +01:00
Jakob Bornecrantz
0595070132
u/pacing: Split draw into draw and wait, improve pipelining
2022-04-05 22:01:17 +00:00
Jakob Bornecrantz
47649f56b6
u/pacing: Track when the app wants the frame to be displayed
2022-04-05 22:01:17 +00:00
Jakob Bornecrantz
8e8a0b38c6
u/pacing: Add gpu done time tracking to app pacer
2022-04-05 22:01:17 +00:00
Jakob Bornecrantz
04b9602dd1
u/pacing: Allow more then two frames to be alive at the same time
2022-04-05 22:01:17 +00:00
Jakob Bornecrantz
f4b75b3561
u/trace_marker: Add wait pacing track
2022-04-05 22:01:17 +00:00
Jakob Bornecrantz
e77094892f
st/oxr: Add debug flag to force timeline semaphores on
2022-04-05 22:01:17 +00:00
Jakob Bornecrantz
cfb8d36b46
c/render: Rename files
2022-04-05 22:45:45 +01:00
Jakob Bornecrantz
ee09070608
c/render: Rename all functions and structs with new prefix
2022-04-05 22:45:12 +01:00
Jakob Bornecrantz
d93c2dc4d8
c/render: Remove unused comp_rendering_compute_data
2022-04-05 22:45:12 +01:00
Jakob Bornecrantz
2f24353556
c/render: Remove main/comp_compositor include
2022-04-05 22:45:10 +01:00
Jakob Bornecrantz
c317a27a1d
aux/vk: Remove setting of format on out struct
2022-04-04 16:12:08 +00:00
Jakob Bornecrantz
1c67113e20
aux/vk: Tidy vk_image_allocator
2022-04-04 16:12:08 +00:00
Jakob Bornecrantz
15da4636f8
aux/vk: Use VK_CSCI_FORMATS helper for swapchain image flags
2022-04-01 19:53:02 +01:00
Jakob Bornecrantz
aaa2d4e8e6
aux/vk: Move compositor image format list here
2022-04-01 19:44:07 +01:00
Jakob Bornecrantz
d31232c794
aux/vk: Move vk_insert_image_memory_barrier declaration (NFC)
2022-04-01 18:54:18 +01:00
Jakob Bornecrantz
dea7bc847e
c/util: Make COMP_VULKAN_FORMATS differentiate between depth-stencil, depth and stencil formats
2022-04-01 18:53:47 +01:00
Christoph Haag
5aa7ef25b8
c/util: Remove old format checking code
...
It's not the compositors job to check the format.
2022-04-01 18:53:47 +01:00
Christoph Haag
322ce27163
c/util: Print warning when attempting to create protected content swapchain
2022-04-01 18:53:47 +01:00
Christoph Haag
22c7fea639
ipc: Amend swapchain create error for unsupported swapchains
2022-04-01 18:10:22 +01:00
Jakob Bornecrantz
4f0b425da7
c/client: Tidy error messages in GL compositor
2022-03-31 01:14:04 +01:00
Jakob Bornecrantz
d53659a476
c/client: Add a littel bit of tracing to GL compositor
2022-03-31 01:09:25 +01:00
Jakob Bornecrantz
38e7a0a1e6
c/client: Format format list
2022-03-31 00:45:51 +01:00
Jakob Bornecrantz
4fe8e89be9
c/client: Add new formats to GL
2022-03-31 00:43:53 +01:00
Christoph Haag
1eeb870a2d
ipc: Add float to supported types in proto
2022-03-30 22:35:33 +02:00
Jakob Bornecrantz
4f1dfa7ae4
aux/vk: Refactor out some printing functions
2022-03-30 20:14:38 +01:00
Jakob Bornecrantz
2f73c7569a
aux/vk: Refactor out init functions
2022-03-30 20:08:35 +01:00
Ryan Pavlik
6d621b07c5
st/oxr: Add missing ifdef fixing broken build if Vulkan missing
2022-03-30 09:26:22 -05:00
Christoph Haag
068bf05057
st/oxr: Fix pure_relation_from_space
...
Fixes in particular the space transform submitted in composition layers
in local reference space.
Consider a pose given with a pose offset to an XrSpace as its origin.
To construct the Pose in global space, simply add up XrSpace pose in
global space, XrSpace pose offset and the given pose.
Given pose with a
pose offset to XrSpace as origin
/|\ /|\
/ |
/ |
XrSpace pose offset |
/|\ |
| |
| |
XrSpace pose |
in global space |
/|\ |
\ |
\ |
Global Space origin
2022-03-30 02:03:18 +02:00
Jakob Bornecrantz
922fdff62d
c/main: Use new format checking helpers
2022-03-29 16:26:34 +01:00
Jakob Bornecrantz
c3eb8cd014
c/util: s/colour/color/g
2022-03-29 16:26:34 +01:00
Jakob Bornecrantz
08e025522f
c/util: Add missing AHardwareBuffer formats
2022-03-29 16:26:34 +01:00
Jakob Bornecrantz
658c67b0fc
c/util: Add vulkan format checking code
2022-03-29 16:26:34 +01:00
Jakob Bornecrantz
f54894ee0d
aux/vk: Refactor out external handle type for compositor swapchain image
2022-03-29 16:26:34 +01:00
Jakob Bornecrantz
65ced47143
aux/vk: Add more formats to vk_format_string
2022-03-29 16:26:34 +01:00
Jakob Bornecrantz
8cfe941c01
aux/vk: Rename vk_[color_]format_string
2022-03-29 16:26:34 +01:00
Ryan Pavlik
96314d4f76
meson: Define XRT_HAVE_HIDAPI if using it
2022-03-29 09:31:49 -05:00
Jakob Bornecrantz
b4f2bc88c8
cmake: Introduce XRT_HAVE_HIDAPI to make HIDAPI controllable
2022-03-28 22:35:01 +00:00
Christoph Haag
5d50be0164
aux/vk: Always use dedicated allocation on desktop
...
Fixes CTS on nvidia.
Example code given by the driver devs in the nvidia forums was
VkBool32 dedicatedAllocation = (memDedicatedReq.requiresDedicatedAllocation != VK_FALSE) ||
(memDedicatedReq.prefersDedicatedAllocation != VK_FALSE);
However on GTX 1080, nvidia 470.103 with
./conformance_cli "Timed Pipelined Frame Submission" -G Vulkan2
we are to create a VkImage with
DEBUG [create_image] create_image: Use dedicated allocation: 0 (preferred: 0, required: 0)
doing so causes the VkFence wait in vk_submit_cmd_buffer to fail randomly with
either VK_TIMEOUT or VK_ERROR_DEVICE_LOST.
On AMD radv we are told to use dedicated allocation:
DEBUG [create_image] create_image: Use dedicated allocation: 1 (preferred: 1, required: 1)
2022-03-28 23:16:05 +02:00
Christoph Haag
18376007f9
st/oxr: oxr_space type is now an enum
...
v2: Get rid of ref_space_type
2022-03-25 18:47:46 +00:00
Christoph Haag
543fbc38e2
st/oxr: Allow locating views in all spaces
2022-03-25 18:47:46 +00:00
Christoph Haag
6c9f1f4083
t/hand: Add meson build for mercury
2022-03-25 18:33:04 +00:00
Christoph Haag
02e5e7be4a
st/oxr: Fix getting velocity next struct in xrLocateSpace
...
fixes 85a2abae
2022-03-25 15:36:14 +01:00
Moses Turner
870a2ce704
d/ht: support DepthAI cameras and Mercury hand tracking
2022-03-23 18:30:02 -05:00
Moses Turner
00be5d0551
Add Mercury grayscale hand tracking!
2022-03-23 18:30:02 -05:00
Antonio Ospite
28b53689f4
c/render: add comp_buffer_init_exportable helper to create exportable buffers
...
Some downstream user might want to use the very handy comp_buffer_init()
helper to create buffers, but the latter does not cover the case when
the buffer needs to be exportable for API interoperability.
Add a new comp_buffer_init_exportable() helper to cover that case, this
is done in a way that is not particularly invasive for existing users of
comp_buffer_init(), as all the logic about the exportability is handled
by the new function.
2022-03-23 21:38:22 +00:00
Moses Turner
9ea9d0babf
t/hand: Correct old_rgb namespace
2022-03-23 20:56:15 +00:00
Moses Turner
912cc22c20
d/dai: Get ready to support fisheye cameras
...
Remove the #if 0 after the next depthai-core release.
2022-03-23 20:56:15 +00:00
Moses Turner
0a843eb20f
d/dai: Translation is in cm but in m in Monado
2022-03-23 20:56:15 +00:00
Moses Turner
9417fe8d7f
a/tracking: Support different numbers of calib parameters
2022-03-23 20:56:15 +00:00
Jakob Bornecrantz
83c8b1da86
u/sink: Make u_sink_create_format_converter support L8
...
Co-authored-by: Moses Turner <moses@collabora.com>
2022-03-23 20:56:15 +00:00
Moses Turner
e817a18cfd
u/worker: Add #pragma once
2022-03-23 20:56:15 +00:00
Ryan Pavlik
8bfb4b3d09
cmake: Update to handle newer Percetto cmake build details
2022-03-23 11:22:10 -05:00
Jakob Bornecrantz
074a0afc32
c/vk: Make it possible to request higher Vulkan version
2022-03-22 15:19:48 +00:00
Jakob Bornecrantz
8d660b6994
cmake: Make it possible to select SPIR-V version to target
2022-03-22 15:19:48 +00:00
Christoph Haag
6fdd8ab93a
aux/config_json: Only check version for camera tracking config
...
Only the camera tracking config writes and uses the version field.
Unfortunately the tracking override config is written into the same json
object while not making use of the version field.
2022-03-22 12:35:01 +00:00
korejan
d43c7ffa71
android: Support for using device's set display refresh rate
...
* Adds support for querying the device's currently set display refresh rate to
be used for android driver on creation. Allowing for devices which support
selecting other refresh rate modes beyond 60hz.
* Changes hardcoded sensor polling rate to now match refresh queried from the
device.
2022-03-22 12:33:30 +00:00
Jakob Bornecrantz
e2e65aa241
u/logging: Fix va_copy usage
2022-03-21 22:19:30 +00:00
Jakob Bornecrantz
4e4246866b
st/gui: Use unique IDs instead of child windows
2022-03-21 13:14:19 +00:00
Moses Turner
b3872e925f
Switch real-time users of u_sink_queue to u_sink_simple_queue
2022-03-19 14:28:09 +00:00
Moses Turner
09da6e09dc
u/sink: Add u_sink_simple_queue
2022-03-19 14:28:09 +00:00
Moses Turner
662b72e2f6
u/sink: Tiny refactor for queue
2022-03-19 14:28:09 +00:00
Connor Smith
703baa94fe
Make app pacing more robust to variable composition->display times.
...
If the last returned display time shifts backwards slightly with respect to the
last sampled display time from the compositor, the next predicted display time
will not move forward by one frame. Adding half the display period to the
comparison makes the pacing robust to this case.
2022-03-19 00:57:41 +00:00
Jakob Bornecrantz
170fe0e5d9
aux/vk: Refactor out semaphore and native creation into a helper
2022-03-19 00:41:29 +00:00
Moses Turner
b6e5c296f5
comp: Factor frame-timing helper out of comp_compositor
...
So that we can use it for readback and anything else
2022-03-18 19:00:28 -05:00
Moses Turner
8fe2a86886
st/gui: Add SW Ultrafast and SW Veryfast pipelines
...
Yes, I really need those. SW Fast is still the default.
2022-03-18 18:59:37 -05:00
Jakob Bornecrantz
29acdba23f
aux/vk: Tidy get/import functions for native handles (NFC)
2022-03-18 23:20:20 +00:00
Jakob Bornecrantz
77ba132452
u/logging: Add u_log_set_sink implementation
2022-03-17 15:37:09 +00:00
Jakob Bornecrantz
6f10a20ce0
d/multi: Use xrt_device_get_tracked_pose function
2022-03-17 02:08:33 +00:00
Ryan Pavlik
81eaf5c28c
gradle: update NDK and build tools versions to be consistent.
2022-03-16 20:29:50 +00:00
Jakob Bornecrantz
71d9887b5b
xrt: Tidy xrt_instance.h (NFC)
2022-03-16 15:46:14 +00:00
Moses Turner
d2366b31dc
d/multi: Correctly override the head pose in get_view_poses
2022-03-15 20:13:10 -05:00
Moses Turner
e4805c07e2
d/rs: Tracking origin probably should have an identity pose
2022-03-15 20:13:10 -05:00
utzcoz
b2ccc8419c
t/oxr_android: Move import under license for openxr_android build.gradle
...
Signed-off-by: utzcoz <utzcoz@outlook.com>
2022-03-15 14:28:40 +00:00
utzcoz
45f1de0c53
t/oxr_android: Replace DisplayOverOtherAppsStatusFragment instead of adding
...
If we click button to enable DisplayOverOtherApps for monado, use
back button to com back to Launcher and hot-start monado app, the
disabled status fragment is not removed, and enabled status fraqgment is
added top on disabled status fragment, that causes text overlap.
This CL will use FragmentTransaction#replace instead of
FragmentTransaction#add to ensure there is only one
DisplayOverOtherAppsStatusFragment, and new status will replace old
status without any overlap.
Signed-off-by: utzcoz <utzcoz@outlook.com>
2022-03-15 14:28:40 +00:00
utzcoz
b6e8801ea4
t/oxr_android: Replace full-name qualified with importing for build.gradle
...
Signed-off-by: utzcoz <utzcoz@outlook.com>
2022-03-15 14:28:40 +00:00
Jakob Bornecrantz
b2d2cf3ade
st/oxr: Tidy oxr_space_locate
2022-03-15 00:16:17 +00:00
Jakob Bornecrantz
587d26bb45
st/oxr: Only access space velocity through chain helper
2022-03-15 00:16:17 +00:00
Jakob Bornecrantz
85a2abaec6
st/oxr: Refactor pose and fov copies into helpers
2022-03-15 00:16:17 +00:00
Jakob Bornecrantz
1fb5656862
st/oxr: Improve logging in xrLocateSpace
2022-03-15 00:16:17 +00:00
Jakob Bornecrantz
4fc02cf60e
st/oxr: Ensure velocities flags and values are zeroed
2022-03-15 00:16:17 +00:00
Jakob Bornecrantz
798932fbf2
st/oxr: Set position to identity and zero velocities if the spaces are locatable
2022-03-15 00:16:17 +00:00
Jakob Bornecrantz
291e795728
st/oxr: Add XRT_CHECK_RESULT to some space functions
2022-03-15 00:16:17 +00:00
Jakob Bornecrantz
e89e3d5276
aux/vk: Add XRT_CHECK_RETURN to sync functions
2022-03-15 00:16:17 +00:00
Jakob Bornecrantz
57d1394941
xrt: Add XRT_CHECK_RESULT define
2022-03-15 00:16:17 +00:00
Mateo de Mayo
2bb0c5cda5
t/slam: Implement CSV writers for trajectories and timing info
...
This CSV files can be used for offline analysis.
2022-03-14 23:42:13 +00:00
Mateo de Mayo
c9f7184d64
t/slam: Implement timing and trajectory error UI graphs
2022-03-14 23:42:13 +00:00
Mateo de Mayo
af2dde11c3
misc: Fix some release build warnings and minor changes
...
- Add CMakeUserPresets.json to .gitignore
- Fix DASSERTs warning for release builds
- Do not use one euro filter with invalid poses
- Other NFC style changes
2022-03-14 23:42:13 +00:00
Mateo de Mayo
e889ee7562
d/euroc: Implement ground truth trajectory load
2022-03-14 23:42:13 +00:00
Mateo de Mayo
71694b80fd
d/euroc: Refactor player to stream samples more like a real device
...
Splits the image and IMU producers into their own threads.
2022-03-14 23:42:13 +00:00
Mateo de Mayo
1dbda3d8c8
t/euroc: Tie CSV file opening to recorder lifecycle
...
This is a better way of handling writing small but high frequency data
like IMU samples so as to avoid continuous opening and closing of a file.
2022-03-14 23:42:13 +00:00
Mateo de Mayo
2d9c1b2b11
external: Update slam_tracker 2.0.0 with support for timing
...
Adds pose extension functionality with a timing pose extension that
allows SLAM/VIO systems to report internal timestamps for performance
measurement.
2022-03-14 23:42:13 +00:00
Mateo de Mayo
147d4c5d26
xrt: Add groundtruth sink to xrt_slam_sinks
2022-03-14 23:42:13 +00:00
Mateo de Mayo
88bd7a669d
xrt: Add pose sink interface
2022-03-14 23:42:13 +00:00
Jakob Bornecrantz
c766411b50
c/client: Impelement xrt_compositor_semaphore interfaces
2022-03-14 19:53:05 +00:00
Jakob Bornecrantz
ef373662f2
ipc: Impelement xrt_compositor_semaphore interfaces
2022-03-14 19:53:05 +00:00
Jakob Bornecrantz
ca7526a3e2
c/multi: Impelement xrt_compositor_semaphore interfaces
2022-03-14 19:53:05 +00:00
Jakob Bornecrantz
8a9a8aeeba
c/util: Impelement xrt_compositor_semaphore interfaces
2022-03-14 19:53:05 +00:00
Jakob Bornecrantz
851224123e
xrt: Add compositor semaphore interface
2022-03-14 19:52:48 +00:00
Jakob Bornecrantz
37354b953c
aux/vk: Add more timeline semaphore functions
2022-03-14 18:58:35 +00:00
Jakob Bornecrantz
16bae922e2
c/main: Enable timeline semaphores where available
2022-03-14 18:58:35 +00:00
Christoph Haag
dbb21715b0
st/oxr: Enable timeline semaphores where available
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-03-14 18:58:35 +00:00
Christoph Haag
02c456c192
st/oxr: Port XR_KHR_vulkan_enable2 init to u_string_list
2022-03-14 18:58:35 +00:00
Jakob Bornecrantz
f4f2196e34
xrt: Add a way to say that timeline semaphores have been enabled
2022-03-14 18:58:35 +00:00
Jakob Bornecrantz
d0f6ea10bc
u/worker: Fix some late feedback
2022-03-14 18:57:35 +00:00
Jakob Bornecrantz
84069cc4f0
u/logging: Add logging sink to intercept log messages
2022-03-14 17:21:20 +00:00
Antonio Ospite
6ca4522de0
d/ns: really silence -Wunused-result warning
...
A previous change didn't really ignore the return value of fread() and
a warning was still emitted:
-----------------------------------------------------------------------
[103/1571] Building C object src/xrt/drivers/CMakeFiles/drv_ns.dir/north_star/ns_hmd.c.o
../src/xrt/drivers/north_star/ns_hmd.c: In function ‘ns_config_load’:
../src/xrt/drivers/north_star/ns_hmd.c:512:8: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
512 | (void)fread(json, 1, file_size, config_file);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----------------------------------------------------------------------
Check the return value of fread to fix the warning for good, and declare
the return value of ftell as long as stated in the man page.
2022-03-14 14:06:02 +00:00
Antonio Ospite
37852ffa65
xrt: fix -Wreturn-type warnings
...
Add some missing returns pointed out by -Wreturn-type:
-----------------------------------------------------------------------
[75/1571] Building C object src/xrt/auxiliary/CMakeFiles/aux_util.dir/util/u_config_json.c.o
.../src/xrt/auxiliary/util/u_config_json.c: In function ‘u_gui_state_scene_to_string’:
.../src/xrt/auxiliary/util/u_config_json.c:524:1: warning: control reaches end of non-void function [-Wreturn-type]
524 | }
| ^
-----------------------------------------------------------------------
2022-03-14 14:06:02 +00:00
Jakob Bornecrantz
771aeda784
u/worker: Add task worker helper
2022-03-11 15:29:16 +00:00
Jakob Bornecrantz
76d8944765
os/threading: Add os_cond wrapper
2022-03-11 15:29:16 +00:00
Christoph Haag
7894039962
st/oxr: return defined result early on fail in xrLocateViews
2022-03-11 00:38:35 +01:00
Christoph Haag
4501088312
st/oxr: Don't return invalid pose after local space set up
2022-03-11 00:23:12 +01:00
Jakob Bornecrantz
a0c8cc14f5
external: Update to Catch2 version 2.13.8
2022-03-09 22:34:40 +00:00
Jakob Bornecrantz
e1b0f55a87
d/ns: Always check to close file on error path
2022-03-09 22:34:37 +00:00
Antonio Ospite
a4167ee500
d/ns: silence -Wunused-result warning, close config_file in error paths
...
On some systems fread() is declared with attribute warn_unused_result
and this results in a build warning:
-----------------------------------------------------------------------
Building C object src/xrt/drivers/CMakeFiles/drv_ns.dir/north_star/ns_hmd.c.o
.../src/xrt/drivers/north_star/ns_hmd.c: In function ‘ns_config_load’:
.../src/xrt/drivers/north_star/ns_hmd.c:512:2: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
512 | fread(json, 1, file_size, config_file);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----------------------------------------------------------------------
Explicitly ignore the return value of that fread() to silence the
warning.
And while at it also close config_file in some error paths between
fopen() and fclose() which where leaking the file pointer when jumping
to the parse_error label.
2022-03-09 16:10:43 +01:00
Antonio Ospite
beda8f35b2
xrt: fix -Wmissing-field-initializers warning in comp_window_wayland.c
...
Newer wayland protocols have a new filed in xdg_toplevel_listener which
is not initialized:
-----------------------------------------------------------------------
[215/315] Building C object src/xrt/compositor/CMakeFiles/comp_main.dir/main/comp_window_wayland.c.o
.../src/xrt/compositor/main/comp_window_wayland.c:182:1: warning: missing field 'configure_bounds' initializer [-Wmissing-field-initializers]
};
^
1 warning generated.
-----------------------------------------------------------------------
Detect the version when this is needed and initialize the field to
silence the warning.
2022-03-09 14:53:06 +01:00
Antonio Ospite
e8c9d8f575
xrt: fix -Wunused-variable warnings
...
Some variables are only used in asserts, so they may be unused
depending on the build type:
-----------------------------------------------------------------------
[68/315] Building C object src/xrt/auxiliary/CMakeFiles/aux_util.dir/util/u_sink_combiner.c.o
.../src/xrt/auxiliary/util/u_sink_combiner.c:188:11: warning: unused variable 'diff_ns' [-Wunused-variable]
int64_t diff_ns = frames[0]->timestamp - frames[1]->timestamp;
^
1 warning generated.
[205/315] Building C object src/xrt/compositor/CMakeFiles/comp_main.dir/main/comp_renderer.c.o
.../src/xrt/compositor/main/comp_renderer.c:872:17: warning: unused variable 'layer_count' [-Wunused-variable]
const uint32_t layer_count = c->base.slot.layer_count;
^
1 warning generated.
-----------------------------------------------------------------------
Mark them as XRT_MAYBE_UNUSED to fix the build warnings.
2022-03-09 14:53:06 +01:00
Antonio Ospite
14a1ced0e4
xrt: fix -Wreturn-type warnings
...
Add some missing returns pointed out by -Wreturn-type:
-----------------------------------------------------------------------
[32/315] Building C object src/xrt/auxiliary/CMakeFiles/aux_gstreamer.dir/gstreamer/gst_sink.c.o
.../src/xrt/auxiliary/gstreamer/gst_sink.c:53:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
1 warning generated.
[84/315] Building C object src/xrt/auxiliary/CMakeFiles/aux_vk.dir/vk/vk_compositor_flags.c.o
.../src/xrt/auxiliary/vk/vk_compositor_flags.c:117:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
.../src/xrt/auxiliary/vk/vk_compositor_flags.c:146:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
2 warnings generated.
-----------------------------------------------------------------------
For the function returning VkImageAspectFlags return a literal 0 because
the enum values VK_IMAGE_ASPECT_NONE or VK_IMAGE_ASPECT_NONE_KHR may not
always be defined.
2022-03-09 14:52:29 +01:00
Jakob Bornecrantz
17e9e06de7
aux/vk: Detect external semaphore support
2022-03-08 21:04:56 +00:00
Jakob Bornecrantz
c0bd8ce3ba
aux/vk: Let vk_init_from_given enable timeline semaphores
2022-03-08 21:04:56 +00:00
Jakob Bornecrantz
3c8378631f
aux/vk: Properly set log_level in given vk_bundles
2022-03-08 21:04:56 +00:00
Jakob Bornecrantz
3044794f93
aux/vk: Rename timeline_semaphores to features.timeline_semaphore
2022-03-08 21:04:56 +00:00
Jakob Bornecrantz
8bda87c855
xrt: Correct xrt_compositor_fence::wait docu
2022-03-08 21:04:56 +00:00
Moses Turner
30b779e515
t/hand: Add ht_sync
2022-03-08 20:44:25 +00:00
Moses Turner
012c86352e
t/hand: Add async wrapper around sync helper
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-03-08 20:44:18 +00:00
Jakob Bornecrantz
60cd630271
tracking: Add new hand tracking interface header
...
Co-authored-by: Moses Turner <moses@collabora.com>
2022-03-08 20:38:58 +00:00
Moses Turner
7235b6a45a
u/sink: Add some comments
2022-03-08 20:38:58 +00:00
Moses Turner
37f0c901d2
u/sink: Add sink to convert from stereo to two SLAM frames
2022-03-08 20:38:58 +00:00
Moses Turner
a9db1a6f6e
d/ht_crtl_emu: Free driver
2022-03-08 13:52:23 -06:00
Jakob Bornecrantz
7b0cee5a85
u/trace_marker: Add new tracking category
2022-03-08 10:46:48 +00:00
Jakob Bornecrantz
d06bb04357
u/trace_marker: Tidy
2022-03-08 10:46:47 +00:00
Jakob Bornecrantz
0ebb1c3be9
t/psmv: Make TrackerPSMV be standard layout
2022-03-07 16:48:28 +00:00
zhibinw
41db1e5e12
st/oxr: Increase active_wait_frames count after previous xrBeginFrame has been called
2022-03-07 16:35:58 +00:00
Christoph Haag
7c55c51408
st/gui: Add warning when v4l driver is disabled on linux
...
"Failed to open camera!" is a very uninformative error
2022-03-07 13:53:59 +00:00
Jakob Bornecrantz
bf1edf96eb
d/dai: Add OV7251 sensor info
2022-03-04 14:04:13 +00:00
Christoph Haag
61024ab9a1
st/oxr: Use correct timestamp for layer space transform
2022-03-03 23:34:31 +01:00
Christoph Haag
76c18bda47
st/oxr: Fix layer poses sent to the compositor
2022-03-03 17:03:36 +01:00
Christoph Haag
b863aa2629
st/oxr: don't run the timestamp conversion in a loop
2022-03-03 01:42:35 +01:00
Christoph Haag
075fde3613
st/oxr: propagate a few more space handling return codes
2022-03-03 01:42:02 +01:00
Christoph Haag
58c9679087
st/oxr: remove another unused function
2022-03-03 01:41:25 +01:00
Christoph Haag
ed0bd9c244
st/oxr: rework spaces
2022-03-02 17:40:00 +00:00
Christoph Haag
f633680506
st/oxr: Fix local[e]_ref_space typo
2022-03-02 17:40:00 +00:00
Antonio Ospite
031a53d6fd
c/render: assign comp_buffer.size when creating a buffer
...
The size field in comp_buffer was never assigned, and also never used as
all comp_buffer users rely on the allocation_size field.
Use the size field to store the size originally requested when creating
the buffer which could be different from the value returned in the
allocation_size field.
Having both sizes available allows a user to check if allocation_size is
in fact different from the requested size.
2022-03-02 16:41:00 +00:00
Jakob Bornecrantz
eca2e2535f
c/util: Return timeout on fence timeout
2022-03-02 11:01:07 +00:00
Jakob Bornecrantz
772b6256d6
c/multi: Handle fence timeouts
2022-03-02 11:01:07 +00:00
Jakob Bornecrantz
7e8f4f46c6
xrt: Add XRT_TIMEOUT to xrt_result_t
2022-03-01 20:59:35 +00:00
Jakob Bornecrantz
e13cfd2fec
c/shader: Fix color values in compute clear shader
2022-03-01 13:58:07 +00:00
Moses Turner
ffee6c360b
u/sink: Don't sleep when combining frames; we're not testing
...
Where's the dunce cap?
2022-03-01 01:14:57 -06:00
Jakob Bornecrantz
8229905233
c/client: Set default logging level for vk_bundle in vk compositor
2022-02-25 17:11:38 -06:00
Jakob Bornecrantz
f6788f5548
c/client: Create and pass down sync_handles to native compositor
2022-02-25 17:11:38 -06:00
Jakob Bornecrantz
ac752a651e
c/client: Add tracing to Vulkan client compositor
2022-02-24 20:54:47 +00:00
Jakob Bornecrantz
f5c77dfb32
aux/vk: Add vk_create_and_submit_fence_native
2022-02-24 20:54:47 +00:00
Jakob Bornecrantz
78f3340bf5
aux/vk: Check which fence types support import and export
2022-02-24 20:54:47 +00:00
Jakob Bornecrantz
ebe895bdb8
aux/vk: Add vkGetPhysicalDeviceExternal[Buffer|Fence|Semaphore]PropertiesKHR (NFC)
2022-02-24 17:51:59 +00:00
Jakob Bornecrantz
543f28abf9
aux/vk: Add vkGetFenceWin32HandleKHR (NFC)
2022-02-24 17:51:59 +00:00
Jakob Bornecrantz
36025886ee
aux/vk: Refactor our sync primitives (NFC)
2022-02-24 17:51:59 +00:00
Jakob Bornecrantz
d6e0c45855
aux/vk: Order files in build scripts (NFC)
2022-02-24 17:51:59 +00:00
Connor Smith
e1c180240e
Create VkQueue with queueIndex from XrGraphicsBindingVulkanKHR.
...
Per XR_KHR_vulkan_enable: "the OpenXR runtime must interpret the image
as being owned by the VkQueue specified in XrGraphicsBindingVulkanKHR."
(https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XR_KHR_vulkan_enable )
2022-02-23 17:45:46 -05:00
Henry Che
add7b5723f
Update illixr_device.cpp: There is no function called get_view_pose in xrt_device.h.
2022-02-23 17:13:38 +00:00
Mateo de Mayo
cee1571625
d/euroc: Fix euroc player skip functionality
2022-02-22 22:56:07 +00:00
Mateo de Mayo
a0021dc7d0
t/euroc: Fix memory leak in euroc recorder
...
This was the reason the recorder was eating so much RAM.
SSD write speeds should be enough for common use cases to keep RAM stable.
2022-02-22 22:56:07 +00:00
Ryan Pavlik
7b3a2e7c1a
a/math: C wrapper for the float low-pass filter too.
2022-02-22 16:44:44 -06:00
Ryan Pavlik
cf07791e93
a/math: Add a C wrapper for the integer low-pass filter.
2022-02-22 16:42:53 -06:00
Ryan Pavlik
a0e2df4cf0
tracking/math: Move the generic low pass filters to a/math
2022-02-22 16:42:53 -06:00
Jakob Bornecrantz
dfb1b8d469
c/render: Do not assume nullDescriptor is available
2022-02-22 21:49:06 +00:00
Jakob Bornecrantz
b1b6978069
c/main: Pass in correct pipeline stage to wait on
2022-02-22 21:49:06 +00:00
Ryan Pavlik
4156cabedf
a/tracking: Add an integer version of the low-pass filter.
2022-02-22 09:58:19 -06:00
Ryan Pavlik
928254ffed
a/math: Add a rational number struct template.
2022-02-22 09:58:19 -06:00
Mateo de Mayo
4b94d83c11
a/math: Fix one euro implementations not dividing by dt
...
The dy name was kept. It can now be thought of as "[d]erivative of [y]"
instead of the previous "change of y". Also, the beta parameters of the
one-euro users were adjusted by approximately multiplying them by 0.016
to compensate.
2022-02-22 13:34:45 +00:00
Mateo de Mayo
17dee2bb68
t/slam: Cache tracked pose timestamp
...
This is mainly to avoid problems with filters that calculate
their dt from previous calls. In particular the one euro filter fix
that gets implemented in the next commit would crash because of dt=0.
2022-02-22 13:34:45 +00:00
Mateo de Mayo
b04c26e522
a/math: Expose quat_{exp, ln} and test them
2022-02-22 13:34:45 +00:00
nima01
be3546eb92
d/wmr: Reverb G1: Avoid camera buffer related hangs
2022-02-20 14:57:36 +00:00
Moses Turner
8972778e00
a/vk: Remove superfluous format assignment in the readback pool
...
This also caused a segfault when the readback pool filled up.
2022-02-20 00:51:26 -06:00
Jakob Bornecrantz
4ba68a7008
st/oxr: Remove direct access or mention of hmd distortion fov
...
The overrides didn't do anything unless Monado was compiled for
in-process, and even then the device might return a differnt fov.
The todo was for a driver and shouldn't be in the state tracker.
2022-02-19 13:45:26 +00:00
Jakob Bornecrantz
ab5e863116
ipc: Do not copy fov in distortion information
...
No other distortion info is passed along
2022-02-19 13:22:25 +00:00
Christoph Haag
49b81e219f
aux/util: Move fov from u_device_simple_info::views to top level
2022-02-19 13:04:32 +00:00
Christoph Haag
996a5d3e9a
xrt: Move fov from xrt_view to xrt_hmd_parts::distortion
2022-02-19 13:04:32 +00:00
Christoph Haag
5e1805f04b
build: Add sample driver to meson build
2022-02-19 13:04:32 +00:00
Moses Turner
86a1ba32e5
c/main: Add readback to gui_window_record
2022-02-18 20:26:27 -06:00
Moses Turner
2e8f572a4d
aux/vk: Add util to read VkImages back to a pool of xrt_frames
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-02-18 20:26:27 -06:00
Moses Turner
43fb248271
c/main: Allow framebuffers to be transfer sources
2022-02-18 20:26:27 -06:00
Moses Turner
8f792c9165
u/sink: Add u_sink_create_to_r8g8b8_r8g8b8a8_r8g8b8x8_or_l8
2022-02-18 20:06:20 -06:00
Moses Turner
0dcc73d5cf
st/gui: Support RGBA, unusual strides, and add higher bitrate option
2022-02-18 20:06:20 -06:00
Moses Turner
433ae0d9c6
aux/gst: Support RGBA and images with unusual row strides
2022-02-18 20:06:20 -06:00
Moses Turner
727c087366
aux/vk: Add helper for adding image memory barriers
2022-02-18 20:06:20 -06:00
Moses Turner
5a2088ee3e
aux/vk: Add vkCmdBlitImage to vk_helpers
2022-02-18 20:06:20 -06:00
Moses Turner
3a7569a7b0
u/trace_marker: Add COMP_TRACE_IDENT
2022-02-18 20:06:20 -06:00
Moses Turner
00984aa021
aux/vk: Add advanced create image function
2022-02-18 20:06:20 -06:00
Moses Turner
d8c33cd22d
t/oxr: Come on, we can be more sparkly than that
2022-02-18 20:06:20 -06:00
Ryan Pavlik
4ecbcc2d27
d/wmr: Fix doxygen warning
2022-02-19 01:15:36 +00:00
Ryan Pavlik
80ab7243ca
st/oxr: Additional doxygen fix
2022-02-19 01:15:35 +00:00
Ryan Pavlik
de6e237a9f
xrt: Additional doxygen fix.
2022-02-19 01:15:33 +00:00
Christoph Haag
5b1d15f143
d/survive: Change license to BSL, as originally intended
2022-02-19 00:55:54 +00:00
Christoph Haag
b2e7fc0f11
d/survive: Add pragma once and c++ compatibility
2022-02-19 00:55:54 +00:00
Christoph Haag
bab6858eb8
d/multi: Change license to BSL, as originally intended
2022-02-19 00:55:54 +00:00
Christoph Haag
43f0bb4343
xrt: Fix tracking override docs
2022-02-19 00:43:30 +00:00
Jakob Bornecrantz
ba0f7cba8b
aux/vk: More comments
2022-02-19 00:34:01 +00:00
Jakob Bornecrantz
5222dfd728
aux/vk: Refactor and document various compositor swapchain image flags
...
This also fixes two errors:
* VK_IMAGE_USAGE_SAMPLED_BIT was not always added to depth formats.
* VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT was added to image
views for sampling, where the spec only allows one of them.
2022-02-18 21:32:05 +00:00
Jakob Bornecrantz
05771e7b9e
aux/vk: Rename compositor swapchain image helper functions (NFC)
2022-02-18 21:32:05 +00:00
Jakob Bornecrantz
ad5a057737
aux/vk: Refactor out swapchain functions to own file (NFC)
2022-02-18 21:32:05 +00:00
Jakob Bornecrantz
4539b74e56
aux/vk: Re-org one function (NFC)
2022-02-18 21:32:05 +00:00
Ryan Pavlik
9a440d9bce
st/oxr: Fix doxygen warning
2022-02-18 21:22:32 +00:00
Ryan Pavlik
1eb6aecdc0
xrt: Improve docs and fix doxygen warnings
2022-02-18 21:22:32 +00:00
Ryan Pavlik
010599baa6
comp/main: Fix debug typo
2022-02-18 21:22:32 +00:00
Jakob Bornecrantz
20c7e30304
aux/vk: Remove unnecessary breaks
2022-02-18 18:29:28 +00:00
Jakob Bornecrantz
0126819f21
aux/vk: Use aspect mask that covers both depth and stencil for mixed formats
2022-02-18 18:29:28 +00:00
Christoph Haag
c162ff655b
st/oxr: add renderdoc API to xrBeginFrame/xrEndFrame
...
Usually renderdoc captures frames by hooking the present functions to
recognize when an application is finished rendering a frame.
OpenXR applications might not present to a window. Therefore use the
renderdoc API to capture application frames between xrBeginFrame and
and xrEndFrame.
This allows renderdoc to capture application frames without the need
to modify the application.
2022-02-18 13:44:15 +01:00
Christoph Haag
93bf83e8f6
xrt: Add clang format, disabling formatting in external
2022-02-18 13:44:15 +01:00
Jakob Bornecrantz
9a884931bb
c/client: Use correct VkImageAspectFlags in barriers
2022-02-17 19:29:57 +00:00
Christoph Haag
fc77db6eca
comp/main: Fix debug print of available direct mode modes
...
fixes 3dfec5f1ab
2022-02-17 17:22:18 +01:00
Nova
f2ec7a7dd5
d/survive: Add SURVIVE_DISABLE_HAND_EMULATION env variable
2022-02-17 13:20:59 +00:00
Jakob Bornecrantz
7f33a55c77
c/client: Wait on Vulkan clients to complete rendering
2022-02-17 00:39:53 +00:00
Christoph Haag
9cd3b47f94
st/oxr: Rework composition of head relation for xrLocateViews
2022-02-16 23:15:28 +00:00
Jakob Bornecrantz
9b656cde77
xrt: Remove xrt_device::get_view_pose
...
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2022-02-16 23:15:24 +00:00
Christoph Haag
b81ab3f09a
st/steamvr_drv: Use xrt_device_get_view_poses
2022-02-16 23:15:21 +00:00
Jakob Bornecrantz
49f95164a7
st/oxr: Use xrt_device_get_view_poses
...
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2022-02-16 23:15:16 +00:00
Jakob Bornecrantz
3eb921b899
c/main: Use xrt_device_get_view_poses
2022-02-16 23:15:14 +00:00
Jakob Bornecrantz
0511b319ba
drivers: Implement xrt_device::get_view_poses
...
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2022-02-16 23:15:08 +00:00
Jakob Bornecrantz
223aa515fd
u/device: Add u_device_get_view_poses helper
2022-02-16 23:15:07 +00:00
Jakob Bornecrantz
be4f4969c0
ipc: Add support for xrt_device::get_view_poses
2022-02-16 23:15:06 +00:00
Jakob Bornecrantz
780f1763e3
xrt: Add xrt_device::get_view_poses function
2022-02-16 23:15:02 +00:00
Jakob Bornecrantz
b322ff689b
d/wmr: Add trace markers to some common functions
2022-02-16 22:25:55 +00:00
Jakob Bornecrantz
4aa2ae985c
d/wmr: Refactor hololens code a bit
2022-02-16 22:25:55 +00:00
Jakob Bornecrantz
8f5a7b88c7
d/wmr: Tidy todos
2022-02-16 22:25:55 +00:00
Jakob Bornecrantz
47ae7c19c3
u/trace_marker: Add driver category
2022-02-16 22:25:55 +00:00
Jakob Bornecrantz
a998987efd
c/main: Refactor fast path detection
2022-02-16 20:25:41 +00:00
Jakob Bornecrantz
91a2a5d29d
c/client: Set correct optimal layout for client swapchains
2022-02-16 18:20:44 +00:00
Jakob Bornecrantz
7791a04069
d/rs: Add math include to fix build and org includes
...
Fixes build on Ubuntu 21.10
2022-02-14 14:34:06 +00:00
Mateo de Mayo
83fceec521
t/slam: Add filtering methods to the tracker
...
Adds three toggleable filters:
- Moving average
- Exponential smoothing
- One euro filter
2022-02-14 10:22:05 -03:00
Mateo de Mayo
b90d60a9ce
t/slam: Add prediction types that integrate gyro and accel samples
2022-02-14 10:22:05 -03:00
Mateo de Mayo
3cba6dc700
d/rs: Add exposure controls to the debug UI
2022-02-14 10:22:05 -03:00
Mateo de Mayo
4d491c8c8e
misc: Fix bad matrix usage on calibration save and fields doc
2022-02-14 10:22:05 -03:00
Mateo de Mayo
8820a3e99c
a/math: Add m_filter_euro_quat
2022-02-14 10:22:05 -03:00
Mateo de Mayo
06597a0655
a/math: Add math_quat_{len, unrotate}
2022-02-14 10:22:05 -03:00
Mateo de Mayo
cf5574a4e9
m/space: Add m_space_relation_interpolate
2022-02-14 10:22:05 -03:00
Christoph Haag
dd81085a04
ipc/server: print monado version in info log on startup
2022-02-14 00:26:09 +01:00
nima01
41edf12a0d
d/wmr: Debug GUI support for enabling/disabling HMD screen and displaying IPD and proximity values
2022-02-12 03:45:16 +00:00
Moses Turner
e553d1993b
u/sink: refactor u_sink_combiner
...
So you can use the enforcing-genlock bit elsewhere
2022-02-10 10:55:06 -06:00
Moses Turner
7ee8a7dba0
d/dai: add stereo-RGB pipeline behind ifdef, waiting for Luxonis to upstream multicam support
2022-02-10 10:55:06 -06:00
Ryan Pavlik
c30acbf9f8
d/ht: Forward declarations and IWYU
2022-02-08 17:27:42 -06:00
Ryan Pavlik
5b8c869b56
d/ht: Fix header and usages of helpers
2022-02-08 17:21:46 -06:00
Ryan Pavlik
acc9683e0f
a/util: Fix copy/move assign of history buf
2022-02-08 17:08:00 -06:00
Ryan Pavlik
8c7af28904
d/ht: Fix build issues against updated history structure.
2022-02-08 16:58:24 -06:00
Ryan Pavlik
a904914e6e
a/util: Wrap "just enough" of the ring buffer stuff for generic use from C.
2022-02-08 13:18:15 -06:00
Ryan Pavlik
3b0252bda8
a/util: Don't make the RingBufferHelper compile-depend on max size.
2022-02-08 13:18:05 -06:00
Ryan Pavlik
c079eabfdf
a/util: iterator cleanups to reduce diffs, using a self typedef.
2022-02-08 17:00:11 +00:00
Ryan Pavlik
6908486022
a/util: Add age clamping to history buffer.
2022-02-08 17:00:11 +00:00
Ryan Pavlik
603117a1d1
a/util: Split history buf file up, factor out more generic iterator base
2022-02-08 17:00:11 +00:00
Ryan Pavlik
65ef8d58f1
d/ht: Cleanup usage of history buffer.
...
May wish to reconsider whether all these usages are required: they appear to only use the back (latest) element.
2022-02-08 17:00:11 +00:00
Ryan Pavlik
94e053d0d4
a/math: More relation history cleanup
2022-02-08 17:00:11 +00:00
Ryan Pavlik
1c183a9eeb
a/math: Simplify m_history_relation using standard algorithms
2022-02-08 17:00:11 +00:00
Moses Turner
614e0e58ae
d/ht: use new HistoryBuf api
2022-02-08 17:00:11 +00:00
Ryan Pavlik
90c74578d1
a/util: Refactor HistoryBuffer to be more like a standard container.
2022-02-08 17:00:11 +00:00
Ryan Pavlik
d05df584b2
d/ht: Some cleanups
2022-02-08 17:00:11 +00:00
Ryan Pavlik
8030468f95
os: Add a c++ wrapper for our mutex types
2022-02-08 17:00:11 +00:00
Ryan Pavlik
73220b268e
comp/multi: Zero the predicted GPU time that we don't compute
2022-02-08 10:51:40 -06:00
Ryan Pavlik
9ad96455a1
xrt: Small doc/interface cleanups.
2022-02-08 10:51:40 -06:00
Ryan Pavlik
9b6d117970
a/util: Some reorg and renaming in upa to be closer to upc
2022-02-08 10:51:40 -06:00
Ryan Pavlik
78e9acc6c4
a/util: Remove unused member in upc
2022-02-08 10:51:39 -06:00
Ryan Pavlik
0f8565ec71
a/util: Some further internal renames for pacing
2022-02-08 10:51:39 -06:00
Ryan Pavlik
6345962d66
a/util: Rename app_time_* in u_pc to comp_time_*
2022-02-08 10:51:39 -06:00
Ryan Pavlik
d176b18598
a/util: Allow upc present offset to be variable.
2022-02-08 10:51:39 -06:00
Ryan Pavlik
2238aff403
a/util: Catch frame_id mismatch in u_pacing_compositor
2022-02-08 10:51:39 -06:00
Ryan Pavlik
a2e1eb7e75
a/util: Have all timestamps be injected into pacing.
...
No more calling os_monotonic_get_ns() inside the pacing helpers.
Much better testability.
2022-02-08 10:51:39 -06:00
Ryan Pavlik
40caa24d4b
c/main: Rename to calc_frame_pacing
2022-02-07 13:11:00 -06:00
Ryan Pavlik
d969bc334f
a/util: More pacing documentation
2022-02-07 13:11:00 -06:00
nima01
45466e419b
d/wmr: Reverb G1 proximity sensor support
2022-02-02 02:27:55 +01:00
Jakob Bornecrantz
309c45f4c4
aux/bindings: Tidy
2022-01-31 22:43:09 +00:00
Jakob Bornecrantz
037b161fb4
aux/binding: Rename function
2022-01-31 22:43:09 +00:00
Jakob Bornecrantz
f0a5f1977c
aux/bindings: Add OpenXR Identifier
2022-01-31 22:43:09 +00:00
Simon Zeni
003acb4d5f
meson: configure systemd service files only if systemd is found
2022-01-31 16:35:06 +00:00
Christoph Haag
c9b1fcf572
comp/main: Re add accidentally deleted WINDOW_XCB case
...
Fixes 856d2d39c8
2022-01-25 22:22:02 +01:00
Christoph Haag
0640728969
t/steamvr: Attempt to fix spurious CI failure
...
fix suggested by thaytan.
2022-01-25 19:24:49 +00:00
Ryan Pavlik
856d2d39c8
comp/main: Simplify use of u_string_list
2022-01-24 16:34:45 -06:00
Ryan Pavlik
9b9e23be62
a/util: Add a new constructor and a new method to u_string_list
2022-01-24 16:34:45 -06:00
Ryan Pavlik
d057f00b54
doc: Fix broken link
2022-01-24 14:08:06 -06:00
Christoph Haag
2ad634bd1e
d/wmr: print json config on debug log level
2022-01-21 20:32:35 +00:00
Christoph Haag
6e339014a5
d/wmr: Add Medion Erazer X1000
2022-01-21 20:32:35 +00:00
Christoph Haag
45adabe135
d/wmr: Clarify comment in headset_map assert
2022-01-21 20:32:35 +00:00
Christoph Haag
88d55c6e22
d/wmr: Sort HP G2 controller PID to the other HP devices
2022-01-21 20:32:35 +00:00
Christoph Haag
96c09e06e7
d/wmr: consolidate interface getters
...
Moving them into one function makes it simpler to add more HMDs.
2022-01-21 20:32:35 +00:00
Ryan Pavlik
c9889f776f
xrt: Rename xrt_space_graph to xrt_relation_chain.
...
Rename all functions and instances accordingly as well,
and add documentation for all methods.
2022-01-21 19:54:30 +00:00
Colin Kinloch
0a783ca208
systemd: Use pkgconfig variable systemduserunitdir as unit install directory
2022-01-18 21:11:44 +00:00
Moses Turner
1b3dadbec5
gui/remote: add pose for XR_EXT_hand_tracking test
2022-01-18 15:02:40 -06:00
Moses Turner
2188d8afc2
d/remote: expose hand active state to remote gui
2022-01-18 14:33:11 -06:00
Moses Turner
7b3378b28a
aux/tracking; st/gui: save/load calibration gui state to file
2022-01-18 17:18:43 +00:00
Moses Turner
254c233c76
util/u_config_json: add functions to save/load gui state to file
2022-01-18 17:18:43 +00:00
Moses Turner
dfd576e0ab
st/gui: skip mode selection if there's only one mode
2022-01-18 17:18:43 +00:00
Moses Turner
c8b9bff356
st/gui: fix typo - Asymetric -> Asymmetric
2022-01-18 17:18:43 +00:00
Ryan Pavlik
6677d42642
a/util: Frame pacing docs and some error handling
2022-01-15 01:06:48 +00:00
Ryan Pavlik
a7c22fd185
a/util: Rename u_render_timing to u_pacing_app and u_frame_timing to u_pacing_compositor.
...
They both control pacing, but for different uses. Neither actually performs any timing.
2022-01-15 01:06:48 +00:00
Ryan Pavlik
365b3ca8d4
a/util: Make display timing helper more configurable.
...
Also comment some display timing interfaces better.
2022-01-15 01:06:48 +00:00
Jakob Bornecrantz
f0e27a88a3
xrt: Clarify call order on some compositor functions
2022-01-15 00:27:00 +00:00
Jakob Bornecrantz
c272549802
xrt: Correctly tag out arguments
2022-01-15 00:05:38 +00:00
Christoph Haag
f978f2691d
aux/vk: Don't leak VkExtensionProperties
2022-01-13 23:48:44 +01:00
Christoph Haag
a60fab80e6
c/main: Don't leak non_desktop_reply
2022-01-13 23:46:43 +01:00
Christoph Haag
147851ffdc
aux/ft: Add some documentation comments
2022-01-13 23:07:57 +01:00
Christoph Haag
a6935dcc4b
c/main: Check surface counter flags
2022-01-13 23:07:46 +01:00
Christoph Haag
8fe465e88f
c/main: Make VkDisplayKHR from direct mode accessible in target swapchain
2022-01-13 23:07:34 +01:00
Christoph Haag
73d75aa522
c/main: cache VkDisplayKHR in wayland direct mode window
2022-01-13 23:07:16 +01:00
Christoph Haag
3eecb0f991
aux/vk: Add vkGetPhysicalDeviceSurfaceCapabilities2EXT function
2022-01-13 23:07:16 +01:00
Christoph Haag
693aceb755
aux/vk: Add VK_EXT_display_control functions
2022-01-13 23:07:16 +01:00
Christoph Haag
ec64a856b4
aux/vk: Use VK_DEBUG instead of U_LOG for vk device ext selection
2022-01-13 23:07:01 +01:00
Christoph Haag
8e020fac2d
c/main: Add and enable VK_EXT_display_control optional device ext
2022-01-13 23:06:40 +01:00
Christoph Haag
b7d179b1b3
c/main: Add display surface counter optional vk instance ext
2022-01-13 23:06:15 +01:00
Christoph Haag
ff4d492b74
c/util: add optional vk instance extensions
2022-01-13 23:05:38 +01:00
Christoph Haag
ce6339e237
c/main: Make more use of string list for device ext
2022-01-13 23:05:06 +01:00
Christoph Haag
f34816872c
c/main: Use u_string_list for vk extensions
2022-01-13 23:04:34 +01:00
Christoph Haag
171a3830b9
u/string_list: Add constructor from existing list
2022-01-13 23:04:17 +01:00
Christoph Haag
ee366e16e5
c/main: rename extensions num -> count
2022-01-13 23:03:56 +01:00
Christoph Haag
13e3db6128
aux/vk: Add vkEnumerateInstanceExtensionProperties
2022-01-13 23:03:38 +01:00
Christoph Haag
7174545ee8
aux/vk: remove duplication of vk_get_loader_functions functionality
2022-01-13 23:03:38 +01:00
Christoph Haag
1ae1e695e2
c/util: Fix device extension list comment
2022-01-13 23:03:25 +01:00
Christoph Haag
20f265d9ae
u/string_list: Add contains function
2022-01-13 22:37:25 +01:00
Christoph Haag
07ddac523c
build: Build u_string_list with meson too
2022-01-13 22:37:25 +01:00
Christoph Haag
8d5847d5a9
comp: Fix running with XRT_COMPOSITOR_XCB_FULLSCREEN=1
...
It required XRT_COMPOSITOR_XCB_DISPLAY to be set to a valid display or the
swapchain creation would fail because the requested width x height was 0x0.
Now the first display with a size other than 0x0 is selected when the current
selected display is 0x0.
fixes #148
2022-01-13 20:50:48 +00:00
Christoph Haag
77f19161fb
aux/binding: extract monado_binding earlier from list
2022-01-13 14:16:20 +01:00
Jakob Bornecrantz
d8cce715da
u/bindings: Remove duplicate paths in by_length
2022-01-13 14:01:44 +01:00
Christoph Haag
435503f2c4
aux/bindings: Further cleanup, use object members for Component
...
instead of passing json data around
2022-01-13 14:01:44 +01:00
Christoph Haag
450eb182d0
aux/bindings: Minor refactor of generator scripts
2022-01-13 14:01:44 +01:00
Christoph Haag
7917110e1c
aux/bindings: Remove unnecessary pathgroup parameter
2022-01-12 23:03:30 +01:00
Christoph Haag
595ca11c68
aux/bindings: Don't generate invalid code for missing monado_binding
...
The closing } for a binding template was not written.
2022-01-12 23:03:30 +01:00
Christoph Haag
47801859e7
aux/bindings: Replace "feature" with "component"
2022-01-12 23:02:53 +01:00
Christoph Haag
d0cdb8fcd3
st/oxr: Fix subactoin typo in comment
2022-01-12 23:02:53 +01:00
Christoph Haag
a3cd52ae8f
aux/bindings: Actually generate code to convert xrt_input_name enum
2022-01-12 23:02:53 +01:00
Christoph Haag
153280607f
aux/bindings: Split function to convert input/output enums into two
...
xrt_input_name and xrt_output_name are actual different types.
2022-01-12 23:02:53 +01:00
Christoph Haag
d36123927d
comp: avoid an unnecessary struct copy for print modes
2022-01-12 21:57:18 +01:00
Christoph Haag
3dfec5f1ab
comp: Don't omit first mode in debug print
...
Also avoid an unnecessary struct copy.
2022-01-12 21:53:47 +01:00
Christoph Haag
cce2094290
t/steamvr: Fix build on meson 0.61.0
...
Context: https://github.com/mesonbuild/meson/issues/4717
Using a directory directory as input in a custom_target was deprecated and printed the message
"This will become a hard error in the future."
It did become a hard error now.
Fixes error
../src/xrt/targets/steamvr_drv/meson.build:52:0: ERROR: File resources does not exist.
on meson 0.61.0
2022-01-11 20:23:39 +01:00
Antonio Ospite
2b456da531
c/client: make sure layer_commit passes complete frames in comp_gl_client
...
Make sure `layer_commit` passes on complete frames in `comp_gl_client.c`
even when EGL_ANDROID_native_fence_sync is not available.
The `insert_fence` function defined in `comp_egl_client.c` and passed as
argument to `comp_egl_client::client_gl_compositor_init` is only setting
up a proper fence when EGL_ANDROID_native_fence_sync is available,
resulting in a no-op otherwise.
However the fact that the insert_fence function is still valid results
in the `glFlush` workaround from
`comp_gl_client::client_gl_compositor_layer_commit` not kicking in.
To fix this define a NULL `insert_fence` function when
EGL_ANDROID_native_fence_sync is not available, and while at it turn the
`glFlush` workaround into a `glFinish` for extra safety.
This ensures that frames are always complete after
`client_gl_compositor_layer_commit` has been called.
2022-01-06 14:54:55 +00:00
Jarvis Huang
ac30e798d6
ipc/android: Extend timeout duration
2022-01-05 14:59:39 +00:00
Jarvis Huang
97100821d2
ipc/android: Add shutdown mechanism back
2022-01-05 14:59:39 +00:00
Jarvis Huang
9339e6022f
ipc/android: Refactor and cleanup IPC glue code
2022-01-05 14:59:39 +00:00
Jarvis Huang
3bb151e4bf
ipc/android: Avoid race condition/blocking main thread
2022-01-05 14:59:39 +00:00
Jarvis Huang
f575a7a1a9
ipc/android: Remove watchdog delay if surface comes from client
...
When surface comes from client, it's not reuseable after
client exits. Removing the timeout so runtime can release all the
graphcis resources associated with surface.
2022-01-05 14:59:39 +00:00
Jarvis Huang
52cb2ef123
d/android: Stop thread function when device destoryed
2022-01-05 14:59:39 +00:00
Jarvis Huang
6a61ed5695
ipc/android: Stop runtime service when no clients connected
2022-01-05 14:59:39 +00:00
Jakob Bornecrantz
ec537eb3aa
st/oxr: Refactor extension parsing and verify extensions
2022-01-04 22:04:12 +00:00
Jakob Bornecrantz
fe9191a708
st/oxr: Sort extension list
2022-01-04 18:58:35 +00:00
Moses Turner
683dc4ea56
gui: add SLAM Stereo option to calibrate gui
2022-01-04 18:19:17 +00:00
Moses Turner
17034f0283
aux/tracking: assert on fisheye mat size for fisheye path
2022-01-04 18:19:17 +00:00
Jakob Bornecrantz
5eb739bb1a
ext/openxr: Update headers to 1.0.20
2022-01-04 18:12:55 +00:00
Simon Zeni
8b1d432b79
d/ht_ctrl_emu: fix crash and truncation warning
2021-12-24 15:19:51 -05:00
Mateo de Mayo
7e0d93e3fb
tests: Add tests for quatexpmap interface functions and minor changes in their docs
2021-12-22 12:16:27 -03:00
Mateo de Mayo
70576c2f02
t/slam: Implement basic prediction from last tracked poses
2021-12-21 11:43:17 +00:00
Mateo de Mayo
090e465dda
external: Add semver to slam_tracker (1.0.0) and pose timestamps
2021-12-21 11:43:17 +00:00
Mateo de Mayo
88a3848b5a
d/wmr: Map wmr_source data to monotonic clock
2021-12-21 11:43:17 +00:00
Mateo de Mayo
74e149159b
t/slam: Add SLAM_SUBMIT_FROM_START envvar
...
Useful for setups that need some tuning to their sensors before sending
data to a SLAM system.
Removes the submit_frames property from wmr_camera as this replaces it.
2021-12-21 11:43:17 +00:00
Mateo de Mayo
1c7323f1c2
d/rs: Generalize laser emitter option setup to any rs option
2021-12-21 11:43:17 +00:00
Mateo de Mayo
fa431fc010
d/rs: Map all rs_hdev timestamps to monotonic clock
2021-12-21 11:43:17 +00:00
Mateo de Mayo
76d7729e4d
m/vec3: Add operator/ for scalar division
2021-12-21 11:43:17 +00:00
Mateo de Mayo
bcb4cd82cd
aux/math: Use dt in calculation of ang vel between quat diference
2021-12-21 11:43:17 +00:00
Mateo de Mayo
3e8a070e93
u/var: Add u_var_combo
2021-12-21 11:43:17 +00:00
James Hogan
7ee8d1ac5d
xrt: Revert xrt_view::display::{w|h}_pixels changes
...
Commit 749723f0ba
("xrt: Remove xrt_view::display::{w|h}_meters")
accidentally removed some references to {w|h}_pixels as well as
{w|h}_meters. This resulted in recommended view image sizes of 0px*0px.
Revert those changes without reverting the rest of the commit.
Fixes: 749723f0ba
("xrt: Remove xrt_view::display::{w|h}_meters")
2021-12-20 23:00:40 +00:00
Moses Turner
5635cd3885
ipc: fix typo - connec -> connect
2021-12-20 06:21:36 -06:00
Simon Zeni
4e4e6708bc
Revert "d/survive: ajust timestamp from button event"
...
This reverts commit b396c200d0
.
The issue has been fixed in libsurvive [1]
[1]: https://github.com/cntools/libsurvive/pull/250
2021-12-17 13:40:53 -05:00
Moses Turner
a19f13171b
meson: use cjson_include with depthai driver
2021-12-14 14:12:42 +00:00
Christoph Haag
b7c8a6faa5
d/ht_ctrl_emu: work around truncation warning
...
../src/xrt/drivers/ht_ctrl_emu/ht_ctrl_emu.cpp: In function ‘int cemu_devices_create(xrt_device*, xrt_device*, xrt_device**)’:
../src/xrt/drivers/ht_ctrl_emu/ht_ctrl_emu.cpp:439:102: warning: ‘ Left Hand’ directive output may be truncated writing 10 bytes into a region of size between 1 and 256 [-Wformat-truncation=]
439 | int ret = snprintf(cemud[i]->base.str, XRT_DEVICE_NAME_LEN, i ? "%s Right Hand" : "%s Left Hand", hands->str);
| ^~~~~~~~~~
../src/xrt/drivers/ht_ctrl_emu/ht_ctrl_emu.cpp:439:35: note: ‘snprintf’ output between 11 and 266 bytes into a destination of size 256
439 | int ret = snprintf(cemud[i]->base.str, XRT_DEVICE_NAME_LEN, i ? "%s Right Hand" : "%s Left Hand", hands->str);
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/xrt/drivers/ht_ctrl_emu/ht_ctrl_emu.cpp:439:84: warning: ‘ Right Hand’ directive output may be truncated writing 11 bytes into a region of size between 1 and 256 [-Wformat-truncation=]
439 | int ret = snprintf(cemud[i]->base.str, XRT_DEVICE_NAME_LEN, i ? "%s Right Hand" : "%s Left Hand", hands->str);
| ^~~~~~~~~~~
../src/xrt/drivers/ht_ctrl_emu/ht_ctrl_emu.cpp:439:35: note: ‘snprintf’ output between 12 and 267 bytes into a destination of size 256
439 | int ret = snprintf(cemud[i]->base.str, XRT_DEVICE_NAME_LEN, i ? "%s Right Hand" : "%s Left Hand", hands->str);
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-12-14 14:58:33 +01:00
Christoph Haag
2b101e6ffa
d/wmr: don't print NULL value in error message
...
In file included from ../src/xrt/drivers/wmr/wmr_config.h:15,
from ../src/xrt/drivers/wmr/wmr_config.c:16:
In function ‘wmr_config_parse_camera_config’,
inlined from ‘wmr_config_parse_calibration’ at ../src/xrt/drivers/wmr/wmr_config.c:422:8,
inlined from ‘wmr_hmd_config_parse’ at ../src/xrt/drivers/wmr/wmr_config.c:477:13:
../src/xrt/auxiliary/util/u_logging.h:84:25: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
84 | u_log(__FILE__, __LINE__, __func__, level, __VA_ARGS__); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/xrt/auxiliary/util/u_logging.h:220:38: note: in expansion of macro ‘U_LOG_IFL’
220 | #define U_LOG_IFL_E(cond_level, ...) U_LOG_IFL(U_LOGGING_ERROR, cond_level, __VA_ARGS__)
| ^~~~~~~~~
../src/xrt/drivers/wmr/wmr_config.c:22:35: note: in expansion of macro ‘U_LOG_IFL_E’
22 | #define WMR_ERROR(log_level, ...) U_LOG_IFL_E(log_level, __VA_ARGS__)
| ^~~~~~~~~~~
../src/xrt/drivers/wmr/wmr_config.c:267:17: note: in expansion of macro ‘WMR_ERROR’
267 | WMR_ERROR(log_level, "Invalid camera calibration block %d - unknown camera purpose %s", c->n_cameras,
| ^~~~~~~~~
../src/xrt/drivers/wmr/wmr_config.c: In function ‘wmr_hmd_config_parse’:
../src/xrt/drivers/wmr/wmr_config.c:267:100: note: format string is defined here
267 | WMR_ERROR(log_level, "Invalid camera calibration block %d - unknown camera purpose %s", c->n_cameras,
| ^~
2021-12-14 14:54:47 +01:00
Christoph Haag
42ae21d412
d/hdk: Remove unused variable
2021-12-14 14:19:53 +01:00
Christoph Haag
d4a491ea74
targets/steamvr: Use python stdlib to copy
...
monado/src/xrt/targets/steamvr_drv/copy_assets.py:8: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
from distutils.dir_util import copy_tree
monado/src/xrt/targets/steamvr_drv/copy_assets.py:8: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
from distutils.dir_util import copy_tree
2021-12-14 14:17:57 +01:00
Christoph Haag
8bbaf2a05b
a/tracking: Use #pragma message instead of #warning
...
Avoids warning
../src/xrt/auxiliary/tracking/t_tracker_slam.cpp:66:2: warning: #warning is a GCC extension
2021-12-14 13:51:16 +01:00
Ryan Pavlik
1203cf38f0
cmake: Fix build when we have EGL but not GLES headers.
2021-12-13 15:00:24 -06:00
Mateo de Mayo
74e79ff274
d/wmr: Add SLAM tracker
2021-12-13 10:41:55 +00:00
Mateo de Mayo
d3bde043bd
d/wmr: Forward IMU samples to wmr_source
2021-12-13 10:41:55 +00:00
Mateo de Mayo
41f42e0b3a
d/wmr: Add wmr_source with camera streams support
2021-12-13 10:41:55 +00:00
Mateo de Mayo
92c1e55c37
d/wmr: Prepare HMD for SLAM tracking
2021-12-13 10:41:55 +00:00
Mateo de Mayo
c1edfa95d7
d/wmr: Add Odyssey+ activation/deactivation functions
...
Co-authored-by: Jan Schmidt <jan@centricular.com>
2021-12-13 10:41:55 +00:00
Mateo de Mayo
7338aded9c
d/wmr: Add exposure setting
2021-12-13 10:41:55 +00:00
Mateo de Mayo
d9aaa4369f
d/wmr: Add ROI rect for WMR cameras
2021-12-13 10:41:55 +00:00
Jan Schmidt
3bb3197fec
d/wmr: Parse controller configuration
...
Extract LED and inertial sensor configuration from
controller JSON
2021-12-13 11:47:12 +11:00
Jan Schmidt
ea4836b081
d/wmr: Read controller firmware configuration blocks.
...
Implement reading and logging of controller firmware blocks.
The main JSON configuration is obfuscated. The raw block can
be dumped to disk by setting the WMR_CONFIG_DUMP env var
to point to a directory to receive controller configs
2021-12-13 11:47:12 +11:00
Jan Schmidt
4e24a1277e
d/wmr: Add pragma once to BT controller header
2021-12-13 11:47:12 +11:00
Jan Schmidt
1c67a1ff52
d/wmr: Add HP Reverb G2 controller PID
...
Recognise the HP Reverb G2 WMR controller if it is directly
connected via bluetooth (instead of tunnelled through the
headset like it normally would be).
2021-12-13 11:47:12 +11:00
Simon Zeni
b396c200d0
d/survive: ajust timestamp from button event
2021-12-12 23:07:14 +00:00
Nima01
b3e0f5bc6a
d/wmr: WMR Controller (BT): Don't waste CPU cycles when reading
2021-12-12 21:37:50 +01:00
Nima01
2d48a9bca2
d/wmr: WMR Controller (BT) 3DoF working, based on gyro and accel.
...
Tested on HP Reverb G1. Reading and applying device specific
config data is still pending.
2021-12-12 16:47:35 +00:00
Mateo de Mayo
fe4f6c6eb0
misc: Improve wmr and euroc docs, fix ht memory leak, stride for cv::Mats
2021-12-12 13:13:18 -03:00
Mateo de Mayo
cd0342c8dc
aux/util: Add u_frame_create_roi
2021-12-12 13:12:42 -03:00
Mateo de Mayo
fa88ce5f3f
u/var: Add u16 var kind
2021-12-12 13:06:04 -03:00
Mateo de Mayo
471ca9530b
m/3dof: Add reset functionality
2021-12-12 13:06:04 -03:00
Moses Turner
749723f0ba
xrt: Remove xrt_view::display::{w|h}_meters
...
It is not used anywhere.
2021-12-10 21:27:15 -06:00
Jakob Bornecrantz
59a09abf6a
d/dai: Document work around
2021-12-10 21:31:28 +00:00
Jakob Bornecrantz
775d82d728
d/dai: Work around issue in v2.13.3
2021-12-10 21:31:28 +00:00
Ryan Pavlik
5b1c60eeb0
xrt: Add unique_ptr typedef for xrt_device
2021-12-10 21:24:02 +00:00
Ryan Pavlik
26e5f6eee7
a/math: Bring the C++ wrapper for relation_history up to parity.
...
Also add tests for it too.
2021-12-10 21:06:04 +00:00
Ryan Pavlik
ef4550c268
a/math: Add a "get latest" to relation history as well.
2021-12-10 21:06:04 +00:00
Ryan Pavlik
aff7079dca
a/math: Let relation history report its size
2021-12-10 21:06:04 +00:00
Ryan Pavlik
8279a41c78
external/jnipp: Update
2021-12-10 20:33:55 +00:00
Moses Turner
c66b29d117
d/wmr: use u_extents_2d_split_side_by_side instead of u_device_setup_split_side_by_side
2021-12-10 14:08:52 -06:00
timongentzsch
ba353e276d
Bugfix in solving quadratic equation for FoV calculation
2021-12-10 18:08:50 +00:00
Ryan Pavlik
e5e8451a81
a/math: Update relation history to return something from push.
2021-12-09 13:44:12 -06:00
Mateo de Mayo
b29c4ee78f
u/json: Update macro signatures to fix MSVC builds
2021-12-08 15:35:54 +00:00
Ryan Pavlik
46d095d978
comp/util: Allow enabling timeline semaphores when creating bundle.
2021-12-08 00:54:12 +00:00
Ryan Pavlik
0b11ce3a27
a/vk: Add timeline semaphore to the list of optional features.
2021-12-08 00:54:12 +00:00
Ryan Pavlik
2af3798e44
a/vk: Fix typo in physical device feature chain
2021-12-08 00:54:12 +00:00
nima01
d5d1695438
d/wmr: Hook up motion controller gyro and accel
...
Basic IMU setup with fusion. Reading and applying config callibration data from controller is still work in progress
2021-12-08 00:43:50 +00:00
Jakob Bornecrantz
98982bd25b
a/math: Fix warning in math_matrix_2x2_multiply
2021-12-07 13:30:45 +00:00
Jakob Bornecrantz
aad9b04a92
d/wmr: Fix warning and tidy
2021-12-07 13:30:45 +00:00
Jakob Bornecrantz
eee143f401
d/rs: Use long name as documentation name
2021-12-07 11:26:20 +00:00
Jakob Bornecrantz
3e38ada9a5
build: s/rs/realsense/g
2021-12-07 11:26:20 +00:00
Jakob Bornecrantz
6598217a01
u/vive: Correct Vive Pro model_name
...
Fixes #106
2021-12-06 19:43:49 +00:00
Jakob Bornecrantz
6ae52651c4
d/vive: Up max config z and json size, also tidy
2021-12-06 19:43:49 +00:00
Jarvis Huang
afb56bedc9
external/jnipp: Fix null pointer exception
...
Potential null pointer exception if client manually attached the thread.
2021-12-06 17:32:05 +00:00
Jakob Bornecrantz
b621955873
a/vk: Put vendor extensions last
2021-12-06 17:25:09 +00:00
Jakob Bornecrantz
5289b081c5
a/vk: Check for VK_KHR_timeline_semaphore
2021-12-06 17:25:09 +00:00
Jakob Bornecrantz
0eca48ec2b
a/vk: Add all functions for VK_KHR_timeline_semaphore
2021-12-06 17:25:09 +00:00
Jakob Bornecrantz
7d529a3dfc
a/vk: Change script to make it clang-format friendly
2021-12-06 17:25:09 +00:00
Jakob Bornecrantz
94ad966e4d
a/vive: Also correctly error on unknown controller warnings
2021-12-06 11:44:33 +00:00
Jakob Bornecrantz
aace8ff62d
a/vive: Look for model_name correctly
2021-12-06 11:44:33 +00:00
Jakob Bornecrantz
a6b4e6a830
m/3dof: Show more in the variable tracker
2021-12-05 15:30:14 +00:00
Jan Schmidt
6cc92c369a
d/wmr: Fix accel <-> gyro mixup in previous change.
...
There was a typo in the calibration bias/correction
patch that messed up accel values by accidentally
reusing the gyro value.
2021-12-06 01:45:25 +11:00
Jan Schmidt
c06c3fa782
d/wmr: Make WMR to OpenXR coordinate transform explicit
...
Instead of negating Y and Z readings from the IMU when
parsing, parse the native values, then apply the rotation
using the centerline transform before fusion.
2021-12-05 00:09:25 +11:00
Jan Schmidt
c7549c8680
d/wmr: Apply HMD IMU correction from calibration.
...
Apply the mix_matrix and bias_offsets adjustments for
IMU readings.
2021-12-05 00:06:05 +11:00
Jan Schmidt
ee030ff0c8
d/wmr: Extend config reading to include bias/mix_matrix
...
Add extraction of bias offsets and mix_matrix (rotation)
correction for IMU accel, gyro and mag configuration entries.
2021-12-05 00:06:05 +11:00
Jan Schmidt
385a3bd33d
d/wmr: Split out inertial sensor configuration
...
Inertial sensor configuration blocks are common to
both HMD and controller calibration. Factor out a
shared structure to receive them.
2021-12-05 00:06:05 +11:00
Jan Schmidt
76c18bfdc7
d/wmr: Rename wmr_config_parse to wmr_hmd_config_parse()
2021-12-05 00:06:05 +11:00
Jan Schmidt
bb5aa35c00
a/math: Add math_matrix_3x3_identity()
...
Add an initialisation function to set a 3x3 matrix
to the identity matrix.
2021-12-05 00:06:05 +11:00
Jakob Bornecrantz
971739627a
d/vive: Actually print error message to say what is going on
2021-12-03 21:13:57 +00:00
Jakob Bornecrantz
e21e28c455
u/vive: Be more verbose if we fail to parse model_[name|number]
2021-12-03 21:13:57 +00:00
Jakob Bornecrantz
12baf0ada3
st/prober: Warn when we can't get USB descriptors
2021-12-03 21:13:57 +00:00
Jakob Bornecrantz
59fccb0c38
st/prober: If we can't tell if we can open a device assume yes
2021-12-03 20:47:25 +00:00
Moses Turner
8af3a47f5a
cmake: make DepthAI driver link to aux_tracking
2021-12-03 19:22:57 +00:00
Moses Turner
31f155acbd
cmake: make xrt-external-json public for aux_tracking
2021-12-03 19:22:57 +00:00
Ryan Pavlik
85ee6379e6
ipc: Fix copy/paste typo.
...
Thanks to xdust for catching this.
2021-12-03 10:11:17 -06:00
Jakob Bornecrantz
8c04bf1274
a/math: Add C++ RelationHistory interface class
2021-12-03 14:00:37 +00:00
Jakob Bornecrantz
efde7f185c
a/math: Put m_relation_history_get out argument last
2021-12-03 14:00:32 +00:00
Jakob Bornecrantz
ed48e6d47d
a/math: Constify in argument
2021-12-03 13:53:46 +00:00
Ryan Pavlik
2b64e5b965
a/math: Extend m_relation_history to pass the tests.
2021-12-03 13:53:46 +00:00
Ryan Pavlik
217dee2ce3
a/math: Add m_relation_history_result return from m_relation_history_get
2021-12-03 13:45:43 +00:00
Ryan Pavlik
01e3d9871c
a/math: Replace RH_DEBUG for relation history with better use of logging macros
2021-12-03 13:45:43 +00:00
Jarvis Huang
27550ffa39
aux/android: Looper trick for NativeActivity with app-glue
2021-12-02 09:40:36 -06:00
Jarvis Huang
6fd645f4ac
external: Update android-jni-wrap
2021-12-02 09:40:36 -06:00
Ryan Pavlik
3e7187686b
external: Update jnipp
2021-12-02 09:40:36 -06:00
Mateo de Mayo
07bd614930
t/file: Extend calibration save/load interfaces with new v2 format
2021-12-02 11:27:42 -03:00
Mateo de Mayo
1483ec32c5
t/file: Implement json save/load for v2 calibration
2021-12-02 11:26:11 -03:00
Mateo de Mayo
31f71251e0
t/util: Add dump function for single camera calibration struct
2021-12-01 18:32:16 +00:00
Jakob Bornecrantz
27f80a90d9
c/render: Make it safe to call comp_resources_close in more cases
...
Fixes #139
2021-12-01 16:08:12 +00:00
Ryan Pavlik
e9c5d34925
t/oxr_android: Fix version code format
2021-12-01 08:35:44 -06:00
Ryan Pavlik
015abd6899
st/p: Fix prober warning.
2021-12-01 08:31:28 -06:00
Mateo de Mayo
1cc80f5476
t/slam: Use euroc recorder in slam tracker
2021-12-01 13:45:18 +00:00
Mateo de Mayo
91ecbdb7fb
t/euroc: Add euroc dataset recorder
2021-12-01 13:45:18 +00:00
Mateo de Mayo
e245f4e5a9
u/sink: Allow u_sink_queue to queue more than one frame
...
Passing max_size=1 gives a similar behaviour as before, although instead
of discarding the last enqueued frame, it just ignores the new frame.
2021-12-01 13:45:18 +00:00
Simon Zeni
ba7f9d9578
d/ht_cemu: enable build if XRT_BUILD_DRIVER_HANDTRACKING is enabled
2021-12-01 05:36:05 +00:00
Simon Zeni
749792f324
d/ht_cemu: enable meson build
2021-12-01 05:36:05 +00:00
Moses Turner
6b14cc3923
d/cemu: use proper number of inputs
2021-11-30 23:32:05 -06:00
Mateo de Mayo
33d360083f
external/slam: Update slam_tracker interface to support dynamic features
2021-11-30 10:01:33 -03:00
Moses Turner
80840c4f4a
d/multi: propagate out_timestamp_ns
2021-11-30 05:56:57 -06:00
Moses Turner
f5bc81756e
d/survive: use controller emulation for hand-tracking
2021-11-30 05:56:57 -06:00
Moses Turner
0214937aa0
d/vive: use controller emulation for hand-tracking
2021-11-30 05:56:57 -06:00
Moses Turner
03359e2bfb
d/ht_ctrl_emu: Create the driver
2021-11-30 05:56:57 -06:00
Moses Turner
8cde257817
aux/math: add vec3 overloads for scalar multiplication
2021-11-29 23:23:57 -06:00
Nima01
bdf96d6810
d/wmr: Decode and handle controller buttons, thumbstick and trackpad.
2021-11-27 04:31:13 +01:00
Jan Schmidt
ce03824824
d/wmr: Comment updates for wmr_protocol.h
...
Improve the descriptions of some pieces of the WMR
protocol
2021-11-25 23:33:55 +11:00
Jan Schmidt
7f392936c6
d/wmr: Report frame source_sequence and source_timestamp
...
Extract timestamp in source 100ns units and convert to
nanoseconds, then place them in the emitted xrt_frames.
Unwrap the 8-bit frame sequence counter to 64-bits, and
add that too.
Add some comments and debug for other fields in the
incoming data.
2021-11-25 23:33:55 +11:00
Jan Schmidt
0fab912c5c
d/wmr: Add debug gain control
...
Add a control to the debug UI for adjusting the
camera gain setting when testing.
2021-11-25 20:05:10 +11:00
Simon Zeni
a090655e16
d/ht: remove old ht_models API
2021-11-24 16:42:56 -05:00
Simon Zeni
ee45be6f7b
d/ht: use new ht_model API
2021-11-24 16:42:56 -05:00
Simon Zeni
0e53b3b87f
d/ht: introduce ht_model
2021-11-24 16:42:56 -05:00
Simon Zeni
e84d948fb4
d/ht: blackar takes const input
2021-11-24 16:42:56 -05:00
Simon Zeni
32330d467c
d/ht: planarize takes const input
2021-11-24 16:42:56 -05:00
Jakob Bornecrantz
986cde6750
cmake: Build the IPC irrespectively of the service or not
2021-11-24 21:30:01 +00:00
Jakob Bornecrantz
63701511eb
d/wmr: Tidy
2021-11-24 17:12:19 +00:00
Jakob Bornecrantz
0bd38a0a0d
c/render: Error on failing to get memory type
2021-11-24 17:05:13 +00:00
Christoph Haag
01c6e4ed28
d/wmr: make wmr_config_key static
...
OpenHMD has a global variable wmr_config_key too which is exported in some
build configurations, causing Monado to fail linking openhmd and the wmr
driver together.
2021-11-24 14:36:55 +00:00
Christoph Haag
22d9d97e61
st/oxr: fix finding profiles for device
...
fixes 6627049af3
2021-11-24 01:36:25 +01:00
Christoph Haag
821c7f0f7a
st/oxr: Don't create interaction profile in xrGetInputSourceLocalizedName
...
oxr_instance::oxr_interaction_profile is used to bind interaction profiles
available on the assigned device to interaction profiles suggested by the
application.
Creating an interaction profile that has not been suggested might interfere
with the binding code.
xrGetInputSourceLocalizedName can only be called after the action sets are
attached, meaning all the interaction profiles must have already been
suggested.
2021-11-24 01:34:13 +01:00
Christoph Haag
1a9e0750c7
st/oxr: document oxr_instance::oxr_interaction_profile
2021-11-24 01:34:13 +01:00
Christoph Haag
a1c00e14fd
st/oxr: Implement a basic version of XR_FB_display_refresh_rate
2021-11-22 20:44:18 +00:00
Christoph Haag
eae7231f83
st/oxr: Add XR_FB_display_refresh_rate ext to script
2021-11-22 20:44:18 +00:00
Jakob Bornecrantz
3f98ea5595
xrt: Tidy s/ll/log_level/g
...
Also make sure all variable logging uses the right type for logging variables.
2021-11-22 14:29:10 -06:00
Christoph Haag
431857dd16
d/ohmd: use os_nanosleep for delay_after_initialization
2021-11-22 00:45:08 +01:00
Christoph Haag
8a4a09bb1b
d/ohmd: Remove duplicate delay_after_initialization code
2021-11-22 00:40:13 +01:00
Jakob Bornecrantz
839ada7115
d/wmr: Add more to the I/O
2021-11-20 18:54:16 +00:00
Jakob Bornecrantz
7fa3109e2a
d/wmr: Minimum to bind and return a pose
2021-11-20 17:44:34 +00:00