Wayland поддержка аппаратного ускорения GPU NVIDIA

Теги

Wayland — протокол для организации графического сервера в Linux и других UNIX-подобных операционных системах.

По мнению разработчиков, Wayland является «работой над ошибками» X.org, которые накопились за четыре десятилетия его развития. Кардинальное отличие от X.org заключается в том, что Wayland лишь управляет буферами (плоскостями) окон и возлагает всю отрисовку их содержимого на инструментальные пакеты (GTK, Qt и так далее). API рисования (drawing API) полностью отсутствует. Все версии протокола строго определены, а сама система определения версий продумана. У X.org есть серьёзная проблема с версиями разных расширений, часто перекрещивавшимися или дополняющими, вместо того чтобы быть самодостаточными и исключающими.

Судя по проведённым разработчиками тестам, после включения указанных патчей производительность OpenGL и Vulkan в X-приложениях, запущенных при помощи XWayland, почти не отличается от запуска под управлением обычного X-сервера. Изменения подготовлены сотрудником компании NVIDIA. В самом драйвере NVIDIA поддержка компонентов, необходимых для использования ускорения в Xwayland, появится в одном из следующих выпусков, предполагается, что в ветке 470.x. 

Общий ход изменений в Wayland и ход работ связанных с графическим стеком Linux:

  • В Mesa-драйвере lavapipe, предназначенном для программной отрисовки и использующем LLVM для генерации кода, реализована поддержка графического API Vulkan 1.1 и отдельных возможностей из спецификации Vulkan 1.2 (ранее в lavapipe полноценно поддерживался только OpenGL). Отмечается, что драйвер успешно проходит все тесты , охватывающие новые возможности Vulkan 1.1, но пока проваливает те же тесты для Vulkan 1.0, что мешает его официальной сертификации на предмет поддержки Vulkan.
  • Опубликован инструментарий Vgpu_unlock, позволяющий активировать поддержку vGPU на некоторых потребительских видеокартах NVIDIA Geforce и Quadro, официально vGPU не поддерживающих, но основанных на том же чипе, что и более дорогие карты Tesla (функциональность виртуального GPU ограничена программно).
  • Представлена начальная реализация нового открытого драйвера PanVk, предоставляющего поддержку графического API Vulkan для GPU ARM Mali Midgard и Bifrost. PanVk развивается сотрудниками компании Collabora и позиционируется как продолжение развития проекта Panfrost, обеспечивающего поддержку OpenGL.
  • Опубликован выпуск драйвера xf86-input-libinput 1.0.0, предоставляющего обвязку над Libinput, унифицированным стеком для работы с устройствами ввода. В окружениях на базе X-сервера драйвер xf86-input-libinput может использоваться вместо отдельных драйверов evdev и synaptics. Ключевым изменением в версии 1.0.0 является переход на лицензию MIT.

Wayland использует уже существующие в ядре Linux технологии, такие как Kernel mode-setting (KMS), Direct Rendering Manager (DRM) и Graphics Execution Manager (GEM).