static struct pipe_screen * create_screen(int fd) { struct intel_winsys *iws; struct pipe_screen *screen; iws = intel_winsys_create_for_fd(fd); if (!iws) return NULL; screen = ilo_screen_create(iws); if (!screen) return NULL; screen = debug_screen_wrap(screen); return screen; }
VkResult intel_gpu_init_winsys(struct intel_gpu *gpu) { int fd; assert(!gpu->winsys); fd = gpu_open_render_node(gpu); if (fd < 0) return VK_ERROR_INITIALIZATION_FAILED; gpu->winsys = intel_winsys_create_for_fd(gpu->handle.instance->icd, fd); if (!gpu->winsys) { intel_log(gpu, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0, VK_NULL_HANDLE, 0, 0, "failed to create GPU winsys"); gpu_close_render_node(gpu); return VK_ERROR_INITIALIZATION_FAILED; } return VK_SUCCESS; }
static struct pipe_screen * pipe_ilo_create_screen(int fd) { #if _EGL_PIPE_ILO struct intel_winsys *iws; struct pipe_screen *screen; iws = intel_winsys_create_for_fd(fd); if (!iws) return NULL; screen = ilo_screen_create(iws); if (!screen) return NULL; screen = debug_screen_wrap(screen); return screen; #else return NULL; #endif }