RadeonSI Gallium3D driver receives critical fixes for EDuke32 and related games on RDNA4 hardware, resolving texture rendering issues that affected Duke Nukem 3D and Ion Fury.
It's fairly rare for the RadeonSI Gallium3D driver to hit OpenGL rendering game bugs these days as besides more games going opting for Vulkan API use, RadeonSI is rather robust and very mature at this stage. Recently though a Linux gamer that upgraded to a Radeon RX 9070 XT RDNA4 graphics card noticed that the open-source EDuke32 Duke Nukem 3D build and its derivatives were failing to render properly with the RadeonSI driver.
A week ago there was a bug report over EDuke32 and its derivatives like Ion Fury were failing to properly render textures/sprites on the RDNA4 graphics card. The vintage games would render fine if falling back to the software rendering rather than OpenGL. Here's some examples of the faulty rendering on RDNA4 with RadeonSI:

It was discovered that the EDuke32 issue dealt with the engine allocating very large textures. Well known RadeonSI developer Marek Olšák of AMD in turn merged a change for using uint16 for coordinates to fix 64K blits and 64K graphics blit support and other fixes. With the latest Mesa code, EDuke32 and titles based on it should be rendering correctly on RDNA4 graphics hardware.
Even if you aren't into Duke Nukem 3D or other such titles, these 64K texture fixes should help other software too on AMD RDNA4. A bug report over disappearing Blender icons, also on RDNA4, appear fixed by these RadeonSI changes too.

For Linux gamers who enjoy classic titles through EDuke32, this fix means Duke Nukem 3D and its enhanced derivatives like Ion Fury can now be enjoyed with proper hardware acceleration on the latest AMD RDNA4 graphics cards. The Radeon RX 9070 XT and other RDNA4 GPUs will now render these classic games as intended, without the texture corruption that previously forced users to rely on software rendering.
The underlying issue was traced to how EDuke32 handles very large texture allocations - specifically textures exceeding 64K in size. The RadeonSI driver's coordinate handling wasn't properly supporting these extreme cases, leading to the rendering failures. Marek Olšák's fix implements proper uint16 coordinate support for 64K blits and related graphics operations, bringing RadeonSI's OpenGL implementation up to par with the demands of these classic game engines.
This isn't just good news for EDuke32 fans. The same fixes that resolved the Duke Nukem 3D rendering issues also appear to have fixed other reported problems on RDNA4 hardware, including disappearing icons in Blender. This demonstrates how fixing a specific game compatibility issue can have broader benefits across the Linux graphics stack.

The RadeonSI driver has been steadily maturing over the years, with most modern games either using Vulkan or working flawlessly with OpenGL. This rare bug surfaced only because EDuke32's texture handling pushed against the limits of what RadeonSI was previously capable of supporting. Now that this edge case has been addressed, the driver should be even more robust for both gaming and professional applications on AMD's latest RDNA4 architecture.
For those running Linux on AMD hardware who enjoy retro gaming through EDuke32, updating to the latest Mesa code will restore proper OpenGL rendering to these classic titles. The fix is already available in Mesa's development branches and should be included in upcoming stable releases, ensuring that Duke Nukem 3D and its spiritual successors can be enjoyed with full hardware acceleration on the latest AMD graphics cards.

Comments
Please log in or register to join the discussion