ΠΠ°ΡΠΎΠ½ ΠΠ»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