Fixing AMD FSR3 Crashing While Game is Paused UE5.3

Hey all. Noticed that I was among those who were facing the Editor/Game crash issue when switching to AMD FSR3 from any other upscaler while the game is paused.

I made a workaround which I hope will help all those who are looking for it. I’m using 5.3.2. Attaching screenshots as well.

Note → Some pre reqs : My game is also going the same route to handle game pause/resume from inside the Player Controller. I assume you also have a widget that switches to and from AMD FSR3 and another that handles its quality presets. In my case, I have 2 separate Combo String Boxes for this.
In my testing I’ve also found that switching back from FSR3 to any other upscaler is fine and results in no crashing. It’s only one way i.e switching “to” FSR3 when paused.
Also note → This crash does not happen when toggling b/w Frame Gen or adjusting Sharpness. As per reports it was only happening when ENABLING FSR3.

Steps → While switching b/w upscalers, when the code is to switch “to” FSR3, make sure to have a Fn inside your PlayerController (preferably via Interface like how I did it, but you can cast and call a custom event as well).
That Fn/Event needs to have 2 variables as signature. One Bool named “SwitchedToFSR?” and one Integer named “FSR3_Preset”. Call this Fn whenever switching “to” FSR3 and when setting it’s presets.
Then inside your PlayerController, call another custom event that will call 2 Console Commands, one to turn on AMD FSR3 and one to set its quality mode that being

r.FidelityFX.FSR3.Enabled 1

r.FidelityFX.FSR3.QualityMode 0

(Here 0 is Native, 1 is Quality, 2 is Balanced, 3 is Perf and 4 is Ultra Perf)

Make sure to disable other upscalers (you can disable them in the widget itself)

Logic → When your widget switches to FSR3, you call this Fn and set the bool to true, setting a custom var inside PlayerController to True, letting the system know that you want to switch to FSR3.
Then when you change the quality preset, call the Same Fn, set the bool true and set the Integer accordingly, which stores the Integers inside PlayerController. When game is un-paused, the Fn will run 2 commands (conditioned that other upscalers are turned off) and voila ! Your upscaler is now FSR3 without your game crashing (even in the editor !).

Interface Fn (make sure to have this Interface being implemented in PlayerController)

Calling this in PlayerController and saving those variables.

Code inside Widget - When Switching upscalers

Code inside Widget - When Setting Quality presets

Creating that Custom Event in PlayerController → To execute commands using Variables

Finally, calling this custom event on Un-Pause code in your controller.

PS: If you wanna really check for yourself, you can open the ConsoleVariable Window and see how variables are changing state to see if it’s really working.
image

I hope it helps those who were stuck like me. This will surely be helpful till AMD updates their plugin or at-least their documentation with such workarounds telling us it might crash when game is paused.