A Collabora apresentou o driver Venus, que oferece uma GPU virtual (VirtIO-GPU) implementada com a API gráfica Vulkan. O Venus é semelhante ao driver VirGL, que estava disponível anteriormente, baseado na API OpenGL, e também permite fornecer a cada sistema convidado uma GPU virtual para renderização 3D, sem abrir acesso direto exclusivo à GPU física. O código do Venus já está incluído no Mesa e está disponível a partir da versão 21.1.
O driver Venus define o protocolo Virtio-GPU para serialização de comandos da API gráfica Vulkan. Para a renderização nos sistemas convidados, é utilizada a biblioteca virglrenderer, que realiza a translação de comandos dos drivers Venus e VirGL para comandos Vulkan e OpenGL. Para interação com a GPU física no lado do sistema host, podem ser utilizados os drivers Vulkan ANV (Intel) ou RADV (AMD) da coleção Mesa.
O artigo fornece um guia detalhado sobre o uso do Venus em sistemas de virtualização baseados em QEMU e KVM. Para funcionamento no lado do host, é necessário um kernel Linux 5.16-rc com suporte a /dev/udmabuf (compilação com a opção CONFIG_UDMABUF), além de ramificações separadas de virglrenderer (ramificação res-sharing) e QEMU (ramificação venus-dev). No lado do sistema convidado, é necessário ter um kernel Linux 5.16-rc e o pacote Mesa 21.1+, compilado com a opção "-Dvulkan-drivers=virtio-experimental".

Fonte: opennet.ru
