Mesa и драйверы Intel
В строке «Mesa Intel® Graphics» соединены два разных слова, и путаница между ними — самая частая. Здесь про то, что такое Mesa, что такое драйвер, и почему это не одно и то же.
Два уровня, два имени
| Уровень | Что это | Имя на вашей машине |
|---|---|---|
| Ядро | Драйвер, который говорит с железом: память, режимы экрана, синхронизация | i915 |
| Пользовательское пространство | Библиотека, которая превращает команды OpenGL/Vulkan в команды драйвера | Mesa, драйвер iris |
То есть i915 и iris — не альтернативы, а две половины одной дороги: iris вызывает i915, i915 управляет графическим процессором. Поэтому фраза «у меня драйвер Mesa» верна лишь наполовину: Mesa — это библиотека, а драйвер к железу — в ядре.
Что делает Mesa
Mesa — открытая реализация графических интерфейсов. Прикладной программе не нужно знать, какая у вас видеокарта: она вызывает OpenGL или Vulkan, а Mesa уже выбирает нужный драйвер.
| Что реализует Mesa | Зачем это приложению |
|---|---|
| OpenGL | Рисование: игры, KDE, старые программы |
| Vulkan | Современный низкоуровневый интерфейс: новые игры, эмуляторы, браузеры |
| EGL | Связка графики с окнами и экраном |
| VA-API | Аппаратное декодирование видео (через отдельный драйвер, см. ниже) |
Драйверы внутри Mesa выбираются по железу:
| Драйвер | Для чего |
|---|---|
iris |
Встроенная графика Intel начиная с 8-го поколения — ваш случай (Alder Lake, i5-1235U) |
i965 |
Старая встроенная графика Intel (до 8-го поколения) |
radeonsi, RADV |
Графика AMD (OpenGL и Vulkan) |
nouveau, NVK |
NVIDIA (открытые драйверы) |
llvmpipe |
Запасной софтверный: рисует процессор, медленно |
llvmpipe — важное имя. Если в выводе glxinfo вы видите его вместо Intel, значит графика работает на процессоре: всё рисуется, но медленно, и аппаратного ускорения нет.
Как проверить, что работает именно GPU
# 1. Какой драйвер ядра взял устройство
$ lspci -k | grep -A3 -E 'VGA|3D'
Kernel driver in use: i915
# 2. Есть ли устройства DRM (доступ к GPU)
$ ls -l /dev/dri/
card0 renderD128
# 3. Что видит Mesa: рендерер, версия OpenGL, версия Mesa
$ glxinfo -B
OpenGL renderer string: Mesa Intel(R) Graphics (ADL GT2)
OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.x
# 4. Vulkan (если установлены vulkan-tools)
$ vulkaninfo --summary | head -20
# 5. Что сказало ядро при загрузке
$ journalctl -k | grep -iE 'i915|drm' | head -20
Читается так:
i915вlspci— драйвер ядра подхватил устройство. Если тамvfio-pciили пусто — графикой управляет что-то другое;card0иrenderD128— устройства есть;renderD128нужен для рендеринга без прав администратора;Mesa Intel(R) Graphicsв рендерере — работает GPU.llvmpipe— работает процессор;- версия Mesa в той же строке — то, что реально загружено, а не то, что стоит в пакетах.
Проверить, что пользователь имеет доступ к GPU:
$ id
$ ls -l /dev/dri/renderD128
Устройство обычно доступно группе render (или video). Если пользователь не в ней и права не выданы через systemd-logind, Mesa уходит в llvmpipe — и это выглядит как «графика тормозит» без всякой ошибки на экране.
Проверено на этой машине
Ubuntu 26.04, Dell Latitude 7400, ядро 7.0.0:
$ lspci -k | grep -A3 VGA
00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]
Kernel driver in use: i915
$ ls /usr/lib/x86_64-linux-gnu/dri/ | grep -E '^(iris|swrast)'
iris_dri.so
swrast_dri.so
Драйвер ядра — i915; в Mesa есть iris (аппаратный путь для Intel) и swrast (программный запасной). Версия Mesa — 26.0.8 (пакет libgl1-mesa-dri 26.0.8-1ubuntu0.3).
Полная картина — от Mesa и от ядра:
$ glxinfo -B | grep -E 'OpenGL renderer|OpenGL version'
OpenGL renderer string: Mesa Intel(R) UHD Graphics 620 (WHL GT2)
OpenGL version string: 4.6 (Compatibility Profile) Mesa 26.0.8-1ubuntu0.3
$ journalctl -k | grep 'i915 0000:00:02.0' | head -3
i915 0000:00:02.0: [drm] Found coffeelake/ult (device ID 3ea0) integrated display version 9.00
i915 0000:00:02.0: [drm] VT-d active for gfx access
i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
Три вывода из этих строк:
- рендерер —
UHD Graphics 620 (WHL GT2), а неllvmpipe: GPU действительно работает; - OpenGL 4.6, Mesa 26.0.8 — то, что реально загружено;
- ядро опознало чип как coffeelake/ult, device ID 3ea0, display version 9.00 (Whiskey Lake — родственник Coffee Lake, отсюда
WHLв имени Mesa) и загрузило прошивку DMC — значит, энергосбережение дисплея работает.
И самое полезное — права на устройство:
$ ls -l /dev/dri/
crw-rw----+ 1 root video 226, 1 ... card1
crw-rw----+ 1 root render 226, 128 ... renderD128
$ getfacl /dev/dri/renderD128
user:tumanov:rw-
Плюс в правах (+) — это ACL: доступ выдан конкретному пользователю, а не всем из группы. Так делает systemd-logind для активной сессии, поэтому входить в группу render вручную не нужно. Если ACL нет, а пользователь не в группе, Mesa уйдёт в программный рендеринг.
Прошивка: то, что лежит отдельно
Для современных чипов Intel ядро загружает микропрограммы GuC и HuC — они отвечают за планирование задач на GPU и за часть видеоускорения. Лежат они в пакете с прошивками (linux-firmware в большинстве дистрибутивов), и если их нет, в журнале появляются сообщения о невозможности загрузить прошивку, а часть возможностей (например, аппаратное декодирование) тихо отключается.
Обновление прошивок — обычная причина «после обновления системы что-то сломалось в графике». Проверять в journalctl -k по словам firmware, GuC, HuC.
Видео: отдельный драйвер поверх Mesa
VA-API — интерфейс аппаратного декодирования. Mesa его поддерживает, но конкретный драйвер — отдельный:
- для новых Intel — iHD (
intel-media-driverв RPM-семействах,intel-media-va-driverв Debian/Ubuntu); - для старых —
i965-va-driver.
Проверка — программой vainfo (пакет libva-utils): она перечисляет профили, которые железо умеет декодировать. Подробнее — в статье «Проверка GPU и видеоускорения».
Пакеты: что понадобится
| Задача | Debian/Ubuntu | RPM (МОСТЕХ, РОСА) |
|---|---|---|
| Сама Mesa | mesa-utils, libgl1-mesa-dri |
mesa-dri-drivers, mesa-utils |
| Vulkan | vulkan-tools |
vulkan-tools |
| Проверка VA-API | libva-utils |
libva-utils |
| Нагрузка на GPU | intel-gpu-tools |
intel-gpu-tools |
| Прошивки | linux-firmware |
linux-firmware |
Имена в RPM-семействе проверять в своём менеджере пакетов: dnf search mesa или urpmi --search mesa.
Источники
- Документация Mesa: https://docs.mesa3d.org/ — драйверы, поддерживаемые API, версии.
- Документация ядра: https://docs.kernel.org/gpu/ — DRM,
i915, прошивки GuC/HuC. man 1 lspci,man 1 glxinfo(пакетpciutils/mesa-utils),man 1 vulkaninfo.- Имена пакетов и наличие драйвера
irisпроверены на Debian/Ubuntu-системе (пакетmesa-utils9.0.0,intel-gpu-tools2.3,vulkan-tools1.4.341; драйверiris_dri.soвходит в пакет Mesa).
Что ещё не проверено
- На рабочем ноутбуке (МОСТЕХ) команды не выполнялись — доступа нет. На этом проверено:
i915,irisиswrast, Mesa 26.0.8, рендерерUHD Graphics 620 (WHL GT2), OpenGL 4.6, прошивка DMC, ACL на/dev/dri/renderD128. - Не проверено здесь:
vulkaninfoиintel_gpu_top(не установлены), аvainfoпадает — нет драйвера VA-API (разобрано в статье «Проверка GPU»). - Точное число исполнительных блоков у Iris Xe в i5-1235U здесь не приводится: это характеристика конкретной модели, её надо брать из документации Intel, а не из статьи.
Комментарии
Пока комментариев нет.