Venus — Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ GPU для QEMU ΠΈ KVM, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Π±Π°Π·Π΅ API Vukan

Компания 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».

Venus - Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ GPU для QEMU ΠΈ KVM, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Π±Π°Π·Π΅ API Vukan


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