The Linux kernel’s aging tdfxfb framebuffer driver is getting its most useful update in years: it can now bring an uninitialized 3dfx Voodoo 3 to life by itself. A five-patch series posted to the mailing lists by developer Daniel Palmer adds code that boots an “unbooted” Voodoo card using the configuration table stored in the card’s own video BIOS, and the framebuffer updates carrying that work were submitted and merged for the upcoming Linux 7.3 kernel according to Phoronix.
The limitation tdfxfb always carried is easy to describe. The driver assumed the system firmware had already executed the card’s video BIOS during power-on self test, which is a safe assumption on a conventional x86 PC where the firmware initializes every add-in card before the operating system starts. It breaks on machines where that never happens. Palmer’s cover letter names three cases: proper non-x86 computers, systems where another graphics card is the primary display, and newer BIOSes that cannot run legacy video BIOS code. In each setup the driver probed the PCI device happily while the monitor sat on a “no signal detected” screen.
An Amiga, a PCI bridge, and a QEMU detour
Palmer ran into the problem in the wild: a Voodoo 3 installed in an Amiga 4000 fitted with a Mediator PCI bridge. Linux could see the card, but nothing had switched the VGA core on. The merged series fixes that in 151 added lines inside drivers/video/fbdev/tdfxfb.c, spread over five patches: a helper to read the config table from the video BIOS, detection of whether the card was booted at all, manual booting of unbooted cards, waking the VGA core before programming the CRTC, and programming the initial video mode.
The debugging story is its own slice of 2026. Palmer’s cover letter notes the work was partially assisted by Claude Fable 5: after months of not understanding why his initialization sequence failed, he asked the model to build a Voodoo 3 emulation for QEMU so he could compare the BIOS behavior against his code. The comparison showed the sequence matched the BIOS but the VGA core was simply not running, which became the wake-the-core patch. The code has been tested on a real Voodoo 3 in an x86-64 board as well as the Amiga 4000 with its Mediator bridge. Support for the VSA-100-based Voodoo 4 and 5 was initially noted but dropped from the series because those cards lay out their BIOS tables differently.
A console today, Quake next door
Nobody should mistake this for a modern GPU driver. What the change delivers is a working Linux framebuffer device, typically /dev/fb0, driven by the Voodoo 3 even when firmware ignored it: enough for the virtual console and for applications that draw straight to the framebuffer. There is no Mesa stack, no modern OpenGL, and no accelerated Wayland; the kernel long ago moved mainstream graphics to DRM/KMS, and fbdev remains a legacy interface. That puts this a very long way from the cards in our best budget GPU picks, where a few hundred dollars buys a display engine with thousands of shader cores and dedicated AI hardware of the kind we compared in our NPU vs GPU vs CPU guide.
The more interesting work sits alongside the framebuffer series. Palmer is building an experimental 3D path that exposes the Voodoo’s register space to userspace through a new /dev/tdfx3d misc device, with a small library called smoltdfx driving the card and a compact OpenGL 1.x implementation, smolminigl, running on top. Per his notes and coverage of the project, the stack renders through the card’s registers without X, Mesa, or Glide, and it can already run Quake on real Voodoo 3 hardware, though performance is modest and multitexturing issues remain. The QEMU emulation doubles as a test harness, with frame digests compared between emulated and physical cards until behavior matches.
There is also a plausible retro-computing payoff. A Voodoo 3 that Linux can initialize is a candidate for PCI passthrough to a virtual machine, letting a Windows 98 or DOS guest talk to period-correct 3dfx silicon directly, although the engineering details around resetting such old hardware are unsolved. Cards like this one keep circulating through attics and listings, as we covered in our look at the booming second-hand hardware market. The framebuffer changes ship whenever Linux 7.3 lands; the 3D rendering interface remains separate experimental work outside the merged series.