diff --git a/src/xrt/ipc/server/ipc_server_handler.c b/src/xrt/ipc/server/ipc_server_handler.c index 9edb7afc0..0aa1a3800 100644 --- a/src/xrt/ipc/server/ipc_server_handler.c +++ b/src/xrt/ipc/server/ipc_server_handler.c @@ -716,11 +716,19 @@ ipc_handle_swapchain_create(volatile struct ipc_client_state *ics, assert(xsc->num_images <= IPC_MAX_SWAPCHAIN_HANDLES); assert(xsc->num_images <= max_num_handles); - *out_id = index; + // Paranoia. + size_t size = xscn->images[0].size; + bool use_dedicated_allocation = xscn->images[0].use_dedicated_allocation; + for (size_t i = 1; i < xsc->num_images; i++) { + assert(size == xscn->images[0].size); + assert(use_dedicated_allocation == xscn->images[0].use_dedicated_allocation); + } + + // Assuming all images allocated in the same swapchain have the same allocation requirements. *out_size = xscn->images[0].size; - *out_num_images = xsc->num_images; - // assuming all images allocated in the same swapchain have the same allocation requirements *out_use_dedicated_allocation = xscn->images[0].use_dedicated_allocation; + *out_id = index; + *out_num_images = xsc->num_images; // Setup the fds. *out_num_handles = xsc->num_images;