БостояниС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈ 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.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru