
the Direct Rendering Manager (DRM) gives access to video hardware.the Linux kernel, with various subsystems.OpenVG, a standard but deprecated C API for 2D graphics the Pi version (VideoCore IV / Pi

Mesa libEGL, which is not VideoCore/Pi-specific (see Mesa below).Broadcom libbrcmEGL (VideoCore IV / Pi EGL, a standard C API for OpenGL "backends" the Pi has two implementations.OpenMAX (OMX), a standard but deprecated C API for audio/video the Pi's OMX Integration Layer (IL) wraps MMAL.Multi-Media Abstraction Layer (MMAL), a VideoCore-specific C API for audio/video processing.DispmanX, a VideoCore-specific C API to control framebuffer layering and compositing.VideoCore firmware, proprietary code that runs on the VPU, manages the GPU overall and includes some support for OpenGL and video compression/decompression.Pixel Valves and encoders that turn HVS output into video signals.the Hardware Video Scaler (HVS) that does output-time scaling and compositing."QPU" units which run shaders for 3D rendering.video capture helpers (lens correction, pixel dematrixing, etc).compression/decompression helpers (motion estimation, prediction, etc.).the "VPU", a general-ish processor that manages the system and runs proprietary "firmware" with its own OS.the "VideoCore" GPU (VideoCore IV on Pi the ARM CPU (various generations) that runs Linux and general code.non-video GPU stuff like neural nets (out of scope here).compositing (overlaying and blending "layers" of all the above).video editing and filtering (camera lens correction, virtual backgrounds, etc).video compression/decompression (H.264, etc).shoving raw pixels at the display quickly (from some other source).drawing 3D scenes (polygons and textures and transforms).

