We do often include affiliate links to earn us some pennies. See more here.

DOOM ported to run almost entirely on AMD GPUs

By -

Whatever will they do with DOOM next? A developer at AMD decided to port over classic DOOM to run almost entirely on the GPU. Why? In their own words "Because I can".

From the doomgpu GitHub page:

This is a port of DOOM that runs (almost) entirely on the GPU using the LLVM C library for GPUs based on the doomgeneric interface.

To try it you will need a WAD file (game data). If you don't own the game, shareware version is freely available (doom1.wad).

This implementation works on NVIDIA as well as AMDGPU. To use the NVIDIA implementation perform the same steps but with the nvptx loader and make target.

We've seen DOOM run on basically everything, so why not just a GPU? According to the GitHub page it currently requires a Linux system, an AMDGPU with ROCm support, SDL2 libraries, a ROCm or ROCR-Runtime installation and an LLVM build off of the main branch (LLVM20 as of writing).

How they did it:

The clang compiler can target GPUs directly. We emit a single kernel that calls the 'main' function. Functions that require the operating system are handled through the RPC interface. See my LLVM talk for more information.

This implementation defines the amdgpu-loader utility, which handles launching the main kernel, setting up the SDL2 window interface, and provides functions to get the input keys and write the output framebuffer. Okay, it's not entirely on the GPU, but all the logic and rendering runs on the GPU.

Article taken from GamingOnLinux.com.
Tags: AMD, FPS, Misc, Retro
21 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. You can also follow my personal adventures on Bluesky.
See more from me
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
2 comments

kit89 Oct 3
That's very interesting from a technical perspective - does it have an impact to performance?

I imagine DOOM is very serial in processing, I don't think it can be easily spread across thousands of cores.
Klaas Oct 3
I imagine DOOM is very serial in processing, I don't think it can be easily spread across thousands of cores.
It is completely serial in processing and it is a lot of work to untangle. Just look at the discussions about GZDoom.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register