Rip and Tear the Framebuffer: Doom fans and coding enthusiasts can’t stop putting id Software’s FPS on every computing platform or tech-related commodity known to mankind. The latest port, however, targets a very PC-specific hardware component. While it “runs” like an impressive display of software prowess, it serves no real practical purpose.
The list of Doom ports on Wikipedia should now be updated with a brand-new entry. The recently unveiled doomgpu project aims to run the forefather of modern shooters “almost” entirely on the GPU, requiring a somewhat complex software setup and a Linux operating system to get the job done.
Joseph Huber, the developer behind doomgpu, successfully implemented a working copy of the original Doom for DOS on his AMD GPU using the LLVM C library for GPUs and the doomgeneric interface. The LLVM technology acts as a “middle layer” between source code and pure assembly code, producing a common intermediate representation that can be ported and optimized for different processor architectures.
Furthermore, doomgeneric’s purpose is to make Doom porting even easier than it traditionally is. The PC DOS FPS released by id Software in 1993 has repeatedly demonstrated its ability to be ported essentially everywhere, especially after id released the official source code under a non-commercial license in 1997. Thanks to doomgeneric, a resourceful developer can create a brand-new port using just a few functions.
Huber explained how he achieved his goal on the official doomgpu GitHub page. The port requires a Linux operating system, an AMD GPU with support for the ROCm open software stack, SDL2 libraries, a ROCm or ROCR-Runtime installation, and an LLVM build derived from the project’s main branch, such as LLVM20.
Doomgpu makes nearly all of the game’s code run on the GPU instead of the CPU, Huber states, with the SDL2 interface managing the functions needed to capture input keys and write to the output framebuffer. While Doom doesn’t run “entirely” on the GPU, the developer concedes that all the logic and rendering routines do.
Doomgpu was tested on an Arch Linux installation with kernel version 6.10.5, an AMD Radeon RX 6950 XT GPU, and ROCm version 6.0. The project should also work on Nvidia GPUs, thanks to LLVM’s capabilities and the NVPTX backend.
A GPU’s framebuffer isn’t the strangest place Doom has been recently ported to, with quantum computers, holographic displays, and generative AI models contending for the top spots in the “weird” Doom porting category. Meanwhile, Bethesda and id Software are now working on a brand-new Doom experience known as Doom: The Dark Ages.