Commit graph

2658 commits

Author SHA1 Message Date
Ryan Pavlik d45e13642e d/dummy: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik f4a1c5344b d/android_sensors: Port to u_device_get_view_pose 2021-04-26 22:38:42 +00:00
Ryan Pavlik 2adbde4673 a/util: Add u_device_get_view_pose helper function.
I saw many, many exact copies of this function in the code: good to de-duplicate them.
2021-04-26 22:38:42 +00:00
Jakob Bornecrantz 41ad1dcf99 c/main: Better Vulkan error printing 2021-04-26 22:56:08 +01:00
Jakob Bornecrantz 8c26be37ae u/ft: Warn when missing frames 2021-04-26 22:55:41 +01:00
Jakob Bornecrantz 159eeb81a7 c/main: Pass in preferred dimensions to create images
Fixes #120
2021-04-26 20:28:32 +00:00
Jakob Bornecrantz 9c4b41f58e c/main: Assert that preferred dimensions are somewhat valid 2021-04-26 20:28:32 +00:00
Jakob Bornecrantz 2efd2f543f c/main: Tidy code in comp_target_swapchain (NFC) 2021-04-26 20:28:32 +00:00
Jakob Bornecrantz 5915318654 c/main: Clarify in code that it is preferred dimensions (NFC) 2021-04-26 20:28:32 +00:00
Jakob Bornecrantz ceb6c8b3fe c/main: Remove trailing newline in error message (NFC) 2021-04-26 20:28:32 +00:00
Jakob Bornecrantz 846a663942 c/main: Make instance extension list more readable (NFC) 2021-04-26 20:28:32 +00:00
Jakob Bornecrantz 64093dfaaf c/main: Expose more formats 2021-04-26 20:26:30 +01:00
Jakob Bornecrantz a377fb135f c/client: Vulkan formats are listed as numbers not hex 2021-04-26 18:52:31 +00:00
Jakob Bornecrantz c1d18f9b25 c/client: Add support for more formats in GL 2021-04-26 18:52:31 +00:00
Ryan Pavlik 0868a90a1f gradle: Only forward EIGEN3_INCLUDE_DIR definition if we actually have it set. 2021-04-26 14:27:21 +00:00
Ryan Pavlik 3df2708a5d st/gui: Add missing copyright header to file 2021-04-26 14:08:57 +00:00
Ryan Pavlik d2c81681fe external/stb: Add license sidecar file for stb_image_write.h 2021-04-26 14:08:57 +00:00
Ryan Pavlik 6d4b098e65 t/steamvr_drv: Add license sidecar files 2021-04-26 14:08:57 +00:00
Christoph Haag 08c91d4136 st/oxr: Fix printing of the format in error message 2021-04-26 14:54:30 +02:00
Boris-Chengbiao Zhou d05aa9a458 aux/vk: Extend the correct structure for VK_EXT_global_priority 2021-04-24 17:50:18 +02:00
Jakob Bornecrantz 1ef79820e6 d/wmr: Clarify struct layout (NFC) 2021-04-23 22:48:56 +01:00
Jakob Bornecrantz 0807ce6ddd d/wmr: Only take the lock once per received packet 2021-04-23 22:47:40 +01:00
Jakob Bornecrantz 13d127035b d/wmr: Remove raw_accel and raw_gyro fields (NFC) 2021-04-23 19:06:05 +01:00
Jakob Bornecrantz 1b4b180e61 d/wmr: Do prediction when returning poses 2021-04-23 18:24:13 +01:00
Jakob Bornecrantz a41a869c71 d/wmr: Rename variables and tidy code (NFC) 2021-04-23 14:50:58 +01:00
Christoph Haag 2b70189b45 d/wmr: log at least one space in trace log
Fixes warnings

../src/xrt/drivers/wmr/wmr_hmd.c:83:16: warning: zero-length gnu_printf format string [-Wformat-zero-length]
   83 |  WMR_TRACE(wh, "");
      |                ^~
2021-04-22 02:41:48 +02:00
Jakob Bornecrantz 741dcbdf40 ipc: Return XRT_ERROR_IPC_SESSION_NOT_CREATED if so is the case 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 5627849135 ipc: More trace_marker functions 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 3953321129 ipc: Return error from ipc_call_session_create in create_native_compositor 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz c49abf9103 ipc: Print out all error messages, and values 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 576ff7d252 xrt: Add new IPC session not created error 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 5105148c45 xrt: Correct error number 2021-04-21 18:03:10 +00:00
Jakob Bornecrantz 7af531a6c5 c/main: Refactor so we can do an early acquire 2021-04-21 17:56:29 +00:00
Jan Schmidt bc4661aa48 wmr: Don't start reading thread until setup is complete.
Make sure the headset struct is fully configured before
starting the reading thread, otherwise we can get a crash if an
IMU update arrives for processing before the 3dof fusion is
ready.
2021-04-22 03:39:16 +10:00
Ryan Pavlik 4488699e55 d/ultraleap_v2: Add missing copyright/license header, reflow, and fix markdownlint warnings. 2021-04-21 11:14:49 -05:00
Christoph Haag 341fa45eda ipc: Print socket filename and errno in error message 2021-04-20 16:04:26 +02:00
Christoph Haag 885a668a03 d/oh: Fix number of inputs for generic controller
fixes memory corruption
2021-04-20 12:43:56 +02:00
nima01 027ce21bd5 d/wmr: Initial 3DoF WinMR driver
Only supports HP Reverb G1 and G2 for now.

Squash of the following commits:

Initial boilerplate code for HP Reverb G1 driver implementation
Detect and open MS HoloLens Sensors interface
Power up HMD display when headset is detected, and som general code cleanup
Add Reverb G2 PID
reverb_g1: Fix defines
reverb_g1: Run clang format
wmr: Rename Reverb G1 driver to WMR driver
d/wmr: Code style
d/wmr: Flesh out driver a bit more
d/wmr: Code style
Add basic 3dof rotational tracking
d/wmr: Code style
d/wmr: More tidy
xrt: Remove XRT_DEVICE_REVERB_G1
d/wmr: Even more tidy
d/wmr: Changes for Reverb G2
d/wmr: Fixes since last commit
wmr: Fix the meson build and auto-enable the driver
d/wmr: Sleep for compositor to get modes
d/wmr: Use os_hid for control device
d/wmr: Remove hidapi as a dependancy
d/wmr: Move sensor reading to own thread and fix locking
d/wmr: Read from control device and handle more unknown messages
d/wmr: Decode IPD value from control device
d/wmr: Remove all left over dummy driver fields

Co-author: nima01 <nima_zero_one@protonmail.com>
Co-author: Jakob Bornecrantz <jakob@collabora.com>
Co-author: Jan Schmidt <jan@centricular.com>
2021-04-19 13:33:01 +00:00
Jakob Bornecrantz 0058525457 util: Depend on bindings 2021-04-19 14:26:51 +01:00
Christoph Haag c47775a95d comp: Fix warning after Vulkan 1.2.174 VK_NULL_HANDLE change
../src/xrt/compositor/main/comp_layer_renderer.c:317:17: warning: initialization of 'unsigned int' from 'void *' makes integer from pointer without a cast [-Wint-conversion]
  317 |      .subpass = VK_NULL_HANDLE,
      |                 ^~~~~~~~~~~~~~
2021-04-19 13:04:59 +02:00
Christoph Haag 686d12d66f p/prober: Print info for applied tracking override 2021-04-19 12:53:47 +02:00
Christoph Haag 26d93c52df d/multi: Use supplied pose input name enum 2021-04-19 12:53:47 +02:00
Christoph Haag 471b876725 u_config_json: Load tracking override pose input name 2021-04-19 12:53:47 +02:00
Christoph Haag 664c103a3e u_config_json: Store tracking override pose input name 2021-04-19 12:53:47 +02:00
Christoph Haag fa79451858 build/cmake: link generated bindings to aux_util 2021-04-19 12:53:47 +02:00
Christoph Haag cffd009fe9 st/gui: Add tracker pose input name selection 2021-04-19 12:53:46 +02:00
Christoph Haag e9eba9a2b4 aux/bindings: Generate char* <-> enum for all used inputs 2021-04-19 12:53:14 +02:00
Jakob Bornecrantz daff92a275 c/main: None functional refactor of renderer.
Not ment to change the functionallity of the code only reflow the code.
2021-04-17 00:12:22 +01:00
Christoph Haag 598c1a3b56 d/ohmd: Only set output name if there is an output
This needs to be revisited after OpenHMD gets a proper API for haptic feedback.

closes #119
2021-04-16 16:41:44 +02:00
Jakob Bornecrantz 5d605c7b3f c/main: Do not create images when initing swapchain. 2021-04-16 02:27:22 +01:00
Ryan Pavlik 1521953813 c/main: Re-arrange comp_renderer to allow late init.
Co-author: Jakob Bornecrantz <jakob@collabora.com>
2021-04-16 02:27:22 +01:00
Ryan Pavlik 1cf39ec2c0 c/main: Add comp_target::has_images, and implement in comp_target_swapchain. 2021-04-16 01:51:05 +01:00
Ryan Pavlik 90192118d0 c/main: Add comp_target::check_ready, and implement in comp_target_swapchain. 2021-04-16 01:45:38 +01:00
Jakob Bornecrantz 780ec4fac9 c/main: Turn debug into spew 2021-04-16 01:45:38 +01:00
Ryan Pavlik 7c2ea1369f c/main: Normalize destroy pattern for comp_renderer. 2021-04-15 23:28:47 +01:00
Ryan Pavlik 70982e9c39 c/main: Remove unimplemented comp_renderer function. 2021-04-15 23:28:47 +01:00
Ryan Pavlik 04c9a7d892 c/main: Normalize comp_layer_renderer_destroy convention. 2021-04-15 23:28:47 +01:00
Ryan Pavlik ffe458fdba c/main: Add comp_layer_renderer docs. 2021-04-15 23:28:47 +01:00
Ryan Pavlik 80da6fe3b8 c/main: Add comp_renderer docs. 2021-04-15 23:28:47 +01:00
Ryan Pavlik ab5f9ae9d8 c/main: Add comp_target docs. 2021-04-15 23:28:47 +01:00
Ryan Pavlik 969c78efbd c/client: Fix comment. 2021-04-15 23:28:47 +01:00
Christoph Haag fd6bd0f592 ipc: Use xdg runtime directory for socket
u_file_get_runtime_dir falls back to /tmp if $XDG_RUNTIME_DIR is not set.

ipc: %t/monado_comp_ipc socket for systemd socket activation
2021-04-15 21:42:06 +00:00
Christoph Haag 4ea68b89a4 xrt: Add u_process, backed by libbsd's pidfile
Delete stale ipc files in ipc server when not already running.

If built without libbsd, fall back to previous behavior of complaining about existing ipc files and exit.
2021-04-15 21:42:06 +00:00
Christoph Haag c92bc0a704 xrt: Add u_file_get_runtime_dir() and u_file_get_path_in_runtime_dir()
Analog to u_file_get_path_in_config_dir.
2021-04-15 21:42:06 +00:00
Jakob Bornecrantz 0e18e1f8b0 d/qwerty: Add SDL include dirs 2021-04-15 21:27:13 +00:00
Jakob Bornecrantz cabaece344 st/oxr: Print value on bad layer type 2021-04-15 21:27:13 +00:00
Jakob Bornecrantz c24a20ce18 t/cli: Fix warnings 2021-04-15 17:38:08 +01:00
Jakob Bornecrantz 74c9531d4f st/oxr: Use right enum for ret check 2021-04-15 17:38:06 +01:00
Jakob Bornecrantz f434de27bd st/gui: Fix warning (false positive) 2021-04-15 17:38:05 +01:00
Jakob Bornecrantz 26756cc52d aux/vk: Fix use free of stack variable and use correct return 2021-04-15 17:38:03 +01:00
Jakob Bornecrantz 05f14461a3 t/psvr: Fix warning 2021-04-15 17:38:01 +01:00
Jakob Bornecrantz 898bf15a08 u/tf: Use new trace marker helpers 2021-04-14 01:55:59 +00:00
Jakob Bornecrantz c750447add u/trace_marker: Add render timing support 2021-04-14 01:55:59 +00:00
Jakob Bornecrantz 52d1c4d834 u/trace_marker: Add json writing helpers 2021-04-14 01:55:59 +00:00
Jakob Bornecrantz 654043ede5 ipc: Remove stale todo 2021-04-13 23:21:14 +01:00
Jakob Bornecrantz c8cde9c447 ipc: Set correct reference count on swapchain 2021-04-13 23:21:14 +01:00
Jakob Bornecrantz 7dc132a207 c/client: Set correct reference on swapchain 2021-04-13 23:21:14 +01:00
Jakob Bornecrantz 7c77625da9 st/oxr: Set visibility and z_order if multi compositor controls are available 2021-04-13 16:56:17 +00:00
Jakob Bornecrantz f82f289907 u/rt: Also print what kind of point we are marking when tracing 2021-04-13 16:56:17 +00:00
Jakob Bornecrantz b48cdfed44 c/main: Fix xrt_compositor::wait_frame 2021-04-13 16:56:17 +00:00
Jakob Bornecrantz 4507804819 c/multi: Implement xrt_compositor::wait_frame 2021-04-13 16:56:17 +00:00
Ryan Pavlik cb2710db87 comp: Improve docs on comp_target_swapchain 2021-04-13 11:46:53 -05:00
Ryan Pavlik 1e1fe01374 comp: Doc improvements. 2021-04-13 11:46:53 -05:00
Ryan Pavlik 701ea290d0 os: Fix comment typo. 2021-04-13 11:46:53 -05:00
Ryan Pavlik 64c56ef8d0 editorconfig: Update 2021-04-13 11:46:53 -05:00
Ryan Pavlik 65a7b490a8 android: Add support for casting Context to Activity 2021-04-13 11:46:53 -05:00
Ryan Pavlik 43e0206abc st/oxr: Implement loader init extension. 2021-04-13 11:33:50 -05:00
Ryan Pavlik 142a9b4cb5 st/oxr: Add XR_KHR_loader_init and ..._android extension 2021-04-13 11:33:50 -05:00
Jakob Bornecrantz 1b51cbd1a7 aux/vk: Add support for VK_EXT_global_priority 2021-04-12 22:16:31 +00:00
Jakob Bornecrantz 796f3cf792 c/main: Set default logging level to INFO 2021-04-12 22:16:31 +00:00
Jakob Bornecrantz c9c362e16a c/multi: Overwrite stale scheduled frames 2021-04-12 22:16:31 +00:00
Jakob Bornecrantz b0c9f2a1d9 c/multi: Break potential long running tasks into functions for better trace_marker logging 2021-04-12 22:16:31 +00:00
Jakob Bornecrantz 95e95ba9b5 c/render: Tidy mesh shader 2021-04-12 22:16:31 +00:00
iVRy VR 0064989e8b t/psvr: Various fixes and changes
- Fix out of array bounds crash, curr_y can be out of bounds.
- Set tracked bits appropriately.
- Use m_imu_3dof for orientation.
2021-04-12 15:02:16 +00:00
Moses Turner 7cd2a33737 drivers: switch blend mode to array 2021-04-11 04:08:49 -05:00
Moses Turner 36a48bd62b aux/util: switch blend mode to array 2021-04-11 04:08:49 -05:00
Moses Turner c53eba34d0 ipc: switch blend mode to array 2021-04-11 04:08:49 -05:00
Moses Turner 1062ef35fc st/oxr: switch blend mode to array 2021-04-11 04:08:49 -05:00
Moses Turner 6f93b4c718 inc/xrt: switch blend mode to array
In order of how preferred they are.
2021-04-11 04:08:49 -05:00
Ryan Pavlik c906151fb1 util: Fix doxygen warnings 2021-04-09 18:22:42 -05:00
Ryan Pavlik d6d933f20d xrt: Fix doxygen warnings. 2021-04-09 18:16:54 -05:00
Ryan Pavlik 0450e317e1 cmake: prober requires drv_multi now. 2021-04-09 18:16:39 -05:00
Ryan Pavlik 1ce306cb55 cmake: Fix include dir scope for comp_multi 2021-04-09 18:11:46 -05:00
Ryan Pavlik cf08cbba78 aux/vk: Docs for Vulkan native import helpers. 2021-04-09 18:11:52 +01:00
Ryan Pavlik dde274b13e comp: Fix typo. 2021-04-09 18:11:52 +01:00
Ryan Pavlik 322f6d473a util: Don't try to use $HOME or $XDG_CONFIG_HOME on Android. 2021-04-09 18:11:52 +01:00
Ryan Pavlik b56441702c st/oxr: Clean up Android message. 2021-04-09 18:11:52 +01:00
zhibinw d7f0380f53 ipc/android: Dup the socket fd in native side, close the fd on java side. 2021-04-09 16:42:00 +00:00
Christoph Haag e7f82c297a st/oxr: Fix running when only one hand suports hand tracking 2021-04-08 20:32:55 +02:00
Christoph Haag 08e39a1a0e d/survive: Increase device detection timeout
With libsurvive 20127ef1bbb9206c9b429de47b891fc71d9df355 it can take a bit longer for devices to appear.
2021-04-08 19:37:09 +02:00
Jakob Bornecrantz aca09bdebf c/multi: Do not display frames before they are to be displayed
This follows the OpenXR spec that says that a frame might not be
displayed before XrFrameEndInfo::displayTime value.
2021-04-07 15:41:47 +01:00
Jakob Bornecrantz 736b9abdbe u/rt: Print frame period and tidy 2021-04-07 15:41:47 +01:00
Jakob Bornecrantz b68041fb93 u/rt: Tweak IIR alpha numbers 2021-04-07 15:41:47 +01:00
Jakob Bornecrantz 8606eb9d11 u/rt: Adjust app period depending on app time 2021-04-07 01:05:38 +01:00
Jakob Bornecrantz 1b0a9acb56 u/rt: Adjust app time during runtime 2021-04-07 01:04:20 +01:00
Jakob Bornecrantz 8215af5e5c u/rt: Refactor render timing 2021-04-07 01:04:20 +01:00
Jakob Bornecrantz 670906ea0e u/ft: Spelling 2021-04-07 01:04:20 +01:00
Jakob Bornecrantz 971f88f34f u/ft: Rename frame timing functions 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 5dbcca65c5 u/tr: Refactor rendering timing code 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz d745396396 u/ft: Tweak frame timing numbers 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz bcf9b62fc0 ipc: Adopt to new multi client interface 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz f14958f2b0 c/main: Explicitly wait for GPU work to finish 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz bf2a90fec5 c/main: Switch to multi client layer 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 205db10353 c/main: Implement new predict and mark frame functions 2021-04-07 00:50:10 +01:00
Ryan Pavlik 22df47f974 c/main: Port to using u_graphics_sync_unref 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 2035da1ec9 c/main: Implement fence functions 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 086bef8545 c/multi: Add new multi-client helper 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz efdba1602f xrt: Pass along display_time_ns to layer begin 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz f3abddf224 xrt: Add multi session managment interface 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 353c7735bf xrt: Add alternative functions to wait_frame 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 1f3896d729 xrt: Add new error code 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 2ab99b821b xrt: Add compositor fence interface 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 07fb9941b3 aux/vk: Add fence import function 2021-04-07 00:50:10 +01:00
Ryan Pavlik 61c1044089 u/handles: Add graphics sync handle helpers. 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz c876087ee7 u/time: Add helper comparising functions 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz 5c15b60cf2 st/oxr: Add more trace markers 2021-04-07 00:50:10 +01:00
Moses Turner 0ef8f55ef1 targets/oxr/sdl2_hack: only do Qwerty things if we are building qwerty driver 2021-04-04 22:38:24 +01:00
Moses Turner b62b6eaef7 c/main: Follow OpenXR spec with blackground colour, tweek no layer colour.
Make background colour completely black if there are layers to display, to
follow OpenXR spec. Make the default background colour darker.
2021-04-04 20:34:35 +01:00
Christoph Haag 2b962a5bfb u_config_json: Create root node on save if no config file loaded
If no config file is loaded, json->root can be uninitialized instead of NULL.

Fixes #117
2021-04-04 21:02:41 +02:00
Jakob Bornecrantz 1b0d67a895 st/gui: Add recording interface 2021-04-03 03:07:21 +01:00
Jakob Bornecrantz fac93948b3 st/gui: Add STB image writing support 2021-04-03 03:07:21 +01:00
Jakob Bornecrantz 95e71ebba7 external: Add STB header library 2021-04-03 03:07:21 +01:00
Jakob Bornecrantz 30573fb90f a/gst: Add GStreamer helper code
Co-authored-by: Aaron Boxer <aaron.boxer@collabora.com>
2021-04-03 03:07:21 +01:00
Jakob Bornecrantz 2b63fd8078 xrt: Add helper push frame function 2021-04-03 03:07:21 +01:00
Jakob Bornecrantz 98f81734c8 d/vf: Add clock overlay to videotestsource 2021-04-03 03:07:21 +01:00
Jakob Bornecrantz 1155106dc1 d/v4l2: Be more tolorant for long pipelines 2021-04-03 03:07:21 +01:00
Ryan Pavlik d34e1464fd comp: Update file header. 2021-04-02 18:02:10 -05:00
Ryan Pavlik c81ae4670b comp: Properly service Windows message queue. 2021-04-02 17:47:40 -05:00
Ryan Pavlik 607eae4fdd aux/vk: Fix creation of Windows external memory backed image. 2021-04-02 17:29:55 -05:00
Christoph Haag 3a60df33aa d/openhmd: Add support for rift CV1 controllers 2021-04-02 15:48:10 +00:00