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