Home > News > It

FuryGPU - An Open-Source GPU Hardware Built from Scratch by Enthusiasts

Sat, Apr 06 2024 06:46 AM EST

Can someone build a 3D graphics card from scratch? Dylan Barrie wanted to find out the answer and spent four years attempting it. His achievement is a fully functional GPU that theoretically can run legacy gaming software on Windows. ?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F0330%2F9d0bb271j00sb4a1q0018d000hs00c6g.jpg&thumbnail=660x2147483647&quality=80&type=jpg Dylan Barrie is a game developer and hardware enthusiast. Over the past 14 years in the gaming industry, Barrie has primarily focused on software aspects of graphics rendering. However, four years ago, he began dedicating his spare time to developing a custom full-stack GPU.

Barrie describes the process of creating a graphics card from scratch as a hellish ordeal, but after four years of relentless effort, he's finally ready to share his labor of love with the world, as the design work for the add-on card is mostly complete. FuryGPU is a "true hardware GPU" based on the Xilinx Zynq UltraScale+ FPGA. The card utilizes a custom printed circuit board and connects to the host via a PCIe slot.

FuryGPU supports hardware features equivalent to "high-end" graphics cards from the mid-1990s and provides a full software and driver stack for modern Windows versions. The graphics processor can render games from that era at real-time, playable frame rates. Barrie's company will eventually release hardware schematics, software, and drivers under an open-source license.

The DIY hardware creator says he decided to manufacture a graphics processor from scratch because he didn't know the "actual details" of how GPUs work. Given his "extensive familiarity" with the software side of 3D rendering processes, Barrie realized that creating a GPU might be a challenging but feasible personal project.

He spent "countless hours" learning how FPGA chips work and how to build chip designs through hardware description, verification, and implementation language SystemVerilog. Barrie describes designing schematics for the PCIe graphics card as a "daunting task." Writing Windows drivers was perhaps unsurprisingly the most painful task of the project.

Developers wrote a custom graphics API for communication with the GPU and created a Windows kernel driver to manage display and audio signals. FuryGPU can render the original "Quake" (released in 1996) at a "stable" 60 frames per second, which is a real treat for gamers from the '90s.

Barrie plans to write more articles about his GPU-making adventure on his FuryGPU blog, starting from the texture units of the graphics card. He also hopes to optimize his custom build of "Quake" to run even faster.