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