ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ NVIDIA ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ Π²ΡΠΏΡΡΠΊ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° NVIDIA 550.54.14. ΠΡΠ°ΠΉΠ²Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Linux (ARM64, x86_64), FreeBSD (x86_64) ΠΈ Solaris (x86_64). NVIDIA 545.x ΡΡΠ°Π»Π° ΡΠ΅ΡΡΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΡΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ NVIDIA ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ°. ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ° nvidia.ko, nvidia-drm.ko (Direct Rendering Manager), nvidia-modeset.ko ΠΈ nvidia-uvm.ko (Unified Video Memory) ΠΈΠ· Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ NVIDIA, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² Π½ΠΈΡ ΠΎΠ±ΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π½Π° GitHub. ΠΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΠ΅ΠΊΠΈ CUDA, OpenGL ΠΈ Vulkan, ΠΎΡΡΠ°ΡΡΡΡ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠΌΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°:
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ VK_KHR_video_encode_queue, VK_KHR_video_encode_h264, VK_KHR_video_encode_h265 ΠΈ VK_KHR_video_maintenance1, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° Kwin Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ (Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· OGL_DEDICATED_HW_STATE_PER_CONTEXT=ENABLE_ROBUST).
- Π ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ INSTALL_MOD_DIR.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠΎΠ² GBM (Generic Buffer Management) R8, GR88 ΠΈ YCbCr.
- ΠΠΎΡΠ°Π±ΠΎΡΠ°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎΡΡ ΠΊΠ°Π΄ΡΠΎΠ² ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ X-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π² Π±Π΅Π·ΡΠΊΡΠ°Π½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (headless). ΠΠ»Ρ ΡΠΈΡΡΠ΅ΠΌ X11 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° «LimitFrameRateWhenHeadless», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ FPS ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π±Π΅Π· ΡΠΊΡΠ°Π½Π°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° HDMI Ρ 10 Π±ΠΈΡΠ°ΠΌΠΈ Π½Π° ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΊΠ°Π½Π°Π» (Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «hdmi_deepcolor=1» ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ nvidia-modeset).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ HDR ΡΠ΅ΡΠ΅Π· DRM-ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ HDR_OUTPUT_METADATA ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ nvidia-drm Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ «modeset=1».
- Π Vulkan Wayland WSI (Window System Integration) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ PRIME Π΄Π»Ρ Π²ΡΠ½ΠΎΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ GPU (PRIME Render Offload).
- ΠΠ»Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° KMS (Kernel Mode Setting) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ²ΠΎΠΉΡΡΠ² CRTC (CRT Controller) CTM, DEGAMMA_LUT ΠΈ GAMMA_LUT, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ GNOME ΠΈ KDE, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Wayland.
- Π ΠΎΡΠΊΡΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ Π΄Π»Ρ ΡΠ΄ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU ΡΠ΅ΡΠΈΠΉ GeForce ΠΈ Workstation.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ RTD3 (Runtime D3) Π½Π° GPU Π΄Π»Ρ ΠΠ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° EGL-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ EGL_ANDROID_native_fence_sync, Π° ΡΠ°ΠΊΠΆΠ΅ Vulkan-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT ΠΈ VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° nvidia-drm Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ «modeset=1».
- ΠΠ·ΠΌΠ΅Π½Π΅Π½Ρ ΠΈΠΌΠ΅Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ² NVIDIA, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π² /proc/devices (Π±ΡΠ»ΠΎ nvidia-frontend, ΡΡΠ°Π»ΠΎ nvidia ΠΈ nvidiactl).
- Π ΠΌΠΎΠ΄ΡΠ»Ρ nvidia-drm Π²ΡΡΡΠΎΠ΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠ½ΡΠΎΠ»Π΅ΠΉ Π½Π° Π±Π°Π·Π΅ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Linux Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ ΡΠ°ΠΊΠΈΠΌΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ efifb ΠΈ vesafb. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π² nvidia-drm Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ «modeset=1» ΠΈ «fbdev=1».
- Π ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡ nvidia-installer Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° NVIDIA.
- ΠΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π½Π° Π±Π°Π·Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΡΠ΅ΠΆΠΈΠΌ «DRM leasing», Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ»Π΅ΠΌΠΎΠ² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ SteamVR. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΉ wayland-protocols 1.22+ ΠΈ xwayland 22.1.0+. Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π° Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ Kwin 5.24 ΠΈ Sway 1.7.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ NVIDIA VDPAU Π΄Π»Ρ Xwayland, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ API VDPAU (Video Decode and Presentation) Π΄Π»Ρ X11-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Xwayland.
- Π ΡΠΎΡΡΠ°Π² Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libnvidia-gpucomp.so, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ².
- Π£Π΄Π°Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libnvidia-vulkan-producer.so, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π² Wayland WSI (Window System Integration).
- Π ΠΎΡΠΊΡΡΡΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΄ΡΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° vGPU Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Ρ ΠΎΡΡ-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ Π³ΠΎΡΡΠ΅Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
- Π Π΅ΡΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡΠΈΠ΅ ΠΊ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° (ΠΌΠ΅Π½Π΅Π΅ 1 FPS) Π² Wayland-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ GPU ΡΠ΅ΡΠΈΠΉ Maxwell, Volta, ΠΈ Pascal.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru