Penguru Games - UpscalerSwitcher

UpscalerSwitcher Plugin for Unreal Engine

The UpscalerSwitcher plugin provides dynamic control over upscaling methods in Unreal Engine, allowing seamless switching between technologies like FSR (FidelityFX Super Resolution) and DLSS (Deep Learning Super Sampling). It also includes a custom game user settings class to save and load your preferred upscaling method and quality settings for future sessions.

Key Features
  • Dynamic Upscaling Control: Easily enable or disable FSR and DLSS upscaling, giving users the flexibility to switch between different upscaling techniques based on their preferences or hardware capabilities.

  • Runtime Switching: Switch between upscaling methods such as FSR and DLSS during gameplay without restarting the game.

  • Quality Adjustment: Adjust screen percentage and quality settings for each upscaling method

  • Persistent Settings: Automatically save the selected upscaling method and quality preferences to a configuration file, ensuring that your settings are preserved between game sessions.

Important Notes
  • This plugin does not include the DLSS or FSR modules by default. To use the UpscalerSwitcher plugin, you need to download and install the official DLSS and FSR plugins into your Unreal Engine project. These plugins are available from their respective providers (NVIDIA for DLSS and AMD for FSR).

  • Saving Feature: To enable the saving of the upscaling method and quality settings, you must use or inherit from the provided UpscalerGameUserSettings class. This ensures that the settings are saved to a configuration file and persist across game sessions.

Will it be available in 5.6?

It should work fine with 5.6, but I’ll make sure to test it and update the plugin when I have some free time.

Hi. I have DLSS and FSR added to my project in 5.5. I’m using your plugin. I keep getting this message repeatedly during gameplay:

LogDLSS: Error: Another plugin already set FSceneViewFamily::SetTemporalUpscalerInterface()

Can you help me?

Hi! Of course, I’d be happy to help you.
Can you please send me the full log file from when this error occurs? Also, it would be helpful if you can show me how you’re applying the upscaler in your code.

I tried to send all the details to this email address: support@pengurugames.com

Unfortunately, I get a message saying that the mailbox is full.

I sent you a private message.

1 Like

Recipient inbox full

Your message couldn’t be delivered to info@pengurugames.com. Their inbox is full, or it’s getting too much mail right now.

How can I contact you?

I’m not sure why you’re encountering that mailing error it seems to be working fine on my end.
Feel free to contact me directly here or via Discord.
My Discord username is: friqhers

I wrote you in Discord

1 Like

When can we expect the 5.7 UpscalerSwitcher release?

Can you update this for 5.7? Its a great easy to use product.

What about 5.7? Its the last plugin I need to upgrade to 5.7

I get this error [2026.08.17-21.10.05:397][ 58]LogDLSS: Error: Another plugin already set FSceneViewFamily::SetTemporalUpscalerInterface()

Hi! Thanks for reporting — this is a bug on my side and it’s now fixed.

The AMD FSR plugin renamed its console variables in 4.x, so UpscalerSwitcher could no longer turn FSR off when switching to DLSS, and both plugins fought over the upscaler slot. The new version handles either naming.

I’ve uploaded the fix to Fab, should be live in a few days. If you don’t want to wait, hop on the Discord and I’ll send you the build now.

Quick workaround meanwhile: uncheck Project Settings → FSR Upscaling → Enabled while using DLSS.

Hey thank you for this, I really need it for my project its in UE5.7 version, btw your discord invite expired.

Merhaba,

Projem UE 5.3 - Upscaler plugininizi denedim.
FSR fg hiçbir şekilde çalışmıyor. Nvidia FG plugini açıkken her türlü fsr fg’nin önüne geçiyor ve swapchain yapamıyor. Birçok deneme yaptım ama olmadı.

Fsr frame generation tickini kapatmayı denedim olmadı. Game instance event init kısmında da get upscaler game settings>apply settings yapıyorum.

Kısaca nvidia fg plugini açıkken fsr fg asla çalışmıyor.

FSR 3.1
Dlss 8.3

Merhaba,

Sorunu yaşadığınız anda oluşan logları paylaşabilir misiniz?

Bir de GameInstance -> Event Init yerine PostEngineInit kısmında Get Upscaler Game Settings -> Apply Settings yapmanız gerekiyor. Dokümantasyonun en sonunda bunun örneği bulunuyor:

C++ tarafına dokunmak istemiyorsanız, Default GameInstance Class olarak hazır UpscalerGameInstance sınıfını da kullanabilirsiniz.

Bu şekilde de sorun devam ederse logları gönderirseniz inceleyebilirim. Ayrıca Discord sunucusuna katılırsanız daha detaylı yardımcı olabilirim.

Hi there,

Having an issue just with FSR frame gen. Everything else appears to be working as expected including FSR super resolution. Getting this crash whenever FSR Frame Gen is enabled:

[2026.09.17-19.11.38:552][ 99]LogUpscalerUtils: Display: UUpscalerSwitcherUtils::HandSwapchainTo - 'FSRSwapchainProvider' now owns the game's swapchain, so FSR Frame Generation is the one that can run.
[2026.09.17-19.11.38:565][ 99]LogStreamlineAPI: [20-11-38][streamline][info][tid:17528][23s:041ms:339us]dlss_gEntry.cpp:680[slHookSwapChainDestroyed] Destroying swap-chain 0x2518570447936
[2026.09.17-19.11.38:565][ 99]LogStreamlineAPI: [20-11-38][streamline][info][tid:17528][23s:041ms:667us]rsync.cpp:727[flushLocked] RSYNC: Flush.
[2026.09.17-19.11.38:587][ 99]LogStreamlineAPI: [20-11-38][streamline][info][tid:17528][23s:063ms:801us]dxgiSwapchain.cpp:207[Release] Destroyed DXGISwapChain proxy 0x24a667f3280 - native swap-chain 0x24a667f3440 ref count 0
[2026.09.17-19.11.38:666][ 99]LogUpscalerUtils: Display: UUpscalerSwitcherUtils::RebuildGameViewportSwapchain - Rebuilt the window's swapchain at 2560x1440, so it is created again by the provider chosen above. Costs one hitch, and is what lets the frame generation vendor change without restarting the game.
[2026.09.17-19.11.38:666][ 99]LogUpscalerUtils: Display: UUpscalerSwitcherUtils::ApplyFSR - FSR frame generation set to 1
[2026.09.17-19.11.38:675][ 99]LogUpscalerDLSSWrapper: Display: EnableDLSS Function Call success!
[2026.09.17-19.11.38:681][ 99]LogOutputDevice: Warning: 

Script Stack (0 frames) :

[2026.09.17-19.11.38:693][ 99]LogWindows: Error: appError called: Assertion failed: (OldPacked & DeletingBit) == 0 [File:D:\build\++UE5\Sync\Engine\Source\Runtime\RHI\Public\RHIResources.h] [Line: 153] 
Resource is being deleted.

[2026.09.17-19.11.38:693][ 99]LogWindows: Windows GetLastError: The operation completed successfully. (0)
[2026.09.17-19.11.39:051][ 99]LogWindows: Could not start crash report client using ../../../Engine/Binaries/Win64/CrashReportClient-Win64-Debug.exe
[2026.09.17-19.11.39:051][ 99]LogMemory: Platform Memory Stats for Windows
[2026.09.17-19.11.39:051][ 99]LogMemory: Process Physical Memory: 2377.37 MB used, 2599.21 MB peak
[2026.09.17-19.11.39:051][ 99]LogMemory: Process Virtual Memory: 4201.91 MB used, 6211.69 MB peak
[2026.09.17-19.11.39:051][ 99]LogMemory: Physical Memory: 30504.48 MB used,  34954.50 MB free, 65458.98 MB total
[2026.09.17-19.11.39:051][ 99]LogMemory: Virtual Memory: 55493.25 MB used,  35565.73 MB free, 91058.98 MB total
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: Failed to create dialog. The specified resource type cannot be found in the image file. Error: 0x715 (1813)
[2026.09.17-19.11.39:051][ 99]Message dialog closed, result: Ok, title: The UE-ITEM42_9MM Game has crashed and will close, text: Assertion failed: (OldPacked & DeletingBit) == 0 [File:D:\build\++UE5\Sync\Engine\Source\Runtime\RHI\Public\RHIResources.h] [Line: 153] 
Resource is being deleted.



[2026.09.17-19.11.39:051][ 99]LogWindows: Error: === Critical error: ===
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: 
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: Assertion failed: (OldPacked & DeletingBit) == 0 [File:D:\build\++UE5\Sync\Engine\Source\Runtime\RHI\Public\RHIResources.h] [Line: 153] 
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: Resource is being deleted.
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: 
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: 
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff6fc0ee1b8 ITEM42_9MM.exe!FDebug::CheckVerifyFailedImpl2() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff6ff4334d4 ITEM42_9MM.exe!FRHIResource::AddRef() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff705f74ca5 ITEM42_9MM.exe!FFXFrameInterpolation::GetRHIViewport() [D:\WorkFiles\UnrealProjects\ITEM42_9MM\Plugins\FSR\Source\FFXFrameInterpolation\Private\FFXFrameInterpolation.cpp:1326]
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff705f7936f ITEM42_9MM.exe!FFXFrameInterpolation::OnBeginDrawHandler() [D:\WorkFiles\UnrealProjects\ITEM42_9MM\Plugins\FSR\Source\FFXFrameInterpolation\Private\FFXFrameInterpolation.cpp:280]
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff705f737ca ITEM42_9MM.exe!TBaseRawMethodDelegateInstance<0,FFXFrameInterpolation,void __cdecl(void),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [D:\ProgramFiles\EpicGames\UE_5.8\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:497]
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff6fbf073e0 ITEM42_9MM.exe!TMulticastDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::Broadcast() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff6ffd5fa04 ITEM42_9MM.exe!UGameViewportClient::Draw() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff700b1aa29 ITEM42_9MM.exe!FViewport::Draw() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff700dcdbc2 ITEM42_9MM.exe!UEngine::RedrawViewports() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff6ffd21649 ITEM42_9MM.exe!UGameEngine::Tick() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff70404889f ITEM42_9MM.exe!FEngineLoop::Tick() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff70403891c ITEM42_9MM.exe!GuardedMain() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff704038a0a ITEM42_9MM.exe!GuardedMainWrapper() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff70403c5f0 ITEM42_9MM.exe!LaunchWindowsStartup() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff70404b3e4 ITEM42_9MM.exe!WinMain() []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff70a23a20e ITEM42_9MM.exe!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: [Callstack] 0x00007ff896f37384 KERNEL32.DLL!UnknownFunction []
[2026.09.17-19.11.39:051][ 99]LogWindows: Error: 
[2026.09.17-19.11.39:053][ 99]LogExit: Executing StaticShutdownAfterError
[2026.09.17-19.11.39:055][ 99]LogWindows: FPlatformMisc::RequestExit(1, LaunchWindowsStartup.ExceptionHandler)
[2026.09.17-19.11.39:055][ 99]LogWindows: FPlatformMisc::RequestExitWithStatus(1, 3, LaunchWindowsStartup.ExceptionHandler)
[2026.09.17-19.11.39:055][ 99]LogCore: Engine exit requested (reason: Win RequestExit)

Any idea why this is the case?

Also the discord link both on the product page on Fab and here in the forum thread has expired again.

Thanks!

Regan

EDIT:

Attempted this with runtime switching disabled and getting the same error when I restart with the FSR FG enabled. Everything else, DLSS-SR, DLSS-FG, FSR-SR working perfectly.