Using FSR To Boost Any Game's Framerate on Linux

By

Ever heard of the little war between AMD and Nvidia regarding upscaling technologies? Nvidia has DLSS (Deep Learning Super Sampling) and AMD has recently released FSR (FidelityFX Super Resolution). These are two very different pieces of technologies:

  • DLSS is a neural network based upscaler, that needs to be trained on each specific game before it can be used. To date there are not so many games that support DLSS. This piece of technology depends on Nvidia’s hardware and therefore only works on RTX cards. It can be used on Linux since the 470.x drivers, but only for native Vulkan renderers. At the time of writing, DLSS does not work when converting DirectX code to Vulkan in Proton, while this is just a matter of time.
  • FSR is game-agnostic, it’s a fancy software upscaler that tries to do the best job it can to upscale a low resolution picture into a one that looks good in higher res. It’s simple to apply per se, but the game devs need to implement it on non-text and non-hud elements in each game’s rendering pipeline so this requires some code modification as well. FSR is GPU agnostic and open source which makes it easier to port and adapt to different uses.

Competition is Gooooood

On Linux, we have an extra opportunity to use FSR, without asking anyone to do anything. Proton already has a full screen hack upscaler included, which prevents Windows games from trying to change the current screen’s resolution. This hack instead uses a software upscaler pretending the resolution change is happening while remaining at the native monitor’s resolution. If an old game uses 800x600 as maximum resolution, the upscaler will fill your 1920x1080 screen by scaling up that tiny picture so that it fits in the larger monitor screen.

Some folks have had the genius idea to simply replace the basic upscaler included in Proton by… AMD’s FSR! It makes it work out of the work on any game that uses Proton with Vulkan - a benefit that Windows gamers can’t get for now!

Of course, this is NOT how you are supposed to use FSR: ideally you want to apply FSR on a picture before the HUD and the post processing is applied, but still, it’s an acceptable usage of the upscaler, and provide massive performance boosts. You can see the video I published earlier today for Max Payne 3 and how much boost I can get from a meager Nvidia GTX 1060 3GB (with 470.x drivers), without much visual information loss (Using Proton-6.13-GE-1).

There’s also the same video on Youtube if you prefer.

In case you can’t watch the video for one reason or another, here is a quick summary of what you can observe:

  • No FSR: At the native 3440x1440 resolution, in that scene we get about 45 FPS
  • With FSR: At the 2560x1080 resolution, same scene, we get about 75 FPS
  • With FSR: At the 1920x800 resolution, same scene, we reach about 90 FPS

It’s pretty hard to distinguish any kind of difference (at least in this scene) between the three versions, especially when things are in motion. If you stop the video and look closely you will find that the one using the lowest resolution (1920x800) with FSR shows a little loss of details in the graphics. Still, pretty impressive overall.

How to Use FSR Pretty Much Everywhere

You need the latest ProtonGE (Proton Glorious Eggroll) build installed on your system (6.13-GE-1 at the time of writing this). If you are not familiar with this, we had a guide on how to install ProtonGE a little while ago.

Afterwards, FSR is not activated by default, you need to include a flag in the Proton launch commands in Steam:

WINE_FULLSCREEN_FSR=1 %command%

I would however strongly recommend you use STL at this stage, since the latest version of STL makes it easy to apply any kind of custom setting to any game and also supports FSR options in the GUI - I personally like to run Gamemode and MangoHud on my games to ensure I have the best performance possible and I can measure how well things are running.

Who Is This For?

In mid 2021, it’s still very hard to get your hands on a good GPU at decent pricing, and technologies like FSR go a long way to improve your game’s framerate without causing much visual loss, especially if you use a high resolution monitor. If you game on 1080p, you won’t get as much benefit as you will probably upscale from 720p and not go much lower than that (upscaling 640x400 would look awful!).

If you game like me in Ultrawide or on 4K, you will surely find FSR a useful tool to have to get the most out of your games without gutting your wallet.

Even more interesting are the possibilities FSR opens up for VR. VR is very framerate sensitive and FSR may go a long way to help reach 90Hz or 120Hz if your hardware was a little stretched.