The open source OpenXR runtime
1{
2 "$schema": "./proto.schema.json",
3
4 "instance_get_shm_fd": {
5 "out_handles": {"type": "xrt_shmem_handle_t"}
6 },
7
8 "instance_describe_client": {
9 "in": [
10 {"name": "desc", "type": "struct ipc_client_description"}
11 ]
12 },
13
14 "system_get_properties": {
15 "out": [
16 {"name": "properties", "type": "struct xrt_system_properties"}
17 ]
18 },
19
20 "system_get_client_info": {
21 "in": [
22 {"name": "id", "type": "uint32_t"}
23 ],
24 "out": [
25 {"name": "ias", "type": "struct ipc_app_state"}
26 ]
27 },
28
29 "system_get_clients": {
30 "out": [
31 {"name": "clients", "type": "struct ipc_client_list"}
32 ]
33 },
34
35 "system_set_primary_client": {
36 "in": [
37 {"name": "id", "type": "uint32_t"}
38 ]
39 },
40
41 "system_set_focused_client": {
42 "in": [
43 {"name": "id", "type": "uint32_t"}
44 ]
45 },
46
47 "system_toggle_io_client": {
48 "in": [
49 {"name": "id", "type": "uint32_t"}
50 ]
51 },
52
53 "system_toggle_io_device": {
54 "in": [
55 {"name": "id", "type": "uint32_t"}
56 ]
57 },
58
59 "system_devices_get_roles": {
60 "out": [
61 {"name": "system_roles", "type": "struct xrt_system_roles"}
62 ]
63 },
64
65 "system_devices_begin_feature": {
66 "in": [
67 {"name": "type", "type": "enum xrt_device_feature_type"}
68 ]
69 },
70
71 "system_devices_end_feature": {
72 "in": [
73 {"name": "type", "type": "enum xrt_device_feature_type"}
74 ]
75 },
76
77 "system_compositor_get_info": {
78 "out": [
79 {"name": "info", "type": "struct xrt_system_compositor_info"}
80 ]
81 },
82
83 "session_create": {
84 "in": [
85 {"name": "xsi", "type": "struct xrt_session_info"},
86 {"name": "create_native_compositor", "type": "bool"}
87 ]
88 },
89
90 "session_poll_events": {
91 "out": [
92 {"name": "event", "type": "union xrt_session_event"}
93 ]
94 },
95
96 "session_begin": {},
97
98 "session_end": {},
99
100 "session_destroy": {},
101
102 "space_create_semantic_ids": {
103 "out": [
104 {"name": "root_id", "type": "uint32_t"},
105 {"name": "view_id", "type": "uint32_t"},
106 {"name": "local_id", "type": "uint32_t"},
107 {"name": "local_floor_id", "type": "uint32_t"},
108 {"name": "stage_id", "type": "uint32_t"},
109 {"name": "unbounded_id", "type": "uint32_t"}
110 ]
111 },
112
113 "space_create_offset": {
114 "in": [
115 {"name": "parent_id", "type": "uint32_t"},
116 {"name": "offset", "type": "struct xrt_pose"}
117 ],
118 "out": [
119 {"name": "space_id", "type": "uint32_t"}
120 ]
121 },
122
123 "space_create_pose": {
124 "in": [
125 {"name": "xdev_id", "type": "uint32_t"},
126 {"name": "name", "type": "enum xrt_input_name"}
127 ],
128 "out": [
129 {"name": "space_id", "type": "uint32_t"}
130 ]
131 },
132
133 "space_locate_space": {
134 "in": [
135 {"name": "base_space_id", "type": "uint32_t"},
136 {"name": "base_offset", "type": "struct xrt_pose"},
137 {"name": "at_timestamp", "type": "int64_t"},
138 {"name": "space_id", "type": "uint32_t"},
139 {"name": "offset", "type": "struct xrt_pose"}
140 ],
141 "out": [
142 {"name": "relation", "type": "struct xrt_space_relation"}
143 ]
144 },
145
146 "space_locate_spaces": {
147 "varlen": true,
148 "in": [
149 {"name": "base_space_id", "type": "uint32_t"},
150 {"name": "base_offset", "type": "struct xrt_pose"},
151 {"name": "space_count", "type": "uint32_t"},
152 {"name": "at_timestamp", "type": "int64_t"}
153 ]
154 },
155
156 "space_locate_device": {
157 "in": [
158 {"name": "base_space_id", "type": "uint32_t"},
159 {"name": "base_offset", "type": "struct xrt_pose"},
160 {"name": "at_timestamp", "type": "int64_t"},
161 {"name": "xdev_id", "type": "uint32_t"}
162 ],
163 "out": [
164 {"name": "relation", "type": "struct xrt_space_relation"}
165 ]
166 },
167
168 "space_destroy": {
169 "in": [
170 {"name": "space_id", "type": "uint32_t"}
171 ]
172 },
173
174 "space_mark_ref_space_in_use": {
175 "in": [
176 {"name": "type", "type": "enum xrt_reference_space_type"}
177 ]
178 },
179
180 "space_unmark_ref_space_in_use": {
181 "in": [
182 {"name": "type", "type": "enum xrt_reference_space_type"}
183 ]
184 },
185
186 "space_recenter_local_spaces": {
187 },
188
189 "space_get_tracking_origin_offset": {
190 "in": [
191 {"name": "origin_id", "type": "uint32_t"}
192 ],
193 "out": [
194 {"name": "offset", "type": "struct xrt_pose"}
195 ]
196 },
197
198 "space_set_tracking_origin_offset": {
199 "in": [
200 {"name": "origin_id", "type": "uint32_t"},
201 {"name": "offset", "type": "struct xrt_pose"}
202 ]
203 },
204
205 "space_get_reference_space_offset": {
206 "in": [
207 {"name": "type", "type": "enum xrt_reference_space_type"}
208 ],
209 "out": [
210 {"name": "offset", "type": "struct xrt_pose"}
211 ]
212 },
213
214 "space_set_reference_space_offset": {
215 "in": [
216 {"name": "type", "type": "enum xrt_reference_space_type"},
217 {"name": "offset", "type": "struct xrt_pose"}
218 ]
219 },
220
221 "compositor_get_info": {
222 "out": [
223 {"name": "info", "type": "struct xrt_compositor_info"}
224 ]
225 },
226
227 "compositor_predict_frame": {
228 "out": [
229 {"name": "frame_id", "type": "int64_t"},
230 {"name": "wake_up_time", "type": "int64_t"},
231 {"name": "predicted_display_time", "type": "int64_t"},
232 {"name": "predicted_display_period", "type": "int64_t"}
233 ]
234 },
235
236 "compositor_wait_woke": {
237 "in": [
238 {"name": "frame_id", "type": "int64_t"}
239 ]
240 },
241
242 "compositor_begin_frame": {
243 "in": [
244 {"name": "frame_id", "type": "int64_t"}
245 ]
246 },
247
248 "compositor_discard_frame": {
249 "in": [
250 {"name": "frame_id", "type": "int64_t"}
251 ]
252 },
253
254 "compositor_layer_sync": {
255 "in": [
256 {"name": "slot_id", "type": "uint32_t"}
257 ],
258 "in_handles": {"type": "xrt_graphics_sync_handle_t"},
259 "out": [
260 {"name": "free_slot_id", "type": "uint32_t"}
261 ]
262 },
263
264 "compositor_layer_sync_with_semaphore": {
265 "in": [
266 {"name": "slot_id", "type": "uint32_t"},
267 {"name": "semaphore_id", "type": "uint32_t"},
268 {"name": "semaphore_value", "type": "uint64_t"}
269 ],
270 "out": [
271 {"name": "free_slot_id", "type": "uint32_t"}
272 ]
273 },
274
275 "compositor_set_performance_level": {
276 "in": [
277 {"name": "domain", "type": "enum xrt_perf_domain"},
278 {"name": "level", "type": "enum xrt_perf_set_level"}
279 ]
280 },
281
282 "compositor_set_thread_hint": {
283 "in": [
284 {"name": "hint", "type": "enum xrt_thread_hint"},
285 {"name": "thread_id", "type": "uint32_t"}
286 ]
287 },
288
289 "compositor_get_display_refresh_rate": {
290 "out": [
291 {"name": "out_display_refresh_rate_hz", "type": "float"}
292 ]
293 },
294
295 "compositor_request_display_refresh_rate": {
296 "in": [
297 {"name": "display_refresh_rate_hz", "type": "float"}
298 ]
299 },
300
301 "compositor_get_reference_bounds_rect": {
302 "in": [
303 {"name": "reference_space_type", "type": "enum xrt_reference_space_type"}
304 ],
305 "out": [
306 {"name": "bounds", "type": "struct xrt_vec2"}
307 ]
308 },
309
310 "swapchain_get_properties": {
311 "in": [
312 {"name": "info", "type": "struct xrt_swapchain_create_info"}
313 ],
314 "out": [
315 {"name": "xsccp", "type": "struct xrt_swapchain_create_properties"}
316 ]
317 },
318
319 "swapchain_create": {
320 "in": [
321 {"name": "info", "type": "struct xrt_swapchain_create_info"}
322 ],
323 "out": [
324 {"name": "id", "type": "uint32_t"},
325 {"name": "image_count", "type": "uint32_t"},
326 {"name": "size", "type": "uint64_t"},
327 {"name": "use_dedicated_allocation", "type": "bool"}
328 ],
329 "out_handles": {"type": "xrt_graphics_buffer_handle_t"}
330 },
331
332 "compositor_create_passthrough": {
333 "in": [
334 {"name": "info", "type": "struct xrt_passthrough_create_info"}
335 ]
336 },
337
338 "compositor_create_passthrough_layer": {
339 "in": [
340 {"name": "info", "type": "struct xrt_passthrough_layer_create_info"}
341 ]
342 },
343
344 "compositor_destroy_passthrough": {},
345
346 "swapchain_import": {
347 "in": [
348 {"name": "info", "type": "struct xrt_swapchain_create_info"},
349 {"name": "args", "type": "struct ipc_arg_swapchain_from_native"}
350 ],
351 "out": [
352 {"name": "id", "type": "uint32_t"}
353 ],
354 "in_handles": {"type": "xrt_graphics_buffer_handle_t"}
355 },
356
357 "swapchain_wait_image": {
358 "in": [
359 {"name": "id", "type": "uint32_t"},
360 {"name": "timeout_ns", "type": "int64_t"},
361 {"name": "index", "type": "uint32_t"}
362 ]
363 },
364
365 "swapchain_acquire_image": {
366 "in": [
367 {"name": "id", "type": "uint32_t"}
368 ],
369 "out": [
370 {"name": "index", "type": "uint32_t"}
371 ]
372 },
373
374 "swapchain_release_image": {
375 "in": [
376 {"name": "id", "type": "uint32_t"},
377 {"name": "index", "type": "uint32_t"}
378 ]
379 },
380
381 "swapchain_destroy": {
382 "in": [
383 {"name": "id", "type": "uint32_t"}
384 ]
385 },
386
387 "compositor_semaphore_create": {
388 "out": [
389 {"name": "id", "type": "uint32_t"}
390 ],
391 "out_handles": {"type": "xrt_graphics_sync_handle_t"}
392 },
393
394 "compositor_semaphore_destroy": {
395 "in": [
396 {"name": "id", "type": "uint32_t"}
397 ]
398 },
399
400 "device_update_input": {
401 "in": [
402 {"name": "id", "type": "uint32_t"}
403 ]
404 },
405
406 "device_get_tracked_pose": {
407 "in": [
408 {"name": "id", "type": "uint32_t"},
409 {"name": "name", "type": "enum xrt_input_name"},
410 {"name": "at_timestamp", "type": "int64_t"}
411 ],
412 "out": [
413 {"name": "relation", "type": "struct xrt_space_relation"}
414 ]
415 },
416
417 "device_get_hand_tracking": {
418 "in": [
419 {"name": "id", "type": "uint32_t"},
420 {"name": "name", "type": "enum xrt_input_name"},
421 {"name": "at_timestamp", "type": "int64_t"}
422 ],
423 "out": [
424 {"name": "value", "type": "struct xrt_hand_joint_set"},
425 {"name": "timestamp", "type": "int64_t"}
426 ]
427 },
428
429 "device_get_view_poses": {
430 "varlen": true,
431 "in": [
432 {"name": "id", "type": "uint32_t"},
433 {"name": "fallback_eye_relation", "type": "struct xrt_vec3"},
434 {"name": "at_timestamp_ns", "type": "int64_t"},
435 {"name": "view_count", "type": "uint32_t"}
436 ],
437 "out": [
438 {"name": "head_relation", "type": "struct xrt_space_relation"},
439 {"name": "view_count", "type": "uint32_t"}
440 ]
441 },
442
443 "device_get_view_poses_2": {
444 "in": [
445 {"name": "id", "type": "uint32_t"},
446 {"name": "fallback_eye_relation", "type": "struct xrt_vec3"},
447 {"name": "at_timestamp_ns", "type": "int64_t"},
448 {"name": "view_count", "type": "uint32_t"}
449 ],
450 "out": [
451 {"name": "info", "type": "struct ipc_info_get_view_poses_2"}
452 ]
453 },
454
455 "device_compute_distortion": {
456 "in": [
457 {"name": "id", "type": "uint32_t"},
458 {"name": "view", "type": "uint32_t"},
459 {"name": "u", "type": "float"},
460 {"name": "v", "type": "float"}
461 ],
462 "out": [
463 {"name": "triplet", "type": "struct xrt_uv_triplet"}
464 ]
465 },
466
467 "device_begin_plane_detection_ext": {
468 "in": [
469 {"name": "id", "type": "uint32_t"},
470 {"name": "plane_detection_id", "type": "uint64_t"}
471 ],
472 "out": [
473 {"name": "out_plane_detection_id", "type": "uint64_t"}
474 ]
475 },
476
477 "device_destroy_plane_detection_ext": {
478 "in": [
479 {"name": "id", "type": "uint32_t"},
480 {"name": "plane_detection_id", "type": "uint64_t"}
481 ]
482 },
483
484 "device_get_plane_detection_state_ext": {
485 "in": [
486 {"name": "id", "type": "uint32_t"},
487 {"name": "plane_detection_id", "type": "uint64_t"}
488 ],
489 "out": [
490 {"name": "state", "type": "enum xrt_plane_detector_state_ext"}
491 ]
492 },
493
494 "device_get_plane_detections_ext": {
495 "varlen": true,
496 "in": [
497 {"name": "id", "type": "uint32_t"},
498 {"name": "plane_detection_id", "type": "uint64_t"}
499 ],
500 "out": [
501 {"name": "location_size", "type": "uint32_t"},
502 {"name": "polygon_size", "type": "uint32_t"},
503 {"name": "vertex_size", "type": "uint32_t"}
504 ]
505 },
506
507 "device_get_presence": {
508 "in": [
509 {"name": "id", "type": "uint32_t"}
510 ],
511 "out": [
512 {"name": "presence", "type": "bool"}
513 ]
514 },
515
516 "device_set_output": {
517 "in": [
518 {"name": "id", "type": "uint32_t"},
519 {"name": "name", "type": "enum xrt_output_name"},
520 {"name": "value", "type": "struct xrt_output_value"}
521 ]
522 },
523
524 "device_set_haptic_output": {
525 "varlen": true,
526 "in": [
527 {"name": "id", "type": "uint32_t"},
528 {"name": "name", "type": "enum xrt_output_name"},
529 {"name": "samples", "type": "struct ipc_pcm_haptic_buffer"}
530 ],
531 "out":[
532 {"name": "samples_consumed", "type": "uint32_t"}
533 ]
534 },
535
536 "device_get_output_limits": {
537 "in": [
538 {"name": "id", "type": "uint32_t"}
539 ],
540 "out":[
541 {"name": "limits", "type": "struct xrt_output_limits"}
542 ]
543 },
544
545 "device_get_visibility_mask": {
546 "varlen": true,
547 "in": [
548 {"name": "id", "type": "uint32_t"},
549 {"name": "type", "type": "enum xrt_visibility_mask_type"},
550 {"name": "view_index", "type": "uint32_t"}
551 ],
552 "out": [
553 {"name": "mask_size", "type": "uint32_t"}
554 ]
555 },
556
557 "device_is_form_factor_available": {
558 "in": [
559 {"name": "id", "type": "uint32_t"},
560 {"name": "form_factor", "type": "enum xrt_form_factor"}
561 ],
562 "out": [
563 {"name": "available", "type": "bool"}
564 ]
565 },
566
567 "device_get_face_tracking": {
568 "in": [
569 {"name": "id", "type": "uint32_t"},
570 {"name": "facial_expression_type", "type": "enum xrt_input_name"},
571 {"name": "at_timestamp_ns", "type": "int64_t"}
572 ],
573 "out": [
574 {"name": "value", "type": "struct xrt_facial_expression_set"}
575 ]
576 },
577
578 "device_get_body_skeleton": {
579 "in": [
580 {"name": "id", "type": "uint32_t"},
581 {"name": "body_tracking_type", "type": "enum xrt_input_name"}
582 ],
583 "out": [
584 {"name": "value", "type": "struct xrt_body_skeleton"}
585 ]
586 },
587
588 "device_get_body_joints": {
589 "in": [
590 {"name": "id", "type": "uint32_t"},
591 {"name": "body_tracking_type", "type": "enum xrt_input_name"},
592 {"name": "desired_timestamp_ns", "type": "int64_t"}
593 ],
594 "out": [
595 {"name": "value", "type": "struct xrt_body_joint_set"}
596 ]
597 },
598
599 "device_reset_body_tracking_calibration_meta": {
600 "in": [
601 {"name": "id", "type": "uint32_t"}
602 ]
603 },
604
605 "device_set_body_tracking_calibration_override_meta": {
606 "in": [
607 {"name": "id", "type": "uint32_t"},
608 {"name": "new_body_height", "type": "float"}
609 ]
610 },
611
612 "device_get_battery_status": {
613 "in": [
614 {"name": "id", "type": "uint32_t"}
615 ],
616 "out": [
617 {"name": "present", "type": "bool"},
618 {"name": "charging", "type": "bool"},
619 {"name": "charge", "type": "float"}
620 ]
621 },
622
623 "device_get_brightness": {
624 "in": [
625 {"name": "id", "type": "uint32_t"}
626 ],
627 "out": [
628 {"name": "brightness", "type": "float"}
629 ]
630 },
631
632 "device_set_brightness": {
633 "in": [
634 {"name": "id", "type": "uint32_t"},
635 {"name": "brightness", "type": "float"},
636 {"name": "relative", "type": "bool"}
637 ]
638 },
639
640 "future_get_state": {
641 "in": [
642 {"name": "future_id", "type": "uint32_t"}
643 ],
644 "out": [
645 {"name": "out_state", "type": "enum xrt_future_state"}
646 ]
647 },
648
649 "future_cancel": {
650 "in": [
651 {"name": "future_id", "type": "uint32_t"}
652 ]
653 },
654
655 "future_destroy": {
656 "in": [
657 {"name": "future_id", "type": "uint32_t"}
658 ]
659 },
660
661 "future_get_result": {
662 "in": [
663 {"name": "future_id", "type": "uint32_t"}
664 ],
665 "out": [
666 {"name": "out_ft_result", "type": "struct xrt_future_result"}
667 ]
668 }
669}