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

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