← На главную

NetBSD получит Vulkan: бета-порт Mesa/Lavapipe, без загрузчика никуда

02.07.2026 18:36 · hackernews

NetBSD остаётся последней из крупных BSD-систем без поддержки Vulkan — но это скоро изменится. Разработчик под ником segaboy довёл портирование программного стека Vulkan (Mesa / Lavapipe) до бета-статуса. Сборка, установка и регистрация драйвера Lavapipe на NetBSD 10.1 amd64 с LLVM 19.1.7 уже работают.

Драйвер (libvulkan_lvp.so, около 17 МБ) устанавливается в /usr/pkg/lib, а его ICD-манифест, сообщающий о поддержке Vulkan API 1.4, — в /usr/pkg/share/vulkan/icd.d/. Vulkan-загрузчик в системе может его обнаружить. ldd показывает чистую цепочку зависимостей без ошибок. Весь процесс — от настройки окружения до финальной установки — полностью автоматизирован и воспроизводим на чистой системе.

Скоро появятся готовые бинарники. Инструменты для сборки, снятия отпечатка и публикации артефактов уже готовы. Скрипты умеют загружать и устанавливать готовую сборку вместо компиляции из исходников. Как только появится билд-машина, установка драйвера сведётся к простому скачиванию вместо многочасовой компиляции.

Важное ограничение: пока не работает рантайм. Проект собирает и устанавливает именно драйвер (ICD). Чтобы запускать Vulkan-программы, нужен ещё загрузчик (libvulkan.so.1) — его добавление следующая цель. Фактический запуск приложений пока не проверен.

Временная заглушка осталась: сборка применяет -Wno-error=format, чтобы обойти ошибку GCC на спецификаторе %m под NetBSD. Планируется корректный фикс через strerror(errno). Документация и скрипты будут меняться по мере добавления загрузчика и пайплайна релизов.

Всё заточено на свежую минимальную установку NetBSD 10.1 (amd64) в VirtualBox. ГП-ускорение под VirtualBox недоступно, но цель — программный рендеринг через Lavapipe. Репозиторий содержит скрипты setup-env.sh, build-glslang.sh, build-mesa.sh, install-mesa.sh и другие. Если сборка прервалась — достаточно перезапустить тот же скрипт, он подхватит уже сделанное.

Проект ещё сырой, документация ведётся как полевые записи — с описанием того, что реально сработало, а что нет. Оригинальная работа выпущена под MIT-лицензией. Сторонние компоненты (Mesa, glslang, LLVM) остаются под своими лицензиями — при распространении бинарников нужно сохранять их атрибуцию.

Читать оригинал →