Стан підтримки Wayland у драйверах NVIDIA

Остін Шафер, який працює в компанії NVIDIA над драйвером для платформи Linux, опублікував звіт про стан підтримки Wayland у пропрієтарних драйверах NVIDIA. Він перелічив області, в яких можливості, пов’язані з Wayland, поки що відстають від X11.

Це відставання пов’язане як з проблемами в самому драйвері NVIDIA, так і з загальними обмеженнями протоколу Wayland та композитних серверів на його основі. Інформація відповідає гілці драйверів NVIDIA 575, яка зараз перебуває на стадії бета-тестування.

Обмеження, пов’язані з протоколом Wayland

Деякі можливості поки не планується підтримувати в драйверах NVIDIA на системах з Wayland і Xwayland через обмеження самого протоколу Wayland і композитних серверів:

  • Стереовивід з різними буферами для лівого та правого ока через GLX, EGL та Vulkan.
  • Режим SLI Mosaic для об’єднання кількох GPU в один логічний GPU.
  • Повноцінні налаштування через конфігуратор nvidia-settings через відсутність єдиного механізму конфігурації екранів у Wayland.

Можливості через Vulkan Direct to Display

Водночас деякі функції можна реалізувати в програмах через графічний API Vulkan і розширення VK_KHR_display, яке дозволяє працювати безпосередньо з екраном, минаючи композитний сервер:

  • Стереовивід через VK_KHR_multiview з відрисовкою у кілька в’юпортів.
  • Режим Vulkan Explicit SLI через VK_KHR_device_group.
  • Групи фреймбуферів через VK_NV_present_barrier.
  • Блокування кадрів (Frame Lock) і загальні блокування (Genlock).

Майбутній розвиток підтримки Wayland у драйверах NVIDIA

Деякі функції вже знаходяться в розробці або плануються до впровадження в майбутніх випусках драйверів NVIDIA:

  • Встановлення за замовчуванням параметра “nvidia-drm modeset=1”.
  • Підтримка дисплейних мультиплексорів на ноутбуках з двома GPU для прямого з’єднання дискретного GPU з вбудованим або зовнішнім екраном.
  • Розширені режими дисплеїв: деформація, змішування, зміщення пікселів та властивості COLOR_ENCODING/COLOR_RANGE.
  • Підтримка в nvidia-drm механізму Presentation Timing для синхронізації виведення кадрів на екран.
  • Підтримка API VDPAU для апаратного прискорення обробки відео в різних форматах.
  • Підтримка технології vGPU для віртуальних GPU NVIDIA в системах віртуалізації.

Нещодавні покращення у драйвері NVIDIA

З моменту попереднього звіту в драйвер було додано такі можливості:

  • Використання VRR (Variable Refresh Rate) в багатомоніторних конфігураціях з Wayland.
  • Встановлення за замовчуванням параметра “nvidia-drm fbdev=1”, що вирішує проблеми з некоректним виведенням при використанні одного екрана драйверами nvidia-drm і simpledrm.
  • Використання з Xwayland буфера виведення на екран (front-buffer) при подвійній буферизації.

Незважаючи на поточні обмеження, команда NVIDIA активно працює над покращенням підтримки Wayland у своїх драйверах. Завдяки цим зусиллям, розрив між можливостями X11 та Wayland поступово зменшується, що сприяє кращій інтеграції графічних карт NVIDIA з сучасними композитними серверами Linux.