- Compositors: Combine and render multiple graphical elements into a final display output. In X11, use the Composite extension to work with the X server, managing window transparency, effects, and desktop composition (ex: Compiz, KWin, Mutter). In Wayland, the compositor is the display server itself (ex: Weston, Sway, GNOME mutter-wayland). Compositors interact with the graphics stack through DRM/KMS for direct hardware access and use EGL or similar APIs for GPU-accelerated rendering.
- DRM (Direct Rendering Manager): A subsystem of the Linux kernel that provides an interface to graphics hardware. It manages GPU memory, handles synchronization, and enables direct rendering, which allows applications to send commands directly to the graphics hardware for better performance.
- EGL (Embedded Graphics Library): An interface between rendering APIs (such as OpenGL, OpenGL ES, or Vulkan) and the underlying native platform windowing system. Used for context management and surface binding.
- GBM (Generic Buffer Management): A library that provides a mechanism to allocate graphics buffers for use with devices like GPUs. Often used with Mesa DRM and KMS for direct rendering without a display server.
- GLEW (OpenGL Extension Wrangler Library): A cross-platform open-source C/C++ library that helps with querying and loading OpenGL extensions. It provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform, eliminating the need for developers to manually detect and load extensions.
- GLFW (Graphics Library Framework): A lightweight, multi-platform library for creating windows, contexts and surfaces, receiving input and events. Used primarily for OpenGL, OpenGL ES, and Vulkan application development.
- GLX (OpenGL Extension to the X Window System): The protocol and API that allows OpenGL to work with the X Window System. It manages the creation of OpenGL contexts and provides functions to bind those contexts to X11 windows.
- GLVND (GL Vendor-Neutral Dispatch): A middleware library for Linux that allows multiple OpenGL implementations from different vendors to coexist on the same system. It dynamically dispatches OpenGL function calls to the appropriate vendor-specific implementation, enabling users to switch between different OpenGL drivers without reconfiguring their system.
- Gst-nvvideoconvert: A GStreamer plugin specifically for NVIDIA hardware that provides GPU-accelerated video conversion capabilities. It's part of NVIDIA's DeepStream SDK and enables efficient format conversion, scaling, and cropping for video streams using NVIDIA GPUs.
- KMS (Kernel Mode Setting): A mechanism that allows the kernel to set display modes (resolution, color depth, and refresh rate) for video adapters. It works closely with DRM to handle display configuration and supports features like multi-monitor setups and hardware-accelerated page flipping.
- Lavfi (Libavfilter): A filtering system from the FFmpeg project that provides video and audio filtering capabilities. It enables operations like scaling, cropping, deinterlacing, and color space conversion for video, as well as volume adjustment, equalization, and channel mixing for audio.
- libGL: The OpenGL library that provides an API for 2D and 3D graphics rendering. It's the main implementation of the OpenGL specification on Linux systems.
- libGLX: A component that bridges OpenGL and the X Window System, enabling OpenGL rendering on X11. Part of the GLX (OpenGL Extension to the X Window System) architecture.
- Mesa: An open-source implementation of various graphics APIs including OpenGL, OpenGL ES, and Vulkan. It provides software rendering and hardware acceleration for many graphics cards through various drivers.
- NVENC: NVIDIA's hardware-based video encoder that allows for GPU-accelerated video encoding. It offloads video encoding tasks from the CPU to dedicated hardware on NVIDIA GPUs for improved performance.
- NVFBC (NVIDIA Framebuffer Capture): An NVIDIA technology that enables high-performance, low-latency capture of the entire framebuffer or display content directly from the GPU. Used in screen capture applications, remote desktop solutions, and game streaming services to capture frames with minimal CPU overhead and performance impact.
- NVIFR (NVIDIA Inband Frame Readback): A technology from NVIDIA that allows applications to efficiently read back frames from the GPU without going through the display pipeline. It enables high-performance frame capture from OpenGL and DirectX applications, primarily used for screen recording, streaming, and remote rendering systems.
- nvidia-xconfig: A command-line utility provided by NVIDIA that automatically configures the X Server configuration file (xorg.conf) for optimal use with NVIDIA graphics drivers. It helps set up multiple displays, enables features like SLI and adjust various rendering and performance settings.
- NVvidconv: Part of NVIDIA's multimedia API, it's a video converter plugin often used in GStreamer pipelines for format conversion, scaling, and cropping operations on NVIDIA GPUs, providing hardware acceleration for video processing tasks.
- SDL2 (Simple DirectMedia Layer 2): A cross-platform development library designed to provide low-level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It's widely used in video games, emulators, and multimedia applications to handle input, audio, and video across multiple platforms.
- v4l2loopback: A kernel module that creates virtual V4L2 (Video for Linux 2) video devices. It allows applications to create virtual video devices that can be used as inputs by other applications, enabling video stream redirection and manipulation without physical camera hardware.
- VA-API (Video Acceleration API): An open-source library and API that provides hardware-accelerated video processing capabilities primarily for Intel and AMD graphics hardware. It allows applications to offload video decoding, encoding, and processing tasks to the GPU, improving performance and reducing CPU usage for video playback and transcoding.
- VDPAU (Video Decode and Presentation API for Unix): An API designed by NVIDIA for its graphics cards that provides GPU-accelerated video decoding. It offloads video processing tasks from the CPU to the GPU, supporting various compression standards such as MPEG-1/2/4, H.264, and VC-1. It's widely integrated with media players and frameworks like FFmpeg, VLC, and MPlayer.
- Wayland: A display server protocol intended to replace the X Window System, offering better security, simpler design, and improved performance. It handles the communication between display clients and compositors.
- X11/Xorg (X Window System/X.Org Server): A client-server windowing system where Xorg (the X server) manages hardware access (graphics card, display, keyboard, and mouse) and handles drawing primitives. Applications (X clients) connect to the server to display their interfaces, while window managers are specialized clients that handle window decorations, borders, and operations like moving and resizing windows.
- xdummy: A special X server configuration that creates a virtual X server similar to Xvfb but with better OpenGL support. It uses the dummy video driver to create a headless display environment that can leverage GPU acceleration, making it useful for remote rendering and headless GPU computing.
- Xvfb (X Virtual Frame Buffer): A virtual X server that performs all graphical operations in memory without showing any screen output. Commonly used for running tests or applications that require a display server in headless environments.
- apitrace: A tool for tracing, analyzing, and debugging graphics APIs calls. It can trace OpenGL, OpenGL ES, Direct3D, and Vulkan API calls, record them to a file, and then play them back for debugging or performance analysis. Useful for identifying graphics API usage issues and driver bugs.
- cat /etc/modprobe.d/nvidia.conf: A command to examine the NVIDIA kernel module configuration file, which contains important module parameters and options. This file often includes crucial settings such as which GPU features are enabled/disabled, power management options, and module loading priorities. Checking this file can help diagnose driver loading issues and performance problems with NVIDIA GPUs.
- drm_info: A command-line utility that displays information about DRM (Direct Rendering Manager) devices, drivers, and capabilities. It shows detailed information about available GPUs, their connected displays, supported features, and memory information.
- eglinfo: A diagnostic tool that displays information about the EGL implementation and available configurations on a system. It shows supported client APIs, extensions, and surface configurations for EGL-compatible hardware.
- glxinfo: A utility that displays information about the OpenGL and GLX implementations. It shows information about the OpenGL renderer, version, supported extensions, and visual configurations available through GLX. Requires X11 to run.
- libdrm-tests: A collection of test utilities for the Direct Rendering Manager (DRM) subsystem, including tools like
drmtest(tests DRM driver functionality),modeprint(displays information about available display modes), andmodetest(tests display mode setting). These utilities are valuable for diagnosing issues with display configuration, KMS (Kernel Mode Setting), and GPU driver compatibility. - nvidia-smi (NVIDIA System Management Interface): A command-line utility for monitoring and managing NVIDIA GPU devices. It provides information about GPU utilization, temperature, memory usage, power consumption, and running processes on NVIDIA GPUs.
- nvidia-xconfig --query-gpu-info: A command that queries and displays detailed information about NVIDIA GPUs installed in the system. Particularly useful for obtaining the PCI BusID of NVIDIA graphics cards, which is essential when configuring multi-GPU systems or when creating custom X server configurations.
- /sys/kernel/debug/dri/: A virtual filesystem directory that provides access to debugging information for Direct Rendering Infrastructure (DRI) devices. Contains detailed diagnostic data about graphics hardware, including GPU state, memory management, command submission, hardware counters, and driver parameters. Requires root access to view and is invaluable for debugging GPU driver issues and performance problems.
- vulkaninfo: A command-line utility that displays information about Vulkan capable devices and their supported features. It provides detailed information about Vulkan API support, device capabilities, supported extensions, memory types, queue families, and format properties, helping developers understand the Vulkan capabilities of their hardware.