close
close

This port of Doom runs (almost) entirely on the GPU

Rip and tear framebuffer: Doom fans and coding enthusiasts alike can’t stop putting id Software’s FPS games on every computer platform or technology-related commodity known to man. However, the latest port is for a PC-specific hardware component. While it “works” as an impressive display of software capabilities, it serves no practical purpose.

The Doom ports list on Wikipedia should now be updated with a brand new entry. The recently unveiled doomgpu project aims to run the ancestor of modern shooters “almost” exclusively on the GPU, requiring a somewhat complex software and Linux operating system configuration to perform.

Joseph Huber, the creator of 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. LLVM technology acts as a “middle layer” between source code and pure assembly code, creating a common intermediate representation that can be ported and optimized for different processor architectures.

Moreover, doomgeneric’s goal is to make porting Doom even easier than traditionally. The PC DOS FPS game released by id Software in 1993 has proven time and time again that it can be ported virtually anywhere, especially after id released its official source code under a non-commercial license in 1997. With doomgeneric, an inventive developer can create a brand-new a port using only 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 open ROCm software stack, SDL2 libraries, an installation of ROCm or ROCR-Runtime, and an LLVM build derived from the main branch of the project, such as LLVM20.

Huber says Doomgpu runs almost all of its game code on the GPU rather than the CPU, and the SDL2 interface manages the functions needed to capture input keys and write to the output framebuffer. While Doom doesn’t run “entirely” on the GPU, the developer admits that all logic and rendering routines work.

Doomgpu was tested on an Arch Linux installation with kernel version 6.10.5, AMD Radeon RX 6950 XT graphics card and ROCm version 6.0. The project should also run on Nvidia GPUs, thanks to the capabilities of LLVM and the NVPTX backend.

The GPU framebuffer isn’t the weirdest place Doom has been ported to lately, as quantum computers, holographic displays, and generative AI models all compete 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.