Elektrine lite

← Feed

@Jankatarch@lemmy.world

2026-11-03 11:45 UTC

Hi, trans girl here who messed with libwayland and x11 a bit before. Wayland has the compositor and server combined so there’s less overhead. Here’s the X11 architecture. Let’s say you pressed the fullscreen button with your mouse: First the evdev driver will get your mouse input and send to X server. X server tells the X client that someone just clicked so-and-so coordinates. X server HAS to assume which client because windows may be on top of each other, and only compositor (our renderer) calculates those. The X client re-arranges everything after fullscreen, sends X server what changed. X server calculates which area of the change was in, asks compositor to render that area again. Compositor calculates that all windows fall behind the fullscreen window, renders the one on top, sends X server what changed. X server does the graphics displaying part from there. Now here’s Wayland architecture You press fullscreen with mouse, evdev sends it to Wayland compositor Compositor knows what windows are where, knows which client was clicked. Sends it to them. Client realizes they are being fullscreened, they actually render it themselves too. They actually have a shared buffer that the compositor can access too and output their rendering there. Compositor already has the changes in shares buffers, recomposes them based on all the clients’ new rendering. So now some redundant steps are gone, and also the shared buffer is nice too. Overall, wayland uses less resources for more work.

Replies (3)

  • @tf1@sopuli.xyz 2026-11-03 12:18

    also the x11/xorg (don’t know which) codebase is a big mess, and the people working on it wanted to start from scratch

    Open ##5502839

  • @Ephera@lemmy.ml 2026-11-03 13:52

    Damn, I was already on the Wayland train, because slightly smoother, but I didn’t know X11 was so wonky…

    Open ##5503301

  • @edinbruh@feddit.it 2026-11-03 17:30

    I heard someone on lemmy mention it has more accessibility features supported currently. For now. But both GNOME and KDE are working on it

    Open ##5504478