ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ NVIDIA ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ Π²ΡΠΏΡΡΠΊ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° NVIDIA 565.77. ΠΡΠ°ΠΉΠ²Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Linux (ARM64, x86_64), FreeBSD (x86_64) ΠΈ Solaris (x86_64). NVIDIA 565.x ΡΡΠ°Π»Π° Π²ΠΎΡΡΠΌΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΡΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ NVIDIA ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ°. ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ° nvidia.ko, nvidia-drm.ko (Direct Rendering Manager), nvidia-modeset.ko ΠΈ nvidia-uvm.ko (Unified Video Memory) ΠΈΠ· Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ NVIDIA, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² Π½ΠΈΡ ΠΎΠ±ΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π½Π° GitHub. ΠΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΠ΅ΠΊΠΈ CUDA, OpenGL ΠΈ Vulkan, ΠΎΡΡΠ°ΡΡΡΡ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠΌΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
- Π ΠΏΡΠΎΡΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «GLVidHeapReuseRatio», ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ OpenGL, ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π£ΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ Wayland Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΡ ΠΊ ΠΈΠ·Π»ΠΈΡΠ½Π΅ΠΌΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ.
- ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΡΠ΄ΡΠ° Linux, Π² ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ° NVIDIA Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠΎΠ΄ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° CONFIG_CC_VERSION_TEXT Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΄ΡΠ° Kconfig.
- Π ΡΡΠΈΠ»ΠΈΡΠ΅ nvidia-modprobe ΡΠ»ΡΡΡΠ΅Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΏΡΠΎΡΠ²Π»ΡΠ²ΡΠΈΡ ΡΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²ΡΠΈΡ ΡΡΠΈΠ»ΠΈΡΠ΅ nvidia-persistenced Π²ΡΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ «persistence» Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ±ΡΠΎΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ mmap Π΄Π»Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² DMA-BUF.
- ΠΡΠΊΠ»ΡΡΠ΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡΠΈΠ΅ ΠΊ ΠΏΠΎΠ΄Π²ΠΈΡΠ°Π½ΠΈΡΠΌ ΠΏΡΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·Π²ΡΡΡΠΊΠΈ (vblank) Π² OpenGL ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ GSP.
- Π ΡΡΠΈΠ»ΠΈΡΡ nvidia-drm Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² CRTC, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ Wayland Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ²Π΅ΡΠ° Π² GPU (color pipeline) Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ HDR.
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΡΡΡΡΠ°Π½ΡΡΡΠ°Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² DXVK ΡΠ΅ΠΆΠΈΠΌΠ° ‘d3d9.floatEmulation’.
- Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ΅ nvidia-settings ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ° Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠ°Π΄ΡΠΎΠ² Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠΊΡΠ°Π½Π°Ρ (framelock), Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ° ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠ· ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΡΠ΅ΠΌΡ GTK3, Π²ΠΌΠ΅ΡΡΠΎ ΠΆΡΡΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π΅Π»ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ VK_EXT_depth_clamp_control.
- ΠΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ GLX_EXT_buffer_age Π΄Π»Ρ Xwayland, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² ΠΏΡΠΎΡΠ»ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ Π±ΡΠ»ΠΎ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΊ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π² Xwayland. Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΡΡΡΡΠ°Π½Π΅Π½Π°.
- ΠΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΈΠ·-Π·Π° ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° «nvidia-drm.modeset=0» Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ Π°Π²Π°ΡΠΈΠΉΠ½ΡΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ΄ΡΠ° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ GBM.
- ΠΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΏΡΠΎΡΠ²Π»ΡΠ²ΡΠΈΠ΅ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Wayland ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡΠΈΠ΅ ΠΊ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ KDE Plasma 6, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠ³Ρ Π½Π° Π±Π°Π·Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ API Vulkan (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ ΠΊΡΠ°Ρ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ³Ρ Π½Π° Π΄Π²ΠΈΠΆΠΊΠ΅ Unreal Engine).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru