Найти тему
Games4Linux

Mesa Venus Vulkan Driver обретает гибкость с опциональной поддержкой кросс-устройств для QEMU

Разработчики открытого графического стека продолжают расширять возможности и применимость своих решений. На этот раз команда Mesa сделала еще один важный шаг, сделав функцию кросс-устройства (cross-device) опциональной в своем Venus Vulkan драйвере. Это изменение призвано обеспечить поддержку QEMU для этого драйвера в виртуализированных средах.

Дмитрий Осипенко из Collabora внес запрос на слияние в основную ветвь разработки Mesa, который ослабляет жесткие требования к кросс-устройственной функциональности. Ранее Venus имел обязательное требование поддержки cross-device, что препятствовало его работе под QEMU, поскольку этот гипервизор не поддерживал данную функцию.

Функция cross-device virtio-gpu позволяет делиться буферами dma-host с другими устройствами virtio, такими как virtio-wl или virtio-video. Это востребовано в ChromeOS, но не всегда нужно, если нет общего доступа к dma-buf. Осипенко отметил в патче: "Ослабление требования к функции cross-device, сделав ее опциональной, позволит Venus работать в QEMU."

Драйвер Venus в Mesa реализует протокол VirtIO-GPU для сериализации команд Vulkan и работает с Virglrenderer - виртуализированным GPU, основанным на ядре. Эта функциональность критически важна для запуска и тестирования рабочих нагрузок Vulkan в виртуализированных средах, таких как облачные или локальные виртуальные машины.

Сделав поддержку cross-device необязательной, разработчики Mesa повысили гибкость и совместимость драйвера Venus с различными средами виртуализации. Это решение демонстрирует прагматичный подход к разработке открытого ПО, где ключевые функции могут быть опциональными для обеспечения более широкой области применения.

Данное изменение будет включено в предстоящий квартальный выпуск Mesa 24.2, запланированный на май 2024 года. Пользователи и разработчики, работающие с виртуализированными средами, смогут воспользоваться преимуществами поддержки Venus в QEMU после обновления своих систем.

venus: don't require cross-device: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29040