Компания Collabora представи драйвера Venus, предлагащ виртуален GPU (VirtIO-GPU), реализиран на база графичния API Vulkan. 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
