A fully custom, open source GPU has come out of stealth after four years of development. FuryGPU is the one-man work of gaming software developer Dylan Barrie, who says he put together this extremely complex hardware and software project in his spare time. The FuryGPU is based on a Xilinx FPGA design, and the prototype PCIe graphics card can currently achieve around 44fps in the Quake Timedemo. Work on the FuryGPU began after Barrie was inspired by Ben Eater’s project to build a programmable 8-bit computer from scratch.
As you can see from the images in this article, the FuryGPU looks very similar to a typical PC graphics card from about 20 years ago, modernized by equipping DisplayPort and HDMI outputs. But the project is much more than hardware, and Barrie admits that the most painful aspect of designing this graphics card was creating the Windows drivers.
Hardware, from the manufacturer’s board to the graphics card
Barrie began realizing his dreams of building a GPU from scratch after picking up an Arty Z7 development board with an FPGA package and doing some preliminary development and testing. After that, the project got a boost with the debut of Xilinx Kria System-on-Modules (SoMs), which combine “insanely cheap Zynq UltraScale+ FPGAs with a ton of DSP units and a (comparatively) huge amount of LUTs and FFs, and of particular interest, reinforced PCIe core,” enthused Barrie.
To move from this manufacturer’s board to the FuryGPU PCIe add-in card design we see in 2024, Barrie taught himself the hardware description and verification language SystemVerilog and the KiCAD EDA / electronics CAD software package. He says it took a herculean effort to design the schematics for the 4-lane PCIe FuryGPU we see today, even with the FPGAs embedded in the SoM. Now it’s time to plug FuryGPU into his test rig, write drivers and test games.
Windows drivers and Quake at 60fps
Creating the Windows drivers for the FuryGPU was described by Barrie as the “most painful” aspect of the entire project – despite his day job being on the software side of graphics rendering in the game development industry for the past 14 years.
Initially, the ambition of the makers of FuryGPU was to put together a simple demo of a rotating cube, to demonstrate the operation of the GPU. However, as the project developed, playing the iconic PC game Quake at a possible frame rate became the new goal.
Barrie explains that after preparing Windows drivers, writing a custom graphics API to communicate with the GPU, writing Windows kernel drivers for display and sound, he now has “a fully functional piece of graphics hardware that can play Quake at a solid 60 frames per second.”
We embedded the Barrie Quake Timedemo video recording, demonstrating that the FuryGPU could hit 44fps at this benchmark at 720p about a month ago. The developer says there are clear opportunities to make Quake “much faster,” as he’s seen some obvious bottlenecks to target for optimization efforts.
FuryGPU is set as open-source. “I intend to open source the whole set (PCB schematic/layout, all HDL, Windows WDDM drivers, API runtime drivers, and Quake ported to use the API) at some point, but there are a number of legal issues,” Barrie wrote in a Hacker News post on Wednesday .Since he works in a tangentially related profession, he wants to make sure that none of this work violates his employment contract or license, etc. This same thread includes a lot of additional details about the FuryGPU project for those who are particularly interested.
There is an article on the FuryGPU website dedicated to GPU texture units, for those who want to dive deeper into the architecture.
To conclude our coverage of this (to us) interesting new project, it’s worth explaining the intended scope of the FuryGPU project. Clearly, this is a production project, like a CPU motherboard, but the FuryGPU offers such impressive performance that some might mistake it for a serious new GPU architecture. Barrie makes it clear that this is not the case in the previously linked Hacker News thread (he writes under the moniker PfhorSlayer). “This is a toy,” claimed the manufacturer of FuryGPU. “This will not change the GPU landscape or compete with any commercial players.”
While the FuryGPU (or its descendant) may never make it to our best graphics card rankings, we’ll be following FuryGPU’s development with great interest. Now that the project has gone public, there is a chance that publicity and professional collaborators will speed up already existing plans.