Проблема: Vulkan стал слишком сложным
На конференции XDC 2026 в Торонто Faith Ekstrand из Collaborora представил инициативу по созданию нового фреймворка в составе Mesa. Идея заключается в том, чтобы применить подход Gallium3D, успешно используемый для OpenGL, к Vulkan. По словам разработчика, реализация Vulkan в 2016 году была простой, но к 2026 году API перегружен обратной совместимостью ("backwards compatibility cruft"), что делает разработку драйверов крайне трудоемкой и фрагментированной.
Решение: Архитектура Shiva
Shiva будет служить абстракцией над Vulkan API. Вместо того чтобы каждый драйвер (Nouveau, Panfrost и др.) напрямую взаимодействовал с сырым Vulkan, они будут использовать единый интерфейс Shiva. Это позволит:
- Значительно сократить дублирование кода между драйверами.
- Упростить портирование драйверов на новые языки, в частности на Rust.
- Создать более стабильную базу для разработки, изолируя драйверы от постоянных изменений в спецификации Vulkan.
Планы и сроки реализации
Разработка Shiva начнется в ближайшее время. Первоочередной задачей станет адаптация существующих драйверов Nouveau (для GPU NVIDIA) и Arm Mali Panfrost. Ожидается, что первые практические результаты для пользователей появятся не ранее чем через два года.
Сравнение подходов к разработке драйверов
| Параметр | Текущее состояние (Direct Vulkan) | Предлагаемое (Shiva Framework) |
|---|---|---|
| Взаимодействие с API | Прямой вызов Vulkan функций | Через абстрактный слой Shiva |
| Поддержка OpenGL | Через Gallium3D (устоявшаяся) | Не применимо (фокус на Vulkan) |
| Сложность поддержки | Высокая (фрагментация, легаси) | Сниженная (единая база) |
| Перспективы | Усложнение с каждой версией Vulkan | Готовность к Rust-драйверам |
Полный доклад Faith Ekstrand доступен в виде PDF-презентации и видеозаписи выступления на XDC 2026.
Источник: Phoronix ↗
