Vulkan 现在在 NetBSD 上可用
一个将 Vulkan 软件栈(Mesa / Lavapipe)移植到 NetBSD 的努力,并文档化和自动化该过程,以便可以重复和维护。状态:测试版——Lavapipe Vulkan 驱动程序在 NetBSD 上构建、安装和注册。已达到的里程碑:Mesa 在 NetBSD 10.1 amd64 上配置、编译、链接、安装并注册 Lavapipe 软件 Vulkan 驱动程序,针对 LLVM 19.1.7。驱动程序(libvulkan_lvp.so,约 17 MB)安装到 /usr/pkg/lib,ICD 清单(宣传 Vulkan API 1.4)安装到 /usr/pkg/share/vulkan/icd.d/,以便系统上的 Vulkan 加载器可以发现它。ldd 清晰地解决了每个依赖项。整个过程——环境设置、依赖项构建、Mesa 构建和安装——是端到端自动化的,并且可以在全新安装中重现。预构建二进制文件即将推出。构建、指纹和发布预构建工件的工具已经就绪,构建脚本已经知道如何获取和安装匹配的预构建,而不是从源代码构建。一旦构建机发布版本,安装驱动程序将是一个下载,而不是多个小时的构建。这是短期的方向。这个项目还没有什么 (尚未):运行 Vulkan 程序需要加载器。该项目构建和安装 Vulkan 驱动程序(Lavapipe ICD)。实际执行 Vulkan 应用程序还需要 Vulkan 加载器(libvulkan.so.1),这是下一个要引入的组件。因此,运行时执行尚未验证。一个解决方法仍然可用。该构建应用了 -Wno-error=format 以避免 GCC 拒绝在 NetBSD 上使用 Mesa 的 %m 格式说明符。一个合适的上游修复(使用 strerror(errno))正在等待中。随着加载器和发布管道的整合,步骤、脚本和文档将继续变化。目标:NetBSD 目前是唯一没有 Vulkan 支持的主要 BSD。该项目的目标是:在 NetBSD 上构建 Vulkan 软件栈(Mesa 的 Lavapipe 驱动程序,通过 LLVM 在 CPU 上运行并且不需要 GPU)。记录每一步,包括死胡同,以便过程是可重复的。自动化设置,以便通过几个脚本使新机器处于构建就绪状态。最终将所需的修复上游提交(到 Mesa 和 pkgsrc),并提供预构建二进制文件或 pkgsrc 包,以便在 NetBSD 上安装 Vulkan 成为您可以简单安装的东西,而不是从源代码构建。范围和环境:目标操作系统:NetBSD 10.1(amd64),最小 ISO 安装。主机:VirtualBox 虚拟机。构建目标仅为:该目标是 Vulkan 堆栈的编译和链接。在 VirtualBox 中不提供运行时 GPU 加速;软件驱动程序(Lavapipe)是目标。仓库布局:vulkan-netbsd/ ├── docs/ │ ├── 01-environment-setup.md 基础系统 + pkgsrc + 构建依赖 │ ├── 02-source-dependencies.md pkgsrc 中没有的依赖项(从源代码构建) │ ├── 03-mesa-build.md 配置 + 编译 Mesa(Lavapipe);移植说明 │ └── 04-prebuilt-artifacts.md 构建一次 / 重用预构建二进制 └── scripts/ ├── setup-env.sh 自动化环境设置 ├── build-glslang.sh 构建 glslang(Mesa 所需;不在 pkgsrc 中) ├── build-mesa.sh 克隆 + 配置 + 编译 Mesa(Lavapipe) ├── install-mesa.sh 安装构建的驱动程序 + ICD 清单 ├── lib-artifacts.sh 共享:指纹 + 预构建获取助手 └── package-artifacts.sh 将构建的二进制文件打包成发布 tarball。开始使用:在全新、最小的 NetBSD 10.1(amd64)安装中,以 root 身份:cd /root ftp https://raw.githubusercontent.com/segaboy/vulkan-netbsd/main/scripts/setup-env.sh sh setup-env.sh . /root/.profile ftp https://raw.githubusercontent.com/segaboy/vulkan-netbsd/main/scripts/build-glslang.sh sh build-glslang.sh ftp https://raw.githubusercontent.com/segaboy/vulkan-netbsd/main/scripts/build-mesa.sh sh build-mesa.sh --build ftp https://raw.githubusercontent.com/segaboy/vulkan-netbsd/main/scripts/install-mesa.sh sh install-mesa.sh build-mesa.sh --build 克隆、配置和编译 Mesa,生成 Lavapipe Vulkan 驱动程序(libvulkan_lvp.so)。安装脚本随后将该驱动程序及其 ICD 清单安装到 /usr/pkg,并验证注册。如果构建被中断或机器崩溃,请重新运行相同的命令——构建脚本会检测到现有构建并自动恢复。通过这些脚本,可以将全新的最小安装提升到已安装、已注册的 Vulkan 软件驱动程序。有关完整的、注释过的过程和通过 SSH 运行的说明,请参见 docs/01-environment-setup.md。贡献 / 跟进:这是一个个人正在进行中的工作。请期待更新。文档被写作成实际有效(和无效)内容的记录,因此也作为任何尝试相同移植的人的现场笔记。许可证:本仓库中的原始作品——脚本、文档以及这里编写的任何补丁——根据 MIT 许可证发布(参见 LICENSE)。该项目构建、安装和(可选)重新分发第三方。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡