32 comments

[ 5.3 ms ] story [ 50.8 ms ] thread
There are already Vulkan components in pkgsrc and wip.
Which ones? I'm asking, because I wouldn't have done anything at all if this was pre-existing.
See graphics/MesaLib.
This is a nice project but looks like is either AI written or AI assisted and I haven’t seen mention of that in any of the docs.
(comment deleted)
> Vulkan is now available

looks inside:

> What this is NOT (yet): Running Vulkan programs

Technically, it isn't wrong, if you consider Vulkan the technology rather than the service
isn't Vulkan the api?
'Vulkan' can refer to at least:

- Vulkan as a runtime service: 'the ability' for programs to do Vulkan things

- Vulkan as an API / specification: how programs interact with the service to do those things, or how the service interacts with programs

- Vulkan as a technology: how the API calls are implemented

Generally Vulkan refers to the specification much like how Linux refers to the kernel, but there is still Linux (kernel) vs Linux (syscall ABI) vs Linux (runtime service)

Lavapipe is CPU rendering, it doesn't really prove much. But also, Vulkan on BSDs is totally possible and isn't something esoteric, FreeBSD has it.

> Build goal only: This targets compilation and linkage of the Vulkan stack. Runtime GPU acceleration is not available under VirtualBox; the software driver (Lavapipe) is the target.

I don't understand why this would ever be a problem, even without LLM assistance it's something that sounds like a weekend project?

this is what i would recommend. hoist it over from freebsd. it works well vulkan is fully usable, mesa works nicely. Even seen people playing with CUDA tho i didnt get that workin myself yey.
FreeBSD relies on being able to run the Linux graphics drivers though via a compat layer.
NetBSD uses the Linux graphics drivers too.
I expected this to be official from the title but it doesn’t seem to be.
Installation instructions:

    ftp https://raw.githubusercontent.com/segaboy/vulkan-netbsd/main/scripts/setup-env.sh
       !^^^^^!
That's... a bit unorthodox. FreeBSD has a `fetch`[1] utility for this, I wasn't aware NetBSD puts that in `ftp`[2].

Interesting choice. I wonder what led to it.

[1] https://man.freebsd.org/cgi/man.cgi?fetch

[2] https://man.netbsd.org/ftp.1

Oldest supported machine for NetBSD is VAX 780 from 1978(!!!). One of the first system supporting mmu, 32 bit cpu, virtual memory etc etc

This machine is so slow that it takes a lot of time to generate ssh keys etc. We talking here hours hehe

NetBSD is known to support like 60 architectures - many of them low end embedded systems: so ftp AS A CHOICE (you have other options!) is very smart and easy

I dunno, that feels very BSD to me. Presumably, they had a ftp utility first, and then when somebody wanted to download files over http they looked around and decided that the obvious thing to do was to add it to the existing file transfer/download program. Same as continuing to add functions to ifconfig rather than inventing a new ip tool.
Sure, if those functions added were related to configuring network interfaces, but it would be odd if someone added functions for configuring storage controllers.
Imagine using an ftp program to transfer files.
BitTorrent transfers files, so should a BT client be bolted on too? Typically the Unix philosophy has been do one thing well, not do all the things.
The sticking point is always what "one thing" is. I can certainly see an argument for "download a file over http" (or, for another program, ftp), but I can also see an argument for "download files over the internet". In which case, honestly the only reason I'd even quirk an eyebrow at a BSD's ftp(1) adding bittorrent support is that bittorrent usually means running a daemon that that does feel out of character for it. But even then I wouldn't be that surprised to see it added.
Actually, it's orthodox; and it's fetch that isn't. FreeBSD is actually the odd one out, for having an extra tool for doing the same thing. The ftp tool in all of the BSDs, including FreeBSD, speaks HTTP, and has done since Luke Mewburn did lukemftp (later to be named tnftp) and Theo de Raadt did likewise, both based on the original 4.2BSD ftp, back in the middle 1990s.

* https://cgit.freebsd.org/src/tree/contrib/tnftp/ChangeLog#n1...

* https://cvsweb.netbsd.org/bsdweb.cgi/src/usr.bin/ftp/main.c?...

* https://cvsweb.openbsd.org/log/src/usr.bin/ftp/main.c,v?sort...

Nice! Thank you, that explains it. FreeBSD was my first *BSD and the only one I had long-term contact with, so I unconsciously use it as my "BSD standard". My bad on that :)
I have never had a need for NetBSD, but in case I ever do, I’m glad it’s there. Especially with Linux deprecating old platforms.

This looks like an unofficial effort but hopefully it gets refined and integrated.

NetBSD already has relevant packages officially.
Which packages? I couldn't find what I needed, and that's the whole reason for building all this.
[dead]
That's the start. The idea is to get Vulkan running first. More to follow.
I think both points are valid; that is the sensible way to start, but it's worth noting that the work is early so people don't misunderstand the current state of things.
Didn't modular-xorg, MESA and DRM drivers handle this?
This is 100% AI slop.
The vulkan stack is rather lean (there are still c++ though, valve removed a lot of c++ for less c++, it would have been correct with plain and simple C).

The big chunk is DRM kernel code.

AMD seems to be working on _userland_ hardware command ring buffers, which should makes userland vulkan even simpler. Dunno how they will work around the VMID stuff though.