БостояниС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Wayland Π² ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… NVIDIA

ΠžΡΡ‚ΠΈΠ½ Π¨Π°Ρ„Π΅Ρ€ (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 ΠΈ прямоС взаимодСйствиС с GPU Π±ΡƒΠ΄Π΅Ρ‚ прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π² прилоТСниях ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² прилоТСния):

  • Π‘Ρ‚Π΅Ρ€Π΅ΠΎΠ²Ρ‹Π²ΠΎΠ΄ (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ‡Π΅Ρ€Π΅Π· VK_KHR_multiview с отрисовкой Π² нСсколько Π²ΡŒΡŽΠΏΠΎΡ€Ρ‚ΠΎΠ²).
  • Π Π΅ΠΆΠΈΠΌ Vulkan Explicit SLI (Ρ‡Π΅Ρ€Π΅Π· VK_KHR_device_group).
  • Π“Ρ€ΡƒΠΏΠΏΡ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ±ΡƒΡ„Π΅Ρ€ΠΎΠ² (Swap Group, Ρ‡Π΅Ρ€Π΅Π· VK_NV_present_barrier).
  • Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠ°Π΄Ρ€ΠΎΠ² (Frame Lock) ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (Genlock).

ВозмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ находятся Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ планируСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… выпусках Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² NVIDIA:

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° использования с 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-drm fbdev=1Β», Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΈ использовании ΠΎΠ΄Π½ΠΎΠ³ΠΎ экрана Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ nvidia-drm ΠΈ simpledrm.
  • ВыставлСниС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Β«nvidia-drm modeset=1Β».
  • ИспользованиС с Xwayland Π±ΡƒΡ„Π΅Ρ€Π° Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран (front-buffer) ΠΏΡ€ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ