Das Unternehmen Collabora hat den Venus-Treiber vorgestellt, der eine virtuelle GPU (VirtIO-GPU) bietet, die auf der Grafik-API Vulkan basiert. Venus erinnert an den zuvor verfügbaren VirGL-Treiber, der auf der OpenGL-API basiert, und ermöglicht es ebenfalls, jedem Gast-System eine virtuelle GPU für das 3D-Rendering bereitzustellen, ohne exklusiven direkten Zugriff auf die physische GPU zu gewähren. Der Venus-Code ist bereits Bestandteil von Mesa und wird mit der Version 21.1 ausgeliefert.
Der Venus-Treiber definiert das Virtio-GPU-Protokoll zur Serialisierung von Befehlen der Grafik-API Vulkan. Für das Rendering auf der Seite der Gast-Systeme wird die Bibliothek virglrenderer verwendet, die die Übersetzung von Befehlen aus den Treibern Venus und VirGL in Vulkan- und OpenGL-Befehle ermöglicht. Zur Interaktion mit der physischen GPU auf der Seite der Host-Systeme können die Vulkan-Treiber ANV (Intel) oder RADV (AMD) aus Mesa verwendet werden.
In der Notiz finden Sie eine ausführliche Anleitung zur Verwendung von Venus in Virtualisierungssystemen auf Basis von QEMU und KVM. Für den Betrieb auf der Host-Seite ist ein Linux-Kernel 5.16-rc mit Unterstützung für /dev/udmabuf (Build mit der Option CONFIG_UDMABUF) erforderlich, sowie separate Branches von virglrenderer (Branch res-sharing) und QEMU (Branch venus-dev). Auf der Gast-System-Seite muss ein Linux-Kernel 5.16-rc sowie das Paket Mesa 21.1+ vorhanden sein, das mit der Option „-Dvulkan-drivers=virtio-experimental“ kompiliert wurde.

Quelle: opennet.ru
