xiOS, the X11 server

xiOS is derived from Xvfb, the virtual framebuffer X server, with a device layer that draws into an IOSurface instead of a memory buffer. X11 clients such as xterm and the classic x11-apps connect over the ordinary X protocol and are none the wiser about where their pixels end up.

X11 clients render on the CPU. iOS gives this X11 path no DRM/KMS or desktop OpenGL route, so the X track stays software. It is the compatible, reliable option, and it is where the project started.

Basis
Xvfb with an IOSurface device layer, cross-compiled for iphoneos-arm64.
Output
Draws the X screen straight into an IOSurface.
Input
UIKit events arrive as XTEST.
Rendering
Software only. Good for legacy X clients, but not the GPU track.

iosc, the Wayland compositor

iosc is a compositor written from scratch on libwayland-server, clean-room and MIT-licensed. Rather than blitting client buffers on the CPU, it treats each client's rendered surface as a GPU texture and blends them into the output IOSurface on the A10. This is the path that makes real toolkits feel native.

To satisfy GTK and GNOME it advertises the protocols those toolkits require, and it routes keyboard and pointer input through a standard wl_seat.

Protocols iosc speakswl, xdg, wlr

xdg-shell, xdg-popup, subsurfaces, wp-viewport, fractional-scale, wl_data_device clipboard, layer-shell, foreign-toplevel, cursor-shape, screencopy, session-lock, drag-and-drop, plus wired-up touch, Pencil tablet input, and live output resize for rotation.

Switching between them

Because both servers produce an interchangeable output IOSurface, the session launcher can start either one and the app presents it the same way. A three-finger tap in the app switches between running X and Wayland displays. A four-finger tap opens the session picker, where you choose a desktop; iosc can also resize live when the iPad rotates.