ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Collabora ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»Π° Π΄ΡΠ°ΠΉΠ²Π΅Ρ Venus, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠΈΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ GPU (VirtIO-GPU), ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° Π±Π°Π·Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ API Vukan. Venus Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΠ°Π½Π΅Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ VirGL, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ API OpenGL, ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ GPU Π΄Π»Ρ 3D-ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°, Π±Π΅Π· ΠΎΡΠΊΡΡΡΠΈΡ ΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ GPU. ΠΠΎΠ΄ Venus ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΡΠ½ Π² ΡΠΎΡΡΠ°Π² Mesa ΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²ΡΠΏΡΡΠΊΠ° 21.1.
ΠΡΠ°ΠΉΠ²Π΅Ρ Venus ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Virtio-GPU Π΄Π»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ API Vulkan. ΠΠ»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Π³ΠΎΡΡΠ΅Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° virglrenderer, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ°Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ· Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Venus ΠΈ VirGL Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ Vulkan ΠΈ OpenGL. ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ GPU Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Ρ ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ANV (Intel) ΠΈΠ»ΠΈ RADV (AMD) ΠΈΠ· ΡΠΎΡΡΠ°Π²Π° Mesa.
Π Π·Π°ΠΌΠ΅ΡΠΊΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Venus Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π±Π°Π·Π΅ QEMU ΠΈ KVM. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Ρ ΠΎΡΡΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΄ΡΠΎ Linux 5.16-rc Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ /dev/udmabuf (ΡΠ±ΠΎΡΠΊΠ° Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ CONFIG_UDMABUF), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΊΠΈ virglrenderer (Π²Π΅ΡΠΊΠ° res-sharing) ΠΈ QEMU (Π²Π΅ΡΠΊΠ° venus-dev). ΠΠ° ΡΡΠΎΡΠΎΠ½Π΅ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ΄ΡΠ° Linux 5.16-rc ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Mesa 21.1+, ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ «-Dvulkan-drivers=virtio-experimental».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru