Monado OpenXR Runtime
Loading...
Searching...
No Matches
ipc_client_state Struct Reference

Holds the state for a single client. More...

#include </builds/monado/monado/src/xrt/ipc/server/ipc_server.h>

Collaboration diagram for ipc_client_state:

Data Fields

struct ipc_serverserver
 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_sessionxs
 Session for this client.
 
struct xrt_compositorxc
 Compositor for this client.
 
uint32_t swapchain_count
 Number of swapchains in use by client.
 
struct xrt_swapchainxscs [(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_semaphorexcsems [8]
 Ptrs to the semaphores.
 
struct xrt_futurexfts [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_spacexspcs [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
 

Detailed Description

Holds the state for a single client.

Field Documentation

◆ compositor_semaphore_count

uint32_t ipc_client_state::compositor_semaphore_count

Number of compositor semaphores in use by client.

◆ device_feature_used

bool ipc_client_state::device_feature_used[XRT_DEVICE_FEATURE_MAX_ENUM]

Which of the device features is the client using.

◆ has_init_shm_system

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().

◆ imc

struct ipc_message_channel ipc_client_state::imc

Socket fd used for client comms.

Referenced by ipc_server::ipc_server_handle_client_connected().

◆ local_floor_space_index

uint32_t ipc_client_state::local_floor_space_index

Index of localfloorspace in ipc client.

◆ local_floor_space_overseer_index

uint32_t ipc_client_state::local_floor_space_overseer_index

Index of localfloorspace in space overseer.

◆ local_space_index

uint32_t ipc_client_state::local_space_index

Index of localspace in ipc client.

◆ local_space_overseer_index

uint32_t ipc_client_state::local_space_overseer_index

Index of localspace in space overseer.

Referenced by ipc_server::ipc_server_handle_client_connected().

◆ plane_detection_ids

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().

◆ plane_detection_xdev

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().

◆ ref_space_used

bool ipc_client_state::ref_space_used[XRT_SPACE_REFERENCE_TYPE_COUNT]

Which of the references spaces is the client using.

◆ server

◆ space_count

uint32_t ipc_client_state::space_count

Number of spaces.

◆ swapchain_count

uint32_t ipc_client_state::swapchain_count

Number of swapchains in use by client.

Referenced by ipc_server_client_destroy_session_and_compositor().

◆ swapchain_data

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().

◆ xc

◆ xcsems

struct xrt_compositor_semaphore* ipc_client_state::xcsems[8]

Ptrs to the semaphores.

Referenced by ipc_server_client_destroy_session_and_compositor().

◆ xdevs

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().

◆ xfts

struct xrt_future* ipc_client_state::xfts[128]

Ptrs to the futures.

Referenced by ipc_server_client_destroy_session_and_compositor().

◆ xs

struct xrt_session* ipc_client_state::xs

◆ xscs

◆ xspcs

struct xrt_space* ipc_client_state::xspcs[128]

Ptrs to the spaces.

◆ xtracks

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().


The documentation for this struct was generated from the following file: