Графический стек Linux
Версия от 18:10, 15 апреля 2021; Petr-akhlamov (обсуждение | вклад)
- Direct Rendering Manager (DRM) - аппаратно-независимый драйвер уровня ядра для обеспечения поддержки Direct Rendering Infrastructure.
- Direct Rendering Infrastructure (DRI) - это интерфейс и реализация свободного программного обеспечения внутри ядра, используемого системой X Window/Wayland для безопасного предоставления пользовательским приложениям доступа к видеооборудованию без необходимости передачи данных через графический сервер. Его основное назначение - обеспечение аппаратного ускорения для реализации OpenGL в Mesa, которая является ядром драйверов DRI OpenGL. Без DRI программы должны использовать во время рендеринга ЦП (непрямой рендеринг), что снижает общую производительность. DRI также был адаптирован для обеспечения ускорения OpenGL на консоли фреймбуфера без запущенного графического сервера.
- Режим настройки (KMS) - это программная операция, которая активирует графический режим (разрешение экрана, глубина цвета и частота обновления) для адаптера дисплея компьютера.
- Wayland - это протокол, который определяет связь между графическим сервером (называемым Wayland compositor) и его клиентами. Первоначально он был разработан как замена X Window System. В отличие от последнего, клиенты Wayland будут выполнять рендеринг без обхода непосредственно в свой собственный буфер, расположенный в графической памяти, за счет использования EGL с некоторыми дополнительными расширениями EGL, специфичными для Wayland.
Экранный менеджер (display manager) должен выполнять композитинг, следовательно, он будет включать в себя большую часть функциональности современных оконных менеджеров композитинга. Он объединит эти буферы, чтобы сформировать экранное изображение окон приложений. Протокол Wayland, по сути, касается только обработки ввода и управления буфером. Обработка устройств ввода в Linux зависит от evdev и аналогичных компонентов в других операционных системах. - EGL - это интерфейс между API-интерфейсами рендеринга Khronos (такими как OpenGL, OpenGL ES или OpenVG) и нативной платформой оконных систем. EGL обрабатывает управление графическим контекстом, привязку поверхности/буфера, синхронизацию рендеринга и обеспечивает «высокопроизводительный ускоренный двухмерный и трехмерный рендеринг в смешанном режиме с использованием других API Khronos». EGL управляется некоммерческим технологическим консорциумом Khronos Group.
- evdev (для событий устройства) - компонент ядра Linux для обработки ввода (с клавиатуры, мыши, джойстика и т. д.) и тесно связанный драйвер ввода как для X.Org Server, так и для Wayland. Компонент ядра - это связующий код, который переводит входные события из драйверов для периферийных устройств в общую структуру, которую драйвер ввода может легко преобразовать в события X11. Таким образом, каждое устройство ввода с драйвером Linux совместимо с драйвером ввода X.Org, что значительно упрощает настройку X.Org.
- Mesa - это набор свободных библиотек с открытым исходным кодом, которые реализуют OpenGL и несколько других API, связанных с аппаратным ускорением 3D-рендеринга, 3D компьютерной графики и GPGPU.
Источник: django-notes.blogspot.com