18.08.2022

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

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

Ограничения драйвера:

  • В библиотеке libvdpau, позволяющей задействовать механизмы аппаратного ускорения для пост-обработки, композитинга, отображения и декодирования видео, отсутствует встроенная поддержка Wayland. Библиотека также не может использоваться с Xwayland.
  • Wayland и Xwayland не поддерживаются в библиотеке NvFBC (NVIDIA FrameBuffer Capture), применяемой для захвата содержимого экрана.
  • Модуль nvidia-drm не выдаёт информацию о возможностях, связанных с переменной частотой обновления экрана, таких как G-Sync, что не позволяет использовать их в окружениях на базе Wayland.
  • В окружениях на базе Wayland недоступен вывод на экраны виртуальной реальности, например, поддерживаемые платформой SteamVR, из-за неработоспособности механизма DRM Lease, предоставляющего DRM-ресурсы, необходимые для формирования стереокартинки с разными буферами для левого и правого глаза при выводе на шлемы виртуальной реальности.
  • Для Xwayland не реализована поддержка расширения EGL_EXT_platform_x11.
  • В модуле nvidia-drm не поддерживаются свойства GAMMA_LUT, DEGAMMA_LUT, CTM, COLOR_ENCODING и COLOR_RANGE, необходимые для полноценной поддержки цветокоррекции в композитных менеджерах.
  • При использовании Wayland ограничена функциональность утилиты nvidia-settings.
  • С Xwayland в GLX не работает отрисовка буфера вывода на экран (front-buffer) при двойной буферизации.

Ограничения протокола Wayland и композитных серверов:

  • В протоколе Wayland или композитных серверах не поддерживаются такие возможности как стереовывод, SLI, Multi-GPU Mosaic, Frame Lock, Genlock, Swap Groups и расширенные режимы дисплеев (деформация, смешивание, смещение пикселей и эмуляция YUV420). Судя по всему, для реализации подобной функциональности потребуется создание новых расширений EGL.
  • Отсутствует общепринятый API, позволяющий композитным серверам Wayland обесточивать видеопамять через PCI-Express Runtime D3 (RTD3).
  • В Xwayland отсутствует механизм, который можно было бы использовать в драйвере NVIDIA для синхронизации отрисовки приложением и вывода на экран. Без подобной синхронизации при некоторых обстоятельствах не исключается появление визуальных искажений.
  • В композитных серверах Wayland отсутствует поддержка мультиплексоров экрана (mux), применяемых на ноутбуках с двумя GPU (интегрированным и дискретным) для прямого соединения дискретного GPU c встроенным или внешним экраном. В X11 экран «mux» может автоматически переключаться, когда полноэкранное приложение осуществляет вывод через дискретный GPU.
  • В Xwayland не работает непрямой (indirect) рендеринг через GLX так как реализация архитектуры 2D-акселерации GLAMOR не совместима с реализацией EGL от NVIDIA.
  • В приложениях GLX, выполняемых в окружениях на базе Xwayland, не поддерживаются аппаратные оверлеи (Hardware overlay).

Источник.