After doing a bit of research, and some trial and error as well, I finally found a GPU that works well in high resolution on OpenBSD 7.2 — and the upcoming FreeBSD 14.0 as well: the AMD Radeon RX 6700 XT.
There are certainly cheaper GPU’s available — and I only use this for Software Development and not gaming — but I have a large 38" monitor and a smaller vertical one at the side.
So I was looking for a GPU that could do 4K resolution multi-headed and that would allow me to eventually add a 3rd monitor at a later time; you can never really have too much screen space …
Of course, as a Free Software enthusiast and OpenBSD user, having Free and Open Source drivers for my Operating System were an absolute must-have, so I would not even look at any of the NVIDIA cards.
It quickly became apparent that I want a Radeon card — as both FreeBSD as well as OpenBSD share the Linux drivers for them — although the BSDs are several major versions behind the mainstream Linux kernel.
Since OpenBSD 7.2 was released in October and FreeBSD 13.1 in May of 2022, the OpenBSD drivers are actually a bit newer than the FreeBSD ones.
A big problem was that I couldn’t find any decent mapping table between GPU names / model numbers and their actual Device IDs as they were used in the kernel.
However, it seemed to me that OpenBSD supported all of the Navi Flounder cards and FreeBSD most of them — with full support coming in the upcoming 14.0 release.
I finally went with the AMD Radeon RX 6700 XT, ordered it online — and it finally arrived yesterday!
According to specs on the manufacturer’s website, this supports HDMI 4K120Hz / 8K60Hz — my monitors only support 4K, but it’s nice in case I eventually upgrade to an 8K screen.
Since I hadn’t installed OpenBSD on this machine yet and was running a dual-boot FreeBSD / Arch Linux on it, I first tried it on FreeBSD — which initially resulted in a big disappointment.
Once I had it installed and booted the system, I had a look at “pciconf -lv” for it’s Device ID:
vgapci0@pci0:3:0:0: class=0x030000 rev=0xc5 hdr=0x00 vendor=0x1002 device=0x73df subvendor=0x148c subdevice=0x2310
vendor = 'Advanced Micro Devices, Inc. [AMD/ATI]'
device = 'Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT]'
class = display
subclass = VGAWith that, we can now look that up in the OpenBSD source code to verify that the card is actually supported. And indeed, it just worked right out of the box!
Since I still had to copy my files over from the FreeBSD installation, I went back and tried to get the GPU working there as well.
After reading some of the drm-kmod source code, I quickly realized that while drm-510-kmod that ships with FreeBSD 13.1 did add support for Navy Flounder cards, mine was not among those.
However, the newer drm-515-kmod — that requires a FreeBSD 14-CURRENT kernel — did list my card’s Device ID — so I started to … well … rebuild the world.
The process of upgrading from FreeBSD 13.1-STABLE to 14.0-CURRENT actually went quite smoothly — the initial build took a bit under an hour — and after building the XF86 drivers and some related packages from the ports collection, my GPU is now working perfectly fine.
$ uname -a
FreeBSD rohan.baulig.is 14.0-CURRENT FreeBSD 14.0-CURRENT #0 main-n261689-ed52baf51bd1: Tue Mar 21 23:32:37 EDT 2023 root@rohan.baulig.is:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64Next step is to copy my /home and /Workstation partitions over to my OpenBSD installation.