The Linux Graphics Stack and glamorimage/svg+xmlThe Linux Graphics Stack and glamor2014-03-23Shmuel Csaba Otto Traian XerxesShmuel Csaba Otto Traian Xerxesen-USLinux kernel graphic stackDRIdirect rendering infrastructureGlamorDRMdirect rendering managerxorgxserverwayland compositorframebufferdisplay serverDIXdevice independent X driverDDXdevice dependent X driverIllustrates the Linux graphics stack with glamour, an OpenGL-based 2D rendering acceleration libraryAdam "Action" Jackson, http://wiki.x.org/wiki/Events/XDC2013/XDC2013AdamJacksonGLXRewrite/https://commons.wikimedia.org/wiki/File:The_Linux_Graphics_Stack_and_glamor.svgby Shmuel Csaba Otto Traian; GNU FDL 1.3+ and CC-BY-SA 4.0 International; created 2014-03-23; modified by Matthew Raymond and others; last modified 2017-12-18
①
②
④
③
Wayland WindowManagement (WWM)
X Window Manager (XWM)
udev
AMDGPU-PRO Only
XWayland
DDX (hw/xwayland)
DIX
GlamorOpenGL-based 2D rendering acceleration library,translates "X rendering" into OpenGL and EGL
Linux kernel
libGL-nvidia-glxlibGL-amdgpu-pro-glx
OpenGLorEGL
3D Game Engine
evdev
KMS
EGL
ioctl
Weston, Mutter, KWin, Enlightenment, ...
libwayland-client
CPU & main memory
GPU & graphic memory
framebuffer
USB, PS/2, ...
libwayland-server
Wayland-client
libDRM
proprietary BLOB
Display controller
Wayland Compositor
X11-client
Mesa 3D
libX or libXCB
libwayland-client
DRM
Free and open-sourceuser mode graphics drivers
Proprietaryuser mode graphics drivers
directrendering
Vulkan /OpenGL 4.5 /OpenGL ES 3.2
user mode
kernel mode
protocolandrendering
libinput API
device discovery
libinput
pointer acceleration
pointer
touchpad
tablet
config parsing
event0event1event2event3event4
Vulkan /OpenGL 4.6 /OpenGL ES 3.2