27.01.2022

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».


Источник.