Linux graphics

Kernel

X11

XFree86

Keith Packard

TinyX

Graphics card driver (e.g. Intel, nvidia)

Direct Rendering Manager (DRM)

KDrive

2008

Display servers

Framebuffer (fb)

Xorg

Graphics card-specific drivers (e.g. Intel, nvidia)

Xfbdev

CONFIG_DRM_I915

CONFIG_DRM_I915_KMS

CONFIG_INTEL

Framebuffer (fb) (Kernel support)

CONFIG_FB

CONFIG_DRM

CONFIG_DRM_FBDEV_EMULATION

Direct Rendering Infrastructure (DRI)

Display servers

Xgl (display server)

Xvesa

Xorg

Window managers (compositing)

Compiz

Beryl

Similar servers

DWM (Windows)

Quarts Extreme (OS X)

Removed from X11R7.5 in 2009

AIGLX

X.Org 7.1

Modesetting

KMS (Kernel mode setting)

UMS (User mode setting)

Intel & AMD

Mesa 3D

KMS

Screen

DRM

GPU

Glamor

Device Dependent X (DDX)

hw/ directory

Each directory is a driver

Distros put them: /usr/lib/xorg/modules/drivers/

OpenGL spec

Hardware acceleration for Mesa

Kernel-level support for DRI

Requires kernel DRM

Many userspace apps access

Graphics Execution Manager (GEM)

Kernel Mode-Setting (KMS)

GPU switching

Used by

Glamor

Weston

2012

Wayland (protocol)

Client/server model

Client/server model

libwayland-server

Server and compositor are the same

XWayland

Weston

udev

Input devices

libwayland-client

GLX

EGL

Wayland

Android

Xorg

swrast (software rendering)

Xephyr

Similar to xnest

Uses BIOS