Commit graph

2318 commits

Author SHA1 Message Date
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
Jakob Bornecrantz 3077660f1d u/tracing: Add trace marker code 2021-03-08 11:20:52 +00:00
Mateo de Mayo 75e908552f doc: Fix missing entities from modules documentation 2021-03-06 20:34:35 -03:00
Christoph Haag 12ad9a6766 d/ns: Remove tracker logic in favor of tracking overrides 2021-03-02 19:43:19 +01:00
Christoph Haag 44e375dd8a aux/util: Save tracking override config 2021-03-02 19:43:19 +01:00
Christoph Haag c077788436 aux/util: Store calibration config non-destructively
On save
* delete only nodes pertaining to calibration
* add new calibration nodes
* write config file
2021-03-02 19:43:19 +01:00
Christoph Haag de169bf575 gui: Add gui for tracking overrides 2021-03-02 19:43:19 +01:00
Christoph Haag 5e4c62c8aa aux/util: Move json config parsing to aux/util 2021-03-02 19:43:19 +01:00
Christoph Haag aa9298f70d aux/util: Move read_content to u_file 2021-03-02 19:43:19 +01:00
Christoph Haag ff16eab9df xrt: implement multi device wrappers for tracking overrides
Example config ~/.config/monado/config_v0.json

{
	"active": "tracking",
	"tracking":	{
		"version":	0,
		"tracking_overrides": [
			{
				"target_device_serial": "LHR-E8CC625B",
				"tracker_device_serial": "LHR-1D80A098",
				"offset": {
					"orientation": {
						"x": 0,
						"y": 0,
						"z": 0,
						"w": 1
					},
					"position": {
						"x": 0,
						"y": 0,
						"z": 0
					}
				}
			}
		]
	}
}

v2: Add multi device wrapper
2021-03-02 19:43:19 +01:00
Christoph Haag 13db11901c d/rs: Add prober and create xrt_device for rs 2021-03-02 19:43:19 +01:00
Christoph Haag 6c6c70f700 d/rs: exit early if no realsense device is connected
Previously we only exited after rs2_pipeline_start_with_config timed out.
2021-03-02 19:27:36 +01:00
Christoph Haag aa7b3978b7 d/rs: Initialize offset to identity 2021-03-02 19:27:36 +01:00
Christoph Haag 9332bb04c8 st/prober: Disable vive driver when we have survive
Unless survive is disabled via config, then don't disable vive.
2021-03-02 17:50:19 +00:00
Christoph Haag ebd4b8eae4 st/prober: Add ability to skip drivers
Only for drivers loaded with probers and autoprobers for now.

Example config:

{
	"disabled": [
		"survive"
	]
}
2021-03-02 17:50:19 +00:00
Christoph Haag 279520c302 d/survive: Use autoprober interface 2021-03-02 17:50:19 +00:00
Christoph Haag a89f32470e cli: Print built in drivers from driver names
for probers and auto probers only for now
2021-03-02 17:50:19 +00:00
Christoph Haag 58e68e0a4a st/prober: Allow querying entries and autoprobers 2021-03-02 17:50:19 +00:00
Christoph Haag 37c96ee7fb xrt: Add a static driver_name to probers 2021-03-02 17:50:19 +00:00
Christoph Haag 6914bae78e d/ns: Add autoprober name 2021-03-02 17:50:19 +00:00
Christoph Haag 9ea02ac032 d/vive: Give consistent name to HMD 2021-03-02 17:50:19 +00:00
Christoph Haag 6e852ec9a0 d/survive: Give consistent name to HMD 2021-03-02 17:50:19 +00:00
Christoph Haag 92d94ddcc7 d/psvr: Don't report created device if creation failed 2021-03-02 17:50:19 +00:00
Christoph Haag ea404a265b st/prober: Print name of misbehaving autoprober 2021-03-02 17:50:19 +00:00
zhibinw 57b42cad9a ipc/android: Start client listener thread when get new fd from client. 2021-03-02 14:02:54 +08:00
Jakob Bornecrantz d6eda06ae2 doc: Remove md prefix from all Markdown pages 2021-03-01 19:42:52 +00:00
Jakob Bornecrantz ecfec5028e xrt: Add doccomment and fix doxygen error 2021-03-01 19:31:25 +00:00
Mateo de Mayo 116d77f52e st/prober: Allow autoprobe function to create more than one device. 2021-02-28 15:27:52 +00:00
zhibinw f55c0d7bfb t/service-lib: Remove unused header. 2021-02-27 09:55:26 +08:00
Ryan Pavlik 1963e313b1 ipc/android: Switch to using client push mutex to avoid cond var wait in server. 2021-02-24 15:25:28 -06:00
Ryan Pavlik 12e07bdb69 ipc/android: Fix potential lost signal to client 2021-02-24 15:23:26 -06:00
Ryan Pavlik ccf6ac4b94 ipc/android: Remove old workaround 2021-02-24 15:23:26 -06:00
Ryan Pavlik 01fbbc4ed5 ipc/server, t/server_lib: Implement mainloop code for Android, using a pipe. 2021-02-24 15:23:26 -06:00
Jakob Bornecrantz 5e06acf2ad t/cli: Tidy 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz 48c2fe1f87 c/main: Refactor out wait idle to own function 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz 616b7f6ae0 c/main: Tidy comp_target_swapchain 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz 77baa0c6ca u/ht: Sort build files 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz 7460ae54f4 u/timing: Rename files 2021-02-24 14:33:34 +00:00
Jakob Bornecrantz b810c2df0a u/timing: Improve render code, predict when frame should be delivered 2021-02-24 14:33:30 +00:00
Jakob Bornecrantz 55c7690185 u/time: Make defines more readable and add more defines 2021-02-24 13:55:07 +00:00
Jakob Bornecrantz 69eebb49e2 u/time: Use double for time conversion 2021-02-24 04:14:51 +00:00
Jakob Bornecrantz 5291b8d2bb ipc: Refactor out broadcasting of timings 2021-02-24 01:23:55 +00:00
Jakob Bornecrantz 97d7902f94 targets: Show implot demo 2021-02-22 23:20:05 +00:00
Jakob Bornecrantz 4cf20b0dd3 imgui: Add implot demo 2021-02-22 23:20:05 +00:00
Ryan Pavlik f15a14b193 ipc/server: Factor out the mainloop code that may vary between platforms 2021-02-22 17:03:16 -06:00
Ryan Pavlik 0644521da9 d/ht: Fix typo in docs
Fixes doxygen warning.
2021-02-22 16:50:00 -06:00
Ryan Pavlik b7cc966cb0 aux/vk: Add docs to helpers 2021-02-22 16:50:00 -06:00
Moses Turner daff282946 ipc: don't drop the blend mode on the floor 2021-02-19 17:47:07 -06:00
Christoph Haag 4d1b5f033a d/vive: Add controller rotation pose prediction 2021-02-17 19:59:59 +01:00
Christoph Haag ab70115a89 d/vive: Add HMD rotation pose prediction 2021-02-17 19:59:52 +01:00
Jakob Bornecrantz 5b61a9b905 st/oxr: Fix crash 2021-02-16 22:53:49 +00:00
Jakob Bornecrantz 2849c7c5ae st/oxr: Quirk UnrealEngine 2021-02-16 17:55:23 +00:00
Jakob Bornecrantz 4ef6211286 st/oxr: Detect UnrealEngine 2021-02-16 17:55:23 +00:00
Jakob Bornecrantz 0ee32dfa21 st/oxr: Log application info 2021-02-16 17:55:23 +00:00
Jakob Bornecrantz 84486aa2b9 ipc/server: Print application info 2021-02-16 17:55:23 +00:00
Jakob Bornecrantz cfed1c3607 st/oxr: It's not a error to pass in XrSystemHandTrackingPropertiesEXT
...when the hand tracking extension is not enabled.
2021-02-16 07:04:40 +00:00
Christoph Haag def0bef533 build/meson: Explicitly depend on generated binding header
fixes header not being generated on alpine
2021-02-15 22:04:38 +01:00
Christoph Haag b77630ba57 d/remote: define _BSD_SOURCE for SOL_TCP on musl 2021-02-15 22:04:38 +01:00
Jakob Bornecrantz 78dbbec891 st/prober: Improve xrt_prober_destroy 2021-02-15 16:13:07 +00:00
Jakob Bornecrantz 2c012374da st/prober: Add copydocs 2021-02-15 16:13:07 +00:00
Jakob Bornecrantz a6fe8e8b1e st/prober: Clarify xrt_prober_get_string_descriptor 2021-02-15 16:13:06 +00:00
Jakob Bornecrantz a55c6f3cc4 st/prober: Tidy and add doc-comment 2021-02-15 16:13:00 +00:00
Jakob Bornecrantz 165df31d77 st/prober: Use U_LOG_RAW for dump function 2021-02-15 15:13:51 +00:00
Christoph Haag d56834f7a9 d/psmv: Use bluetooth mac as serial 2021-02-15 14:55:10 +01:00
Christoph Haag c6695b7a27 prober: return XRT_PROBER_STRING_SERIAL_NUMBER for bluetooth devices
Using the bluetooth id gotten from uevent.
2021-02-15 14:54:54 +01:00
Christoph Haag 42996d6b1c os/hid: Add get_physical_address() 2021-02-12 02:44:00 +01:00
Christoph Haag a4bde60e08 st/steamvr: Use serial number for controller id 2021-02-12 00:38:52 +01:00
Christoph Haag d5e74b959a d/vive: Improve naming scheme 2021-02-12 00:38:52 +01:00
Christoph Haag c66aea3311 d/survive: Improve device naming scheme 2021-02-12 00:38:52 +01:00
Christoph Haag c67a6ccd34 xrt: Add xrt_device::serial for uniquely identifying devices if possible
d: Make controller serials unique by appending number

For drivers that do not (yet) know a persistent unique id per device.
2021-02-12 00:38:51 +01:00
Christoph Haag ea6d6bfb3f d/rs: Use XRT_INPUT_GENERIC_TRACKER_POSE instead of XRT_INPUT_GENERIC_HEAD_POSE 2021-02-12 00:37:43 +01:00
Christoph Haag 9760f6d123 d/survive: Create devices for trackers
They can not be queried yet.
2021-02-12 00:37:43 +01:00
Christoph Haag 47ed26a5e8 xrt: Add XRT_INPUT_GENERIC_TRACKER_POSE 2021-02-11 20:54:31 +01:00
Christoph Haag 7e1408787a d/survive: Update to new API and clean up
* Remove survive_device.{ctrl,hmd}::variant and use variant from config
* Use SurviveSimpleEventType_ConfigEvent to find connected devices
* Use SurviveSimpleEventType_PoseUpdateEvent for pose updates
2021-02-11 20:54:31 +01:00
Christoph Haag 3a02610e77 d/vive: Remove vive_controller_device::variant and use variant from config 2021-02-11 20:54:31 +01:00
Christoph Haag f93209a1ed d/vive: Remove vive_device::variant and use variant from config 2021-02-11 20:54:31 +01:00