I wrote* a modern Linux driver that supports ultrawide resolutions, higher refresh, and faster performance than the original driver(s) on this cheap HDMI only variant server GPU.
I created it because I wanted my Nvidia GPUs to be compute only, and needed a cheap and small display GPU to run X11. I bought this GPU on AliExpress, after learning it had Linux support. It does, but kernel 5.x series and the sm750 driver in modern Linux only supports the older VGA/DVI variants.
Rather than send it back or throw it away, I decided to vibe code a new driver with new features, to make it usable for day to day desktop use. I've a little bit of a background in low level graphics so also added a cool little magic ordered dither (a pretty good one I think!) I devised myself, called "bbdither", and a few hacks to get 2560x1080 at 75hz on a device only officially documented as capable of up to 1920x1200 at 60hz, and PCI-E 1x speed.
Oh nice. I have a little PCIe/VGA one that I use for truenas and it's a bit flaky but I love that it's basically free from a PCIe perspective (just toss it off _any_ root). These are super useful and there are even m.2 variants.
To be fair, vibe coding is only possible because the models have been trained on the countless open source projects out there. And it could take the original drivers as basis in Linux.
Bit of both. It uses the GPL low-level sm750 chip/DDK code from Linux’s old sm750fb driver, but it's not just that framebuffer driver updated. The DRM/KMS architecture, board specific SiI9024 HDMI support, modes, DMA updates, hardware cursor, ultrawide support and custom dither are new.
Comments
I wrote* a modern Linux driver that supports ultrawide resolutions, higher refresh, and faster performance than the original driver(s) on this cheap HDMI only variant server GPU.
I created it because I wanted my Nvidia GPUs to be compute only, and needed a cheap and small display GPU to run X11. I bought this GPU on AliExpress, after learning it had Linux support. It does, but kernel 5.x series and the sm750 driver in modern Linux only supports the older VGA/DVI variants.
Rather than send it back or throw it away, I decided to vibe code a new driver with new features, to make it usable for day to day desktop use. I've a little bit of a background in low level graphics so also added a cool little magic ordered dither (a pretty good one I think!) I devised myself, called "bbdither", and a few hacks to get 2560x1080 at 75hz on a device only officially documented as capable of up to 1920x1200 at 60hz, and PCI-E 1x speed.
Screenshots here: https://github.com/KodeMunkie/sm750hdmifb#screenshots
If you try it out, be careful - read the project disclaimer :)
*Vibe coded, as mentioned in Hackernews comments here https://news.ycombinator.com/item?id=49415282
Oh nice. I have a little PCIe/VGA one that I use for truenas and it's a bit flaky but I love that it's basically free from a PCIe perspective (just toss it off _any_ root). These are super useful and there are even m.2 variants.
Ah you mean this https://www.pcworld.com/article/393815/the-asrock-rack-m2-vg...
That one is VGA so I think the original upstream driver should support it.
looks cool, and thanks for being upfront about the LLM-assisted part. It seems like a genuine project with a lot of time put into it!
Title fix proposal: Why vibecoding rocks
To be fair, vibe coding is only possible because the models have been trained on the countless open source projects out there. And it could take the original drivers as basis in Linux.
Nice. Is your vibecoded driver from scratch or does it bring the old driver forward ?
Bit of both. It uses the GPL low-level sm750 chip/DDK code from Linux’s old sm750fb driver, but it's not just that framebuffer driver updated. The DRM/KMS architecture, board specific SiI9024 HDMI support, modes, DMA updates, hardware cursor, ultrawide support and custom dither are new.