gitmyhub

vulkan-netbsd

Shell ★ 26 updated 1mo ago

This is my attempt to get Vulkan going on NetBSD.

vulkan-netbsd documents and automates building Mesa's Lavapipe software Vulkan driver so it compiles, installs, and registers on NetBSD.

ShellMesaLLVMNetBSDsetup: hardcomplexity 4/5

vulkan-netbsd is a documentation and scripting project working to bring Vulkan graphics support to NetBSD, an operating system in the BSD family that has never had it before. Vulkan is a graphics standard used by games and other software to talk to a computer's graphics hardware. Rather than shipping a finished driver, this project is a written record of how to build one, plus scripts that automate every step so someone else can repeat the process on their own machine.

The current milestone is getting Mesa's Lavapipe driver, a version of Vulkan that runs entirely on the CPU using LLVM instead of needing a graphics card, to compile, install, and register itself correctly on NetBSD 10.1. The author reports that this driver now builds and installs cleanly and that the system can see it is present. What is not yet working is actually running a Vulkan program, since that also needs a separate piece called the loader, which has not been brought up yet. One small workaround is also still needed to get past a compiler complaint that is specific to NetBSD.

The repository is organized as a set of documents that explain each stage, from setting up the base system through compiling Mesa, alongside shell scripts that perform environment setup, build required dependencies, build Mesa itself, and install the finished driver. Someone starting from a fresh, minimal NetBSD install can download and run these scripts in sequence to reach the same point the author has reached, and the scripts can resume automatically if a build is interrupted.

The project's own scripts and documentation are released under the MIT license, though it also builds and can bundle other software such as Mesa, glslang, and LLVM, each keeping its own separate license terms.

Where it fits