Voodoo GPUs boot without BIOS after 25 years
In the world of ancient graphics hardware, where 1990s relics meet modern operating systems, a quiet revolution is underway. Linux kernel 7.3 is set to deliver an unexpectedly nostalgic update for the 3dfx Voodoo 3, a card that once dominated the scene and remains a potent symbol of retro computing.
This isn’t about suddenly turning the Voodoo 3 into a cutting-edge graphics powerhouse. Instead, the update focuses on solving a fundamental compatibility roadblock: how can modern Linux correctly initialize this venerable PCI-and-AGP accelerator?
Historically, the tdfxfb framebuffer driver relied on the assumption that the system firmware would execute the card’s video BIOS during boot, providing the necessary initialization. This assumption broke down on unconventional platforms, such as non-x86 systems or newer BIOS setups that refuse to run the old video BIOS. Developers faced the frustrating reality of detecting the card but finding it completely uninitialized—a dead end of no signal detected.
The kernel patch addresses this by changing how the driver initializes the card. It now pulls the necessary configuration directly from the Voodoo 3’s own video BIOS, allowing Linux to bring the VGA core up and establish a working display, regardless of the system firmware’s cooperation. This small change is a massive step in extending support for legacy hardware in diverse environments.
The real excitement, however, lies beyond simple console display. The developers are simultaneously pursuing a much more ambitious goal: bringing 3D functionality back to the Voodoo 3, building a custom graphics stack from the ground up.
This experimental effort involves creating a completely new path for the Voodoo 3. It exposes the card’s register space to userspace via a new device, allowing software to directly program the card’s 3D hardware. This is paired with a lightweight userspace library, smoltdfx, and a small OpenGL 1.x implementation, smolminigl.
To prove this framework works, the team is running rigorous testing. They are comparing results between real Voodoo 3 hardware and QEMU emulation, adjusting the emulator until the behaviors match. This process allows them to run classic 3D software, like Quake, directly against the physical card, exploring the limits of what the old hardware can achieve.
The result is a unique, bottom-up graphics stack: Linux provides the foundational framebuffer access, userspace programs the Voodoo directly via its registers, and a lightweight OpenGL implementation sits on top. It’s a fascinating exercise in reinvention, proving that even hardware over two and a half decades old can be taught new tricks in the context of contemporary operating systems.
This work hints at future possibilities, such as using PCI passthrough to assign a physical Voodoo 3 to a virtual machine, allowing a guest OS to interact directly with the accelerator. The Voodoo 3, once relegated to nostalgia, is now being explored as a unique piece of hardware that can be resurrected and reimagined in the modern computing landscape.