1. About
2. How it works?
3. Supported APIs and Upscalers
4. Installation
5. Known Issues
6. Compilation and Credits
7. Wiki
Important
This is an unofficial experimental fork of wilsjo2/OptiScaler-DLSSNR-PreSR-Multipass. It adds an AMD HIP backend for running DLSS Neural Rendering before the selected super-resolution implementation. It is not an official OptiScaler release.
The AMD path is functional on the tested configuration:
- Windows 10
- AMD Radeon RX 9070 XT
- AMD ROCm/HIP 7.1
- DirectX 12
- Forza Horizon 6
- one pre-SR neural pass
- DLSS input with an OptiScaler output such as FSR 4.1.1 or DLSS
D3D12 command submission, asynchronous retirement, history resets, dynamic NR resolution and recovery from rare HIP watchdog timeouts are implemented. The temporal flicker caused by alternating processed and skipped frames has been fixed.
- A compatible AMD Radeon GPU with a working HIP runtime
- AMD ROCm/HIP 7.1; the backend prefers
%HIP_PATH%\bin\amdhip64_7.dll - A DirectX 12 game exposing the resources required by the OptiScaler NR path
- Compatible AMD neural runtime and model files:
dlssnr_amd_pass1.dlldlssnr_on_amd_weights.bin
The neural runtime DLL and model weights are not distributed by this repository.
- Build
OptiScaler.slnforRelease | x64with Visual Studio 2022. - Copy
x64\Release\OptiScaler.dllbeside the game executable and rename it to the proxy name required by the game, commonlydxgi.dll. - Copy
OptiScaler.ini,dlssnr_amd_pass1.dll,dlssnr_on_amd_weights.binand the requiredOptiScalerruntime directory beside the proxy DLL. - Ensure
HIP_PATHpoints to the installed ROCm directory, for exampleC:\Program Files\AMD\ROCm\7.1. - Open the OptiScaler overlay with Insert, select the desired output upscaler and enable Neural Rendering.
Caution
Do not use injection mods in online or anti-cheat protected games.
[DlssNr]
Enabled=true
RunBeforeSR=true
FinishedPicture=false
DeferredDLSS=false
ResidualAcrossRR=false
Passes=1
WorkingScale=1.0
ToggleKey=117ToggleKey=117 binds F6 for quick NR on/off comparisons. Lowering WorkingScale reduces the neural processing resolution.
- Local Structure is confirmed to work.
- Working Scale is confirmed to change the NR processing resolution.
- Style is fixed by the precompiled AMD kernels and currently has no effect.
- Intensity is visible in the shared UI but is not yet applied by the AMD backend.
- Local Tone appears unsupported by the current AMD runtime.
- Skin Structure has not yet been verified with suitable character content.
- The first activation may briefly stall while the HIP runtime initializes.
- Rare HIP watchdog timeouts can still occur; the backend resets its history and retries automatically.
For diagnostics, enable file logging in OptiScaler.ini:
LogToFile=true
LogLevel=2The main diagnostic files are OptiScaler.log, amd_bridge.log and amd_presr.log.
Clone the repository with all submodules and build OptiScaler.sln using Visual Studio 2022. The Windows SDK, MSVC x64 libraries and Vulkan import library must be available to the linker.
The optional RTX 40 MFG unlock remains separate and is excluded by default.
See the original NR installation notes, controls, implementation notes and credits.
OptiScaler is a tool that lets you replace upscalers in games that already support DLSS2+ / FSR2+ / XeSS (
Caution
- We've been informed about some FAKE websites presenting themselves as OptiScaler team, so we would like to strongly highlight that we DO NOT HAVE an official website!
- We DON'T have an official manager app, so please be careful when downloading or using them! And please don't bother us to provide support for something which isn't even ours!
- Only LEGIT places are this Github, our Discord server and Nitec's NexusMods page.
- OptiScaler is FREE, any kind of monetary requirements are scams!
Tip
For example, if a game has DLSS only, OptiScaler can be used to replace DLSS with XeSS or FSR 3.1 (also works for FSR2-only games, like The Outer Worlds Spacer's Choice, albeit requires manually providing nvngx_dlss.dll).
Key aspects of OptiScaler:
- Enables usage of XeSS, FSR2, FSR3, FSR4
$^2$ (officially, RDNA4 and RDNA3 dGPUs only) and DLSS in (temporal) upscaler-enabled games - Allows users to fine-tune their upscaling experience with a wide range of tweaks and enhancements (RCAS & MAS, Output Scaling, DLSS Presets, Ratio & DRS Overrides etc.)
- Since v0.7.0+, added experimental DX12 frame generation support with possible HUDfix solution (OptiFG)
- Supports Fakenvapi integration - enables Reflex hooking and injecting Anti-Lag 2 (RDNA1+ only), LatencyFlex (LFX) or XeLL - bundled since 0.9
- Since v0.7.7, added support for Nukem's FSR3-FG mod dlssg-to-fsr3, only supports games with native DLSS-FG - bundled since 0.9
- Since v0.7.8, added ASI plugin loading support (disabled by default (
LoadAsiPlugins=in INI), loads from customisable folder, defaultplugins) - New project - OptiPatcher - an ASI Plugin for OptiScaler for enabling DLSS and DLSSG inputs without spoofing in supported games.
- Since v0.7.8, OptiScaler is now automatically applying certain game patches for a better out-of-the-box experience
- Since v0.9.0, separated FG Inputs and Outputs, added XeFG and FSR4-FG support, as well as bundled Fakenvapi and Nukem's FSR3-FG mod
- For a detailed list of all features, check Features
Important
Always check the Wiki Compatibility list for known game issues and workarounds.
Also please check the OptiScaler known issues at the end regarding RTSS compatibility.
A separate FSR4 Compatibility list is available for community-sourced tested games.
[3] For not bundled items, please check Installation.
Note
Click for [1], [2]
[1] For Unreal Engine games, only UE XeSS -> Opti XeSS/FSR4 work
Regarding XeSS inputs, since Unreal Engine plugin does not provide depth, replacing in-game XeSS breaks other upscalers (e.g. Redout 2 as a XeSS-only game), but you can still apply RCAS sharpening to XeSS to reduce blurry visuals.
Regarding FSR inputs, FSR 3.1 is the first version with a fully standardised, forward-looking API and should be fully supported. Since FSR2 and FSR3 support custom interfaces, game support will depend on the developers' implementation. With Unreal Engine games, you might need ini tweaks for FSR inputs.
[2] Regarding FSR4, please check FSR4 Compatibility list for known supported games and general info.
Official Discord Server: OptiScaler
This project is based on PotatoOfDoom's excellent CyberFSR2.
- OptiScaler acts as a middleware, it intercepts upscaler calls from the game (Inputs) and redirects them to the chosen upscaling backend (Output), allowing user to replace one technology with another one. Inputs -> OptiScaler -> Outputs
- Or put more bluntly, Input is the upscaler used in game settings, and Output the one selected in Opti Overlay.
- Same goes for FG options which are separated into FG Input and FG Output.
Note
- Pressing
Insertshould open the Optiscaler Overlay in-game with all of the options (ShortcutKey=can be changed in the INI file, or under Keybinds in the overlay). - Pressing
Page Upshows the performance stats overlay in the top left, and can be cycled between different modes withPage Down(keybinds customisable in the overlay). - If Opti overlay is instantly disappearing after trying Insert a few times, maybe try
Alt + Insert(reported workaround for alternate keyboard layouts).
Currently OptiScaler can be used with DirectX 11, DirectX 12 and Vulkan, but each API has different sets of supported upscalers.
OptiFG currently only supports DX12 and is explained in a separate paragraph.
- XeSS (Default)
- FSR 2.1.2, 2.2.1
- FSR 3.X (and FSR 2.3.X)
- FSR 4.X (via FSR 3.X/4, officially RDNA4 and RDNA3 dGPUs only)
- DLSS
- FSR 2.2.1 (Default, native DX11)
- FSR 3.1.2 (unofficial port to native DX11)
- DLSS (native DX11)
- XeSS 2.X (native DX11, Intel ARC only)
- XeSS, FSR 2.1.2, 2.2.1, FSR 3.X w/Dx12 (via D3D11on12)
$^1$ - FSR 4.X (via FSR 3.X/4 w/Dx12 interop, officially RDNA4 and RDNA3 dGPUs only)
Note
Expand for [1]
[1] These implementations use a background DirectX12 device to be able to use DX12-only upscalers. There's a performance penalty up to 10-ish % for this method, but allows many more upscaler options. Also native DX11 implementation of FSR 2.2.1 is a backport from Unity renderer and has its own problems of which some were fixed by OptiScaler.
- FSR 4.X (via FSR 3.X/4 w/Dx12 interop, officially RDNA4 and RDNA3 dGPUs only)
- FSR2 2.1.2 (Default), 2.2.1
- FSR3 3.1 (and FSR2 2.3.2)
- DLSS
- XeSS 2.x
OptiFG was added with v0.7 and is only supported in DX12. It's an experimental way of adding FG to games without native Frame Generation, or can also be used as a last case scenario if the native FG is not working properly.
- Currently supports FSR3-FG (requires HUDfix to avoid HUD ghosting), XeFG and FSR4-FG (ML model deals with the HUD, so may or may not require HUDfix).
For more information on OptiFG and how to use it, please check the Wiki page - OptiFG.
Caution
Warning: Do not use this mod with online games. It may trigger anti-cheat software and cause bans!
Important
For installation steps, please check the Wiki
Please check this document for configuration parameters and explanations. If your GPU is not an Nvidia one, check GPU spoofing options (Will be updated)
Note
For a list of known issues, please check the Wiki.
Also worth checking the Compatibility List for possible game issues and their fixes.
- Visual Studio 2022
- Clone this repo with all of its submodules.
- Open the OptiScaler.sln with Visual Studio 2022.
- Build the project
- @PotatoOfDoom for CyberFSR2
- @Artur for DLSS Enabler and helping me implement NVNGX api correctly
- @LukeFZ & @Nukem for their great mods and sharing their knowledge
- @FakeMichau for continous support, testing and feature creep
- @QM for continous testing efforts and helping me to reach games
- @TheRazerMD for continous testing and support
- @Cryio, @krispy, @krisshietala, @Lordubuntu, @scz, @Veeqo for their hard work on (now outdated) compatibility matrix
- And the whole DLSS2FSR community for all their support
This project uses FreeType licensed under the FTL
| Free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation |



