AMD says FSR 4 doesn't work on old GPUs, but I forced it on anyway

1 week ago 1

AMD's FSR 4 is fantastic, but there's a big problem with it. It's only supported on two — count 'em, two — graphics cards right now. Despite being available in over 65 games, you can only use FSR 4 on AMD's elusive and wildly popular RDNA 4 GPUs like the RX 9070 XT. That's despite the fact that AMD's last-gen RDNA 3 GPUs come with AI accelerators, so they should be able to use FSR 4, right?

AMD says no. Developers say otherwise. A slew of recent community-driven updates focused on getting FSR 4 working on Linux have made it possible to run FSR 4 on older AMD graphics cards. So, ignoring AMD's official support, I went about forcing FSR 4 to work on an RX 7900 XT.

rx-9060-xt-review-13

Related

AMD's FSR 4 beats DLSS 4 in one surprising way

For the first time ever, AMD's FSR 4 can properly compete with DLSS 4.

How (and why) this even works

There's no 'official' support regardless of how you look at it

This isn't some wild hack for FSR 4, at least when looking at AMD's RDNA 3 GPUs. Cards like the RX 7900 XT, which I used here for testing, include dedicated AI accelerators. Earlier AMD GPUs don't. And yet, those RDNA 3 accelerators aren't used for anything. You'd think that AMD would leverage them for its AI-powered FSR 4, but it's still exclusive to RDNA 4 GPUs like the RX 9060 XT. That's because the AI accelerators in RDNA 3 don't support FP8 (8-bit floating point) data, which is what FSR 4 uses.

In order to get FSR 4 to work on RDNA 3 GPUs, there needs to be a way for the AI accelerators to handle FP8 data. And to do that, you need to emulate FP8 with FP16. FP16 has higher precision than FP8, and it's supported in the RDNA 3 architecture. The trade-off with higher precision is that FP16 is more computationally expensive than FP8. Presumably, that's why AMD hasn't added official support for RDNA 3 GPUs yet. The testing here will hopefully show if that extra computational overhead is really that demanding.

asrock-phantom-radeon-rx-7900-xt-render-01

That's actually only half of the puzzle here, though. Handling FP8 and FP16 is something that the GPU driver does, so on Windows, you can't get FSR 4 working on RDNA 3 GPUs, at least right now. Things are different on Linux. AMD develops its Linux drivers on top of Mesa, and the communication between the driver and your hardware is where Mesa lives. Up until recently, Mesa was the reason FSR 4 wouldn't work on Linux. It wasn't supported, and even if it was, there was no way to turn it on without AMD Software, which isn't available on Linux.

Now, Mesa supports FSR 4, and the process I'll walk you through here works with RDNA 4 graphics cards, sans the whole FP8 emulation junk. That's why this even works in the first place. Now that Mesa supports FSR 4, you're able to have RDNA 3 GPUs handle FP8 data as FP16 data. It works on Linux because of Mesa, and it doesn't work on Windows for the exact same reason.

An image showing the AMD Radeon 7900 XTX graphics card installed on a PC.

Related

4 ways AMD can still get RDNA 4 wrong

The RTX 50 series has crashed and burned, but AMD can still fumble this opportunity if they aren't careful.

Git Mesa real good

How to do this yourself

AMD FSR 4 pop-up

The Mesa library is included with nearly any Linux distro, but you can only use FSR 4 with the experimental library, known as Mesa-git. This is the development branch, so expect some issues elsewhere until FSR 4 support is incorporated into the main library. You have a ton of different options for installing Mesa-git, but I'll walk you through how to get it set up on any Arch-based distros using pacman. You can also build it from source by following Mesa's documentation.

Download the package with the following command:

sudo pacman -S mesa-git lib32-mesa-git

Once you have the Mesa-git library, you need an FSR 4 DLL file, which is named amdxcffx64.dll. You can get this file with tools like Optiscaler, or you can extract it from the Windows driver. For the latter method, first run the following command to download the driver:

wget --referer https://support.amd.com https://drivers.amd.com/drivers/amd-software-adrenalin-edition-25.3.2-win10-win11-mar20-rdna.exe

Then, extract the file using 7-Zip with this command:

7z e -r amd-software-adrenalin-edition-25.3.2-win10-win11-mar20-rdna.exe amdxcffx64.dll

Keep the file in a safe spot because you'll need to copy it over to each game where you want to force FSR 4. Before we can do that, though, we need Proton GE 10.4. If you're using an earlier version of Proton GE, or Valve's official Proton, this won't work. Like anything on Linux, there are half a dozen ways to get Proton GE, but the easiest is to use a tool like ProtonUp-Qt. It allows you to install community-made versions of Proton and apply them to games. It's available in the Arch repo, you can build it from source, or you can install the Flatpak version.

Regardless of how you get Proton GE 10.4, you need it. Once you have it, you need to drop the DLL file in the proper folder for your games. Head to your Steam folder, follow compatdata/[game ID]/pfx/drive_c/windows/system32, and copy the FSR 4 DLL into the system32 folder. This will only work for games that already support FSR 3.1. You can find the game ID for the title you want to mod by looking in the properties on Steam, or by searching for the ID on SteamDB.

Almost done. The last thing you need to do is set a launch command for the game you want to inject FSR 4 into on Steam. For RDNA 3 GPUs, this is the command:

DXIL_SPIRV_CONFIG=wmma_rdna3_workaround FSR4_UPGRADE=1 %command%

For RDNA 4 GPUs, the command is slightly different:

DXIL_SPIRV_CONFIG=wmma_fp8_hack FSR4_UPGRADE=1 %command%

And, you're done. The main problem with hacking FSR 4 into games like this is that there's no way to easily confirm that it's working, outside of games that show when FSR 4 is enabled, like Horizon Zero Dawn Remastered. You can also confirm it's working by using a tool like Optiscaler that shows what version of FSR you're using. When it comes to RDNA 3 graphics cards, at least, you should be able to tell pretty easily, though. Although FSR 4 clearly looks better, it doesn't provide a huge performance uplift on RDNA 3 GPUs, and sometimes it's just worse.

ASRock Radeon RX 9070 XT Steel Legend

Related

Here's why I don't miss Nvidia after upgrading to an AMD Radeon RX 9070 XT

I'm finally leaving team Green altogether in favor of AMD's new Radeon RX 9070 XT, and I'm not looking back.

It works — at least technically

Depends how you define "works," though

An image showing an AMD Radeon RX 7900 XTX GPU that's installed on a test bench.

You probably don't want to use FSR 4 on an RDNA 3 GPU. It looks leagues better than FSR 3.1, and I found at least some performance uplift of the RX 7900 XT. But the performance uplift was small in the games I tested, and in the case of Horizon Zero Dawn Remastered, my performance was worse.

The best showing by far was Ratchet and Clank: Rift Apart. At native 4K with the settings maxed out (including ray tracing), my average frame rate was about 47 frames per second (fps). Toggling on FSR 4 to Performance mode — 1080p render resolution — my average jumped up to 61 fps. That's a respectable jump, but I'd normally expect to see somewhere around double the performance in Performance mode when outputting to 4K.

ratchet-fsr-4

But it's hard to argue with the image quality. You can see FSR 4 in Performance mode (right) up against native resolution (left) above, and it's next to impossible to tell the difference between them. There are some minor details, like the soft blue glow far back in the scene on the right, where FSR 4 loses separation, but you'd never see that in gameplay.

tlou-fsr-4

Similarly, in The Last of Us Part One, FSR 4 matched native resolution across the scene. The main difference between the two comes in the bars on the right. With FSR 4, I think they look better, even. It looks like the game's built-in TAA washes out the details on the bars as they disappear into the bushes, but FSR 4 doesn't. That's not surprising, either. For years, we've seen how turning DLSS on can produce a better image in some scenes simply due to better TAA. Unfortunately, you're not getting a performance uplift here. I went from somewhere around 43 fps at native 4K to around 47 fps with FSR 4 in Performance mode.

Finally, we have Horizon Zero Dawn Remastered, which was a complete failure in both image quality and performance. Turning on FSR 4 actually lowered my performance versus running the game at native 4K. At native resolution, I averaged about 83 fps, while with FSR 4 in Performance mode, that dropped to 67 fps. Clearly FSR 4, running on RDNA 3, and running on Linux, is broken in Horizon Zero Dawn Remastered. Shocker, I know.

2561580_3

If you need evidence that it's broken, just look at the image above. The ghosting with FSR 4.0.0 — you can use FSR 4.0.1, as well, which apparently fixes some ghosting issues — was horrendous. This screenshot sells short just how bad it was. There was a constant smear across any tiny element that moved on screen.

ASRock Radeon RX 9070 Steel Legend

Related

There's a reason RDNA 3 isn't supported

Although there are some games where FSR 4 works, providing both image quality and performance improvements, I understand why AMD isn't supporting its older architectures, at least right now. It can work in some games, but I understand why AMD doesn't want to pick up the validation work of combing through FSR 4 games to see which ones actually provide a benefit on RDNA 3. It's not just a matter of trying one game on one graphics card. AMD needs to validate that it works across hundreds of system configurations and settings. And is all that work really worth it to come out the other side with a handful of games that work on RDNA 3 with a marginal performance uplift? Probably not.

The time of AMD's developers is much better spent finding a more direct way to support FSR 4 on RDNA 3 GPUs with FP16. I suspect if AMD wants to support older architectures with FSR 4 in the future, it'll likely come in a package similar to Intel's XeSS. Instead of locking out GPUs full-stop, AMD might build in additional versions of FSR that will run if FP8 data isn't supported by the architecture.

Still, it's promising to see progress on FSR 4 support when it comes to Linux, and if nothing else, going through the hassle on an RDNA 3 GPU proves that FSR 4 is possible on AMD's older hardware. It's still early days, though, and it's up to AMD to show if FSR 4 is practical on RDNA 3 GPUs. Right now, I wouldn't say it is.

Read Entire Article