|
Monado OpenXR Runtime
|
Holds the state for a single client. More...
#include </builds/monado/monado/src/xrt/ipc/server/ipc_server.h>

Data Fields | ||
| struct ipc_server * | server | |
| Link back to the main server. | ||
| bool | has_init_shm_system | |
| Has the system part of the shm initialized. | ||
| struct { | ||
| struct xrt_tracking_origin * xtracks [XRT_SYSTEM_MAX_DEVICES] | ||
| Array of tracking origins. More... | ||
| struct xrt_device * xdevs [XRT_SYSTEM_MAX_DEVICES] | ||
| Array of devices. More... | ||
| } | objects | |
| struct xrt_session * | xs | |
| Session for this client. | ||
| struct xrt_compositor * | xc | |
| Compositor for this client. | ||
| uint32_t | swapchain_count | |
| Number of swapchains in use by client. | ||
| struct xrt_swapchain * | xscs [(XRT_MAX_LAYERS *2)] | |
| Ptrs to the swapchains. | ||
| struct ipc_swapchain_data | swapchain_data [(XRT_MAX_LAYERS *2)] | |
| Data for the swapchains. | ||
| uint32_t | compositor_semaphore_count | |
| Number of compositor semaphores in use by client. | ||
| struct xrt_compositor_semaphore * | xcsems [8] | |
| Ptrs to the semaphores. | ||
| struct xrt_future * | xfts [128] | |
| Ptrs to the futures. | ||
| struct { | ||
| uint32_t root | ||
| uint32_t local | ||
| uint32_t stage | ||
| uint32_t unbounded | ||
| } | semantic_spaces | |
| uint32_t | space_count | |
| Number of spaces. | ||
| uint32_t | local_space_index | |
| Index of localspace in ipc client. | ||
| uint32_t | local_space_overseer_index | |
| Index of localspace in space overseer. | ||
| uint32_t | local_floor_space_index | |
| Index of localfloorspace in ipc client. | ||
| uint32_t | local_floor_space_overseer_index | |
| Index of localfloorspace in space overseer. | ||
| struct xrt_space * | xspcs [128] | |
| Ptrs to the spaces. | ||
| bool | ref_space_used [XRT_SPACE_REFERENCE_TYPE_COUNT] | |
| Which of the references spaces is the client using. | ||
| bool | device_feature_used [XRT_DEVICE_FEATURE_MAX_ENUM] | |
| Which of the device features is the client using. | ||
| struct ipc_message_channel | imc | |
| Socket fd used for client comms. | ||
| struct ipc_app_state | client_state | |
| uint64_t | plane_detection_size | |
| uint64_t | plane_detection_count | |
| uint64_t * | plane_detection_ids | |
| Array of plane detection ids with plane_detection_size entries. | ||
| struct xrt_device ** | plane_detection_xdev | |
| Array of xrt_devices with plane_detection_size entries. | ||
| int | server_thread_index | |
| xrt_shmem_handle_t | ism_handle | |
Holds the state for a single client.
| uint32_t ipc_client_state::compositor_semaphore_count |
Number of compositor semaphores in use by client.
| bool ipc_client_state::device_feature_used[XRT_DEVICE_FEATURE_MAX_ENUM] |
Which of the device features is the client using.
| bool ipc_client_state::has_init_shm_system |
Has the system part of the shm initialized.
Referenced by ipc_server_init_system_if_available_locked().
| struct ipc_message_channel ipc_client_state::imc |
Socket fd used for client comms.
Referenced by ipc_server::ipc_server_handle_client_connected().
| uint32_t ipc_client_state::local_floor_space_index |
Index of localfloorspace in ipc client.
| uint32_t ipc_client_state::local_floor_space_overseer_index |
Index of localfloorspace in space overseer.
| uint32_t ipc_client_state::local_space_index |
Index of localspace in ipc client.
| uint32_t ipc_client_state::local_space_overseer_index |
Index of localspace in space overseer.
Referenced by ipc_server::ipc_server_handle_client_connected().
| uint64_t* ipc_client_state::plane_detection_ids |
Array of plane detection ids with plane_detection_size entries.
Referenced by ipc_server::ipc_server_handle_client_connected().
| struct xrt_device** ipc_client_state::plane_detection_xdev |
Array of xrt_devices with plane_detection_size entries.
Referenced by ipc_server::ipc_server_handle_client_connected().
| bool ipc_client_state::ref_space_used[XRT_SPACE_REFERENCE_TYPE_COUNT] |
Which of the references spaces is the client using.
| struct ipc_server* ipc_client_state::server |
Link back to the main server.
Referenced by get_ism(), ipc_server_activate_session(), ipc_server_client_destroy_session_and_compositor(), ipc_server_deactivate_session(), ipc_server::ipc_server_handle_client_connected(), ipc_server_objects_get_xdev_and_validate(), ipc_server_objects_get_xdev_id_or_add(), ipc_server_objects_get_xtrack_and_validate(), and ipc_server_objects_get_xtrack_id_or_add().
| uint32_t ipc_client_state::space_count |
Number of spaces.
| uint32_t ipc_client_state::swapchain_count |
Number of swapchains in use by client.
Referenced by ipc_server_client_destroy_session_and_compositor().
| struct ipc_swapchain_data ipc_client_state::swapchain_data[(XRT_MAX_LAYERS *2)] |
Data for the swapchains.
Referenced by ipc_server_client_destroy_session_and_compositor().
| struct xrt_compositor* ipc_client_state::xc |
Compositor for this client.
Referenced by ipc_handle_session_begin(), ipc_handle_swapchain_acquire_image(), ipc_handle_swapchain_release_image(), ipc_handle_swapchain_wait_image(), and ipc_server_client_destroy_session_and_compositor().
| struct xrt_compositor_semaphore* ipc_client_state::xcsems[8] |
Ptrs to the semaphores.
Referenced by ipc_server_client_destroy_session_and_compositor().
| struct xrt_device* ipc_client_state::xdevs[XRT_SYSTEM_MAX_DEVICES] |
Array of devices.
We don't control the lifetime of the devices, and we only access it from the per client thread, so we don't need to lock it.
Referenced by ipc_server_objects_get_xdev_and_validate(), and ipc_server_objects_get_xdev_id_or_add().
| struct xrt_future* ipc_client_state::xfts[128] |
Ptrs to the futures.
Referenced by ipc_server_client_destroy_session_and_compositor().
| struct xrt_session* ipc_client_state::xs |
Session for this client.
Referenced by ipc_handle_session_begin(), and ipc_server_client_destroy_session_and_compositor().
| struct xrt_swapchain* ipc_client_state::xscs[(XRT_MAX_LAYERS *2)] |
Ptrs to the swapchains.
Referenced by ipc_handle_swapchain_acquire_image(), ipc_handle_swapchain_release_image(), ipc_handle_swapchain_wait_image(), and ipc_server_client_destroy_session_and_compositor().
| struct xrt_space* ipc_client_state::xspcs[128] |
Ptrs to the spaces.
| struct xrt_tracking_origin* ipc_client_state::xtracks[XRT_SYSTEM_MAX_DEVICES] |
Array of tracking origins.
We don't control the lifetime of the tracking origins, and we only access it from the per client thread, so we don't need to lock it.
Referenced by ipc_server_objects_get_xtrack_and_validate(), and ipc_server_objects_get_xtrack_id_or_add().