Commit graph

2493 commits

Author SHA1 Message Date
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 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
Christoph Haag 91a3d8b9cb st/steamvr: Add rift controllers 2021-04-02 15:48:10 +00:00
Christoph Haag 7ce07aeedf st/oxr: Support all known interaction profiles in selection
Remove the default case to generate a compiler warning when new profiles
are missing.
2021-04-02 15:48:10 +00:00
Christoph Haag 85ff0dc73c xrt: Add msft_hand_interaction path to cache and check func 2021-04-02 15:48:10 +00:00
Jakob Bornecrantz 9695e90d95 d/vive: Setup the variable tracking for imu fusion 2021-04-02 16:00:42 +01:00
Jakob Bornecrantz cebc8ebed5 st/oxr: No longer need to work around depth Swapchain on Unreal 2021-04-02 16:00:42 +01:00
Moses Turner 55b86fe815 d/ulv2: Create the driver.
Co-authored-by: Moses Turner <mosesturner@protonmail.com>
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2021-04-01 02:10:33 +02:00
Moses Turner b319371500 d/survive: for now always set xrt_hand_joint_set->is_active to true 2021-04-01 02:02:26 +02:00
Moses Turner 6a833b1131 st/oxr+xrt: add is_active to struct xrt_hand_joint_set to give drivers an easy way to deactivate hands 2021-04-01 02:02:26 +02:00
Moses Turner a027852767 aux/math: implement math_pose_identity. 2021-04-01 02:02:26 +02:00
Moses Turner c776a19e15 aux/math: Implement math_matrix_3x3_multiply. 2021-04-01 02:02:26 +02:00
Moses Turner d54b653751 d/multi: correctly override hand pose for "attached" tracking 2021-04-01 02:02:26 +02:00
Christoph Haag 4061bf7707 d/multi: Add "attached" tracking override type
Example usage: Leap Motion attached to a Northstar headset.
2021-04-01 02:02:26 +02:00
Ryan Pavlik 0139aa1525 comp: Fix conversion warnings 2021-03-31 12:02:41 -05:00
Ryan Pavlik d4c352ef69 comp: Improve Windows errors. 2021-03-31 12:02:41 -05:00
Ryan Pavlik 942091c10d comp: Enable VK_EXT_debug_report extension 2021-03-31 12:02:41 -05:00
Ryan Pavlik 061ae2f7b7 xrt: Fix more narrowing conversion warnings. 2021-03-31 12:02:41 -05:00
Ryan Pavlik 592df37c0f comp: Fix some narrowing conversion warnings 2021-03-31 12:02:41 -05:00
Ryan Pavlik 78301ae5eb comp: Use precise sleeper. 2021-03-31 12:02:41 -05:00
Ryan Pavlik f65635f378 aux/vk: Fix doxygen warning 2021-03-31 12:02:41 -05:00
Ryan Pavlik b3280c5bc1 os/time: Small cleanup. 2021-03-31 12:02:41 -05:00
Ryan Pavlik aa3d1c1f6a os: Add os_precise_sleeper.
Mostly to be able to use a timer on Windows.
2021-03-31 12:02:41 -05:00
Ryan Pavlik 47bf17a0cc os: Improve comment and prototype for os_nanosleep 2021-03-31 12:02:41 -05:00
Ryan Pavlik 0717975853 os: Improve timestamp retrieval on Windows. 2021-03-31 12:02:41 -05:00
Ryan Pavlik 00915cab0f os: Add caveats to some timespec conversion functions. 2021-03-31 12:02:41 -05:00
Ryan Pavlik ddc9b00d14 os: Adjust how we compute the timeout for a semaphore.
Preparation for overhaul of timing on Windows.
2021-03-31 12:02:36 -05:00
Ryan Pavlik b3772e2710 cmake: Support multi-config generators 2021-03-30 20:46:00 +00:00
Ryan Pavlik aefd8c0697 ipc/android: Be sure to init the mutexes. 2021-03-30 20:46:00 +00:00
Ryan Pavlik 58ebd7ee20 xrt: Adjust how we define ssize_t on MSVC 2021-03-30 20:46:00 +00:00
Ryan Pavlik 4e11abc06b aux/vk: Fix warning about narrowing conversion. 2021-03-30 20:46:00 +00:00
Ryan Pavlik ace8dc8c46 comp: clean up comment 2021-03-30 20:46:00 +00:00
Ryan Pavlik 8553b5f901 comp/vk_client: Be sure to init/de-init the mutexes in the vulkan bundle 2021-03-30 20:46:00 +00:00
Ryan Pavlik 3f2b09ae54 comp: Comment cleanup 2021-03-30 20:46:00 +00:00
Ryan Pavlik be5a273659 comp/main: Use the new vk_bundle mutex functions. 2021-03-30 20:46:00 +00:00
Ryan Pavlik adb5eefb86 aux/vk: Add functions to initialize and clean up mutexes in the vk_bundle 2021-03-30 20:46:00 +00:00
Jakob Bornecrantz 6ba27de305 m/mathinclude: Apperently _USE_MATH_DEFINES was not enough 2021-03-30 21:27:29 +01:00
Jakob Bornecrantz 6f10f474fa t/psvr: Ensure that m_mathinclude.h is included 2021-03-30 21:27:29 +01:00
Jakob Bornecrantz 967c27060e st/prober: Change log env variable and set default level to info 2021-03-30 21:27:29 +01:00
Jakob Bornecrantz 083e4f5108 u/logging: Fix first global log message not getting correct level, add comments 2021-03-30 19:23:41 +01:00
Mateo de Mayo 5c6158cc8b d/qwerty: Implement controller pose reset 2021-03-29 15:42:01 -03:00
Mateo de Mayo 5e6c4b63a5 d/qwerty: Implement controller parenting to HMD
Although, it only works for the qwerty HMD.
2021-03-29 15:42:01 -03:00
Mateo de Mayo 7f00ca3da2 d/qwerty: Improve selection of default controller 2021-03-29 15:41:59 -03:00
Mateo de Mayo 8b81afeb59 d/qwerty: Implement haptic output 2021-03-29 15:41:25 -03:00
Mateo de Mayo 4ea696bfdd d/qwerty: Implement select and menu click inputs 2021-03-29 15:41:25 -03:00
Mateo de Mayo 582a287dd4 d/qwerty: Use u_logging.h with QWERTY_LOG env var 2021-03-29 15:41:25 -03:00
Mateo de Mayo ef74e24abe d/qwerty: Add variable tracking widget to UI 2021-03-29 15:41:25 -03:00
Mateo de Mayo a1b70c746b d/qwerty: Add qwerty_system for driver management 2021-03-29 15:41:25 -03:00
Mateo de Mayo f8f14a1d9e d/qwerty: Move left/right controllers with CTRL/ALT
In qwerty_sdl.c the u_device_assign_xdev_roles function is used for
knowing which devices are being used by the user. These could
be other physical devices. And as such the idea of a default focused
device is introduced and depends upon which devices the user already
has. With this change qwerty devices should be properly introduced
to fill any device the user may not have.
2021-03-29 15:41:25 -03:00
Mateo de Mayo 62e05f267a d/qwerty: Add still qwerty controllers
By making an initial inheritance hierarchy, thus separating qwerty_hmd
from qwerty_controller, both inheriting from qwerty_device
2021-03-29 15:41:25 -03:00
Mateo de Mayo e13a6fc2fd d/qwerty: Add QWERTY_ENABLE environment variable 2021-03-29 15:41:25 -03:00
Mateo de Mayo 183ee4f4ee d/qwerty: Implement mouse input and sprinting 2021-03-29 15:41:25 -03:00
Mateo de Mayo ec340fabe2 d/qwerty: Implement WASDQE and arrow keys HMD movement 2021-03-29 15:41:25 -03:00
Mateo de Mayo 12d52193da d/qwerty: Connect the debug UI to the Qwerty driver
It was necessary to add a list of xdevs to oxr_sdl2_hack_start and to
populate such list from its callees.
That includes sdl2_program.gui_program->xdevs which was not being filled
for the monado-service target.
2021-03-29 15:41:25 -03:00
Mateo de Mayo e6db1fae74 d/qwerty: Implement still HMD creation 2021-03-29 15:41:25 -03:00
Mateo de Mayo 0340ae3cc8 d/qwerty: Add Qwerty driver initial boilerplate
The Qwerty driver will emulate an HMD and controllers through the use
of mouse and keyboard, and in particular, using the SDL key events
generated from the debug GUI.
2021-03-29 15:41:25 -03:00
Ryan Pavlik 98886d5317 d/multi: Fix contagious doxygen warning. 2021-03-26 17:10:53 -05:00
Ryan Pavlik b93b082bd3 aux: Fix doxygen warnings 2021-03-26 17:10:53 -05:00
Ryan Pavlik f82d0f484f ipc: Fix doxygen warning 2021-03-26 17:10:53 -05:00
Ryan Pavlik 08b0fd257f st/oxr: Fix doxygen warning 2021-03-26 17:10:53 -05:00
Ryan Pavlik 6fc4cc0cc9 st/prober: Fix doxygen warnings 2021-03-26 17:10:53 -05:00
Ryan Pavlik 7b92d212a2 comp: Fix doxygen warnings 2021-03-26 17:10:53 -05:00
Ryan Pavlik 4004402c40 aux/vk: Wrap statement defines in do {} while (0) 2021-03-26 17:10:53 -05:00
Ryan Pavlik 20468070fa ipc: De-duplicate member for simplicity and to avoid Doxygen warning 2021-03-26 17:10:47 -05:00
Ryan Pavlik 3414f62ccf aux: fix or silence warnings 2021-03-26 17:06:17 -05:00
Ryan Pavlik b57d52f373 comp/main: Fix warnings 2021-03-26 17:06:17 -05:00
Ryan Pavlik a830f46db0 st/prober: Fix warnings 2021-03-26 17:06:17 -05:00
Ryan Pavlik 8ebd97330d st/steamvr: Fix warnings 2021-03-26 17:06:17 -05:00
Ryan Pavlik bd00c7ffd3 comp/main: Deal with MSVC not liking static array sizes being non-constant. 2021-03-26 17:06:17 -05:00
Ryan Pavlik 0140ea34b6 comp/main: Implement consumption of sync handle on Windows 2021-03-26 17:06:17 -05:00
Ryan Pavlik b147f2ecd4 a/util: Non-linux implementation of u_file 2021-03-26 17:06:17 -05:00
Ryan Pavlik c00884e827 cmake: aux/vk depends on aux/os 2021-03-26 17:06:17 -05:00
Ryan Pavlik 4ed3d21b09 a/util: Stub out trace marker on non-Linux for now. 2021-03-26 17:06:17 -05:00
Ryan Pavlik e5c193bcd0 aux/util: Silence warnings on MSVC 2021-03-26 17:05:56 -05:00
Christoph Haag a991e66b85 u_vive: Fix debug level of printing acc_bias 2021-03-24 18:45:00 +00:00
Christoph Haag 1f25acfa94 d/vive: remove duplicate range record error message 2021-03-24 18:45:00 +00:00
Christoph Haag a2b49138e7 d/vive: change imu range report error->info 2021-03-24 18:45:00 +00:00
Christoph Haag e8999b06c8 st/p: Change tracking override target/tracker not found error->warning 2021-03-24 18:45:00 +00:00
Christoph Haag 08db19beca u_config_json: Change node not found error->info
As our config grows it will happen more often that users won't have all possible nodes.
2021-03-24 18:45:00 +00:00
Christoph Haag 3ba9a9411a d/vive: change config start report error->info
And clarify the message that it happens for example for powered off controllers.
2021-03-24 18:45:00 +00:00
Christoph Haag de6d2a888a ipc: Change server exiting error->info 2021-03-24 18:45:00 +00:00
Christoph Haag f6210be44a d/survive: Change event for unknown object error->info 2021-03-24 18:45:00 +00:00
Christoph Haag f9c2ab7ed7 d/ht: Change hand tracking not set up error->debug 2021-03-24 18:45:00 +00:00
Christoph Haag 030230eba9 st/p: change PSVR/PSMV not set up error->info 2021-03-24 18:45:00 +00:00
Christoph Haag 8f16118020 u_config_json: Remove bogus "No tracking node" messages
* open_tracking_settings() already reports missing tracking nodes.
* open_tracking_settings() can also fail for other reasons
2021-03-24 18:45:00 +00:00
Christoph Haag 45d889e390 u_config_json: Make missing tracking node messages friendlier 2021-03-24 18:45:00 +00:00
Christoph Haag 054850de76 u_config_json: Remove duplicated is_json_ok code 2021-03-24 18:45:00 +00:00
Christoph Haag 2959747221 u_config_json: clarify json not parsed error message 2021-03-24 18:45:00 +00:00
Christoph Haag f0132eb997 u_config_json: change no config file warning->info
Running without a config file is fully supported, no reason to warn users.
2021-03-24 18:45:00 +00:00
Jakob Bornecrantz 63f5c86257 xrt: Make xrt_swapchain be reference counted 2021-03-24 17:50:08 +00:00
Christoph Haag aab94e7add build/meson: Allow disabling tracking
The tracking code uses ifdefs with XRT_HAVE_OPENCV.
2021-03-24 18:05:51 +01:00
Christoph Haag dad5c6d5d8 u_config_json: Fix saving when no config file exists
If json->root was null, it would write a config file containing only (null).
2021-03-24 17:33:46 +01:00
Jakob Bornecrantz e066f6a828 st/gui: Fix warning 2021-03-24 14:09:13 +00:00
Jakob Bornecrantz 67339a4d7c d/remote: Fix warning 2021-03-24 14:09:13 +00:00
Christoph Haag 2ac4ff84ec aux/util: Fix comment for u_device_setup_tracking_origins 2021-03-23 19:05:35 +00:00
Christoph Haag 857b831e30 d/illixr: Add driver name 2021-03-22 01:25:44 +01:00
Jakob Bornecrantz a71b3d35d1 m/3dof: Add assert for timestamp paranoia 2021-03-17 01:10:02 +00:00
Jakob Bornecrantz c73146c6fd d/psvr: Ensure that timestamps are always after each other 2021-03-17 01:10:02 +00:00
Jakob Bornecrantz 0452c69caa c/main: Detect when config is needed but missing 2021-03-12 00:06:36 +00:00
Jakob Bornecrantz 6c3ab4151a st/oxr: Handle XRT_ERROR_EGL_CONFIG_MISSING 2021-03-12 00:06:36 +00:00
Jakob Bornecrantz 0571e0337e xrt: Add XRT_ERROR_EGL_CONFIG_MISSING error 2021-03-12 00:06:36 +00:00
Jakob Bornecrantz 8be59f73ec xrt: Return xrt_result_t from xrt_gfx_provider_create_gl_egl 2021-03-12 00:06:36 +00:00
Jakob Bornecrantz 8992f79257 c/main: Be even more paranoid about display timing code 2021-03-10 17:53:36 +00:00
Jakob Bornecrantz dac5bc0ea5 u/timing: Deal slightly better when timing info appears to time travel 2021-03-10 17:53:36 +00:00
Jakob Bornecrantz d71ccc39ce u/timing: Add when_predict_ns on first frame 2021-03-10 17:53:36 +00:00
Christoph Haag 7b95330bb5 ipc: Print information to delete socket file 2021-03-10 02:02:44 +01:00
Christoph Haag 2a02130301 build/meson: Install systemd service file with meson 2021-03-10 01:58:18 +01:00
Christoph Haag 851a600a6a build/meson: Add systemd feature option for monado-service 2021-03-10 01:57:55 +01:00
Christoph Haag 0adcc179c0 xrt: Fix typo in u_file 2021-03-10 01:56:07 +01:00
Jakob Bornecrantz a6da40de50 c/main: Remove unused fields
Tested-by: Boris-Chengbiao Zhou <bobo1239@web.de>
2021-03-09 18:16:01 +00:00
Jakob Bornecrantz 003b70d05e c/main: Use correct predicted display time for rendering
Closes #114

Reported-by: Boris-Chengbiao Zhou <bobo1239@web.de>
Tested-by: Boris-Chengbiao Zhou <bobo1239@web.de>
2021-03-09 18:15:52 +00:00
Christoph Haag eb594409dd xrt: Increase number of autoprobers to 16
We actually have a total of 11 auto probers.
2021-03-09 14:16:28 +01:00
Christoph Haag a887ddcc3c d/hdk: Use a mutex for get_tracked_pose 2021-03-09 12:39:12 +00:00
Christoph Haag 5c014193f7 d/vive_controller: Use a mutex for get_tracked_pose and update_inputs 2021-03-09 12:39:12 +00:00
Christoph Haag aa65480607 d/vive: Use a mutex for get_tracked_pose 2021-03-09 12:39:12 +00:00
Christoph Haag 484d63a4eb d/survive: Use thread for processing events
Due to an oversight libsurvive events were only processed when inputs were updated.
If only triggering event processing when an event is needed, we would need to process
a random number of events, causing random overhead.

Rather, follow the model of other drivers and process events in a thread.
This required creating a local copy of the xrt_input arrays.

Fixes #113
Fixes !679

v2: Use a mutex for get_tracked_pose and update_inputs
2021-03-09 12:39:12 +00:00
Christoph Haag 1e24602ca0 st/prober: fix off by one in reallocating list of disabled drivers 2021-03-09 13:22:41 +01:00
Jakob Bornecrantz 966b4b7048 t/service: Enable tracing 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz 7524239b1f t/oxr: Enable tracing 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz b4f9d07abf ipc: Trace markers 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz f754fb583f st/oxr: Trace markers 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz 8c724d67d4 c/main: Trace markers 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz fac1ce4a5a c/main: Hookup up new frame timing code 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz a40c2e7d50 aux/vk: Load VK_GOOGLE_display_timing functions 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz e2104a4f31 t/cli: Add trace piping support 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz 049f6be351 u/timing: Add frame timing code 2021-03-08 11:20:52 +00:00