Commit graph

4033 commits

Author SHA1 Message Date
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 a3af3d82bd doc: Update Android IPC section 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 ceefaaf55f meson: Include eigen as system library on recent meson
Avoids warnings in eigen headers:

In file included from /usr/include/eigen3/Eigen/Core:341,
                 from ../src/xrt/auxiliary/tracking/t_lowpass_vector.hpp:18,
                 from ../src/xrt/auxiliary/tracking/t_imu_fusion.hpp:17,
                 from ../src/xrt/auxiliary/tracking/t_imu.cpp:12:
/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h: In function ‘static void Eigen::internal::trmv_selector<Mode, 1>::run(const Lhs&, const Rhs&, Dest&, const typename Dest::Scalar&) [with Lhs = Eigen::Transpose<const Eigen::Block<const Eigen::Block<Eigen::Matrix<double, 3, 2, 0, 3, 2>, -1, -1, false>, -1, -1, false> >; Rhs = Eigen::Transpose<const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>, const Eigen::Matrix<double, 1, -1, 1, 1, 3> >, const Eigen::Transpose<const Eigen::Block<const Eigen::Block<const Eigen::Block<Eigen::Matrix<double, 3, 2, 0, 3, 2>, -1, -1, false>, -1, 1, true>, -1, 1, false> > > >; Dest = Eigen::Transpose<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1, 1, -1, -1>, 1, -1, true>, 1, -1, false> >; int Mode = 6]’:
/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h:332:12: warning: ‘result’ may be used uninitialized [-Wmaybe-uninitialized]
  327 |     internal::triangular_matrix_vector_product
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  328 |       <Index,Mode,
      |       ~~~~~~~~~~~~
  329 |        LhsScalar, LhsBlasTraits::NeedToConjugate,
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  330 |        RhsScalar, RhsBlasTraits::NeedToConjugate,
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  331 |        RowMajor>
      |        ~~~~~~~~~
  332 |       ::run(actualLhs.rows(),actualLhs.cols(),
      |       ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  333 |             actualLhs.data(),actualLhs.outerStride(),
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  334 |             actualRhsPtr,1,
      |             ~~~~~~~~~~~~~~~
  335 |             dest.data(),dest.innerStride(),
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  336 |             actualAlpha);
      |             ~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h:105:24: note: by argument 5 of type ‘const double*’ to ‘static void Eigen::internal::triangular_matrix_vector_product<Index, Mode, LhsScalar, ConjLhs, RhsScalar, ConjRhs, 1, Version>::run(Index, Index, const LhsScalar*, Index, const RhsScalar*, Index, Eigen::internal::triangular_matrix_vector_product<Index, Mode, LhsScalar, ConjLhs, RhsScalar, ConjRhs, 1, Version>::ResScalar*, Index, const ResScalar&) [with Index = long int; int Mode = 6; LhsScalar = double; bool ConjLhs = false; RhsScalar = double; bool ConjRhs = false; int Version = 0]’ declared here
  105 | EIGEN_DONT_INLINE void triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,RowMajor,Version>
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-12-14 15:02:11 +01: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