The Reference Operating System for IoT graphics stack consist of i915 GPU kernel driver, the Mesa user space 3D graphics driver, the xf86-video-intel 2D driver, the libDRM library, the Cairo 2D library, the libVA library, and the Intel backend driver for the libVA library. An overview of the graphics stack and its relationships is shown below.
The kernel driver also comes with intel-gpu tools which contain basic test, profiling, and support wrappers for handling PM, batch buffer, and ioctl calls.
LibDRM and gfx Kernel Driver
The i915 DRM Driver is the kernel driver which implements an interface to the hardware required by the user space libDRM library which is really just a wrapper over the ioctls to the kernel driver. The kernel driver actually implements DRM and GEM.
libDRM is the cross-driver middleware which allows user-space applications (such as Mesa and 2D drivers) to communicate with the Kernel by the means of the DRI protocol. libDRM is a hard requirement before building Mesa.
Mesa 3D is the 3D driver used for Intel Graphics on Linux operating systems which implements the OpenGL/GLES standard. It is responsible for processing the rendering requests, and provides support for OpenGL/ES and GLSL standards.
Xf86-video-intel is the 2D accelerated driver for the X11 Window System.
An X-Server is a program, part of the X Window System that runs on local machines, that handles all access to the graphics cards, display screens and input devices.
Cairo is a 2D graphics library (stroke, fill paths, draw text, apply brush, etc.) with support for multiple output devices. It works on the X Window System. Applications can use Cairo directly but it’s abstracted by an easier to use GTK+ interface or QT5.
libva is the "front part" of (one way) to have a Linux media stack. The vaapi-intel-driver is the video decode/encode hardware accelerated driver for Intel for libva.VAAPI (Video Acceleration API) is an open-source library and API specification, which provides access to graphics hardware acceleration capabilities for video processing. It consists of a main library called libVA and driver-specific acceleration back-ends for each supported hardware vendor.
The libva-intel-driver is the Video Acceleration (VA) API implementation for Intel G45 chipsets and Intel HD Graphics for Intel Core processor family.
The Intel GPU Tools is a collection of tools for development and testing of the Intel DRM driver. It includes low levels tools and tests such as xtest, rendercheck, piglit and oglconform that can be useful in testing and debugging low level driver code.