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