La empresa Collabora ha presentado el controlador Venus, que ofrece una GPU virtual (VirtIO-GPU) implementada sobre la API gráfica Vulkan. Venus es similar al controlador VirGL, que estaba disponible previamente y se basaba en la API OpenGL, y también permite proporcionar a cada sistema huésped una GPU virtual para el renderizado 3D, sin abrir acceso directo exclusivo al GPU físico. El código de Venus ya está incluido en Mesa y se entrega a partir de la versión 21.1.
El controlador Venus define el protocolo Virtio-GPU para la serialización de comandos de la API gráfica Vulkan. Para el dibujo en los sistemas huéspedes, se utiliza la biblioteca virglrenderer, que asegura la transducción de comandos de los controladores Venus y VirGL a comandos de Vulkan y OpenGL. Para interactuar con el GPU físico en el sistema host, se pueden utilizar controladores Vulkan ANV (Intel) o RADV (AMD) incluidos en Mesa.
La nota incluye una guía detallada sobre el uso de Venus en sistemas de virtualización basados en QEMU y KVM. Para funcionar en el lado del host, se requiere un núcleo de Linux 5.16-rc con soporte para /dev/udmabuf (compilación con la opción CONFIG_UDMABUF), así como ramas separadas de virglrenderer (rama res-sharing) y QEMU (rama venus-dev). En el lado del sistema huésped, se necesita un núcleo de Linux 5.16-rc y el paquete Mesa 21.1+, compilado con la opción “-Dvulkan-drivers=virtio-experimental”.

Fuente: opennet.ru
