Состояние поддержи Wayland в проприетарных драйверах NVIDIA

Аарон Плaттнер (Aaron Plattner), один из ведущих разработчиков проприетарных драйверов NVIDIA, оценил состояние поддержки Wayland в проприетарных драйверах NVIDIA, и перечислил области в которых связанные с Wayland возможности пока отстают от X11. Информация соответствует ветке драйверов NVIDIA 565, находящейся на стадии бета-тестирования. Отставание связано как с проблемами в самом драйвере NVIDIA, так и с общими ограничениями протокола Wayland и композитных серверов на его основе.

Возможности, которые пока не планируются поддерживать в драйверах NVIDIA на системах с Wayland из-за ограничений протокола Wayland и композитных серверов.

  • Cтереовывод (формирования стереокартинки с разными буферами для левого и правого глаза), используя GLX, EGL и Vulkan.
  • Режим SLI Mosaic, позволяющий объединить несколько GPU в один логический GPU для создания большого виртуального экрана, состоящего из нескольких дисплеев.
  • Конфигуратор nvidia-settings не позволяет добиться идентичного уровня настроек в разных композитных менеджерах, так как на системах с Wayland отсутствует единый механизм конфигурации экранов.

Некоторые функции не удаётся реализовать из-за невозможности обеспечить их одинаковую поддержку в разных композитных серверах Wayland. Но при этом данные возможности могут быть реализованы в приложениях, используя графический API Vulkan и Vulkan-расширение VK_KHR_display (“Vulkan Direct to Display”), позволяющее напрямую работать с экраном, минуя композитный сервер. Через Vulkan может быть обеспечена работа таких возможностей, как стереовывод (VK_KHR_multiview с отрисовкой в несколько вьюпортов), режим Vulkan Explicit SLI (через VK_KHR_device_group), группы фреймбуферов (Swap Group, через VK_NV_present_barrier), блокировки кадров (Frame Lock) и общие блокировки (Genlock).

Возможности, которые уже находятся в разработке или которые планируется добавить в будущих выпусках драйверов NVIDIA:

  • Использование VRR (Variable Refresh Rate) в многомониторных конфигурациях в окружениях с Wayland. Будет добавлено в следующем выпуске драйверов NVIDIA.
  • Выставление по умолчанию параметра “nvidia-drm fbdev=1”, что решит проблемы некорректным выводом при использовании одного экрана драйверами nvidia-drm и simpledrm.
  • Выставление по умолчанию параметра “nvidia-drm modeset=1”.
  • Поддержка использования в Wayland дисплейного мультиплексора (mux) для автоматического переключения, когда полноэкранное приложение осуществляет вывод через дискретный GPU. Дисплейные мультиплексоры применяются в ноутбуках с двумя GPU (интегрированным и дискретным) для прямого соединения дискретного GPU c встроенным или внешним экраном.
  • Расширенные режимы дисплеев, такие как деформация, смешивание, смещение пикселей и свойства COLOR_ENCODING/COLOR_RANGE.
  • Возможность использования с Xwayland буфера вывода на экран (front-buffer) при двойной буферизации.
  • Поддержка в nvidia-drm (Direct Rendering Manager) механизма Presentation Timing для синхронизации вывода кадров на экран.
  • Поддержка API VDPAU (Video Decode and Presentation) для задействования в окружениях на базе Wayland механизмов аппаратного ускорения для обработки видео в различных форматах и выноса на сторону GPU таких задач, как пост-обработка, слияние (compositing), отображение и декодирование видео.
  • Поддержка в системах на базе Wayland технологии vGPU, позволяющей использовать виртуальные GPU NVIDIA в системах виртуализации для разделение ресурсов физического GPU NVIDIA.

Из недавно реализованных возможностей отмечается библиотека egl-x11, улучшающая поддержку программного интерфейса EGL в DDX-сервере Xwayland, применяемом для организации запуска X11-приложений в окружениях на базе Wayland.

Release. Ссылка here.