The project's README from github.com/wilsjo2/OptiScaler-DLSSNR-PreSR-Multipass. As one markdown file: README.md.
[!IMPORTANT] This is an experimental fork of Dagherbou/OptiScaler_DLSSNR, based on commit
97376162(v0.2.0-dlssnr/v0.2.0-patch1). It is not the main OptiScaler project and is not supported by NVIDIA or game developers.
The upstream fork already provided experimental direct access to NVIDIA DLSS Neural Rendering. This fork adds:
Passes=1..3 is the normal range; optional UnlockPasses=true lifts the ceiling to 30. Each pass has independent persistent history; the final result is composed once against the original base image. High counts can exhaust VRAM or trigger a driver timeout.standard, natural, or cinematic) without loading competing model DLLs. Advanced preset hints have an unverified visual effect.RunBeforeSR and Passes are exposed in both configuration and the OptiScaler overlay.RunBeforeSR runs NR before either upscaler when enabled,
and afterward when disabled. Both share WorkingScale, Passes and per-pass controls.
NR history resets when switching between SR and RR. Pre-RR visual quality remains experimental.bg3_dx11.exe D3D11-to-D3D12 bridge with two neural passes at 1920x1080 followed by DLSS Super Resolution to 3840x2160.Downloads:
Latest release - v0.7.6 - Safer RR/bridge routing, opt-in residual-across-RR and RTX 20/30 MFG integration, and simpler hybrid status with verified kernel packaging. Release notes.
Previous release - v0.7.3 - KCD2 presentation fixes, corrected NR motion-vector metadata, two model options, and the Streamline 2.14.1 downloader. See KCD2 setup.
FP8 / NVFP4 hybrid update � v0.7.1 � attempt at NVFP4 hybrid. VERY minor improvements on Blackwell. Removes async NR and fixes Streamline override startup crashes.
Earlier experimental package — v0.7.0 Vulkan/NR preview — complete rebuilt package with native Vulkan pre-SR/multipass, selected compatibility fixes, and optional D3D12 residual experiments. New options are off by default. Read the scope and validation limits.
Previous release / rollback — v0.6.2 — rebuilt complete package including janblade's window-sized swapchain fix and the reviewed DirectComposition hook, plus the previous padded pre-SR and skin/MFG changes. Build and native API smoke-tested; in-game validation of the new hooks is pending. NVIDIA NR/FG runtimes are not bundled.
Per-pass controls preview — reorganized pass sections and independent model strengths, including the RR controls. Runtime validation is pending.
Native RR controls preview — compiled experimental build with independent NR-after-RR controls. In-game RR/NR validation is pending.
Portable cross-generation package — the complete installer and backend layout, with game-neutral defaults and RTX 20/30/40/50 runtime guidance.
The earlier general-per-pass-profiles-facc24f6 and bg3-presr-multipass-e16d5866 packages are retained only as historical validation artifacts. They are incomplete for a clean installation and should not be redistributed.
NVIDIA's proprietary nvngx_dlssnr.dll is required but is not redistributed here.
The NVIDIA Streamline/FG DLLs are not hosted in this repo or uploaded with this change. The DLSS runtime has separate redistribution conditions; the Streamline source licence does not cover the whole DLL set. See the licence review and official sources.
Get the files from NVIDIA's Streamline 2.14.1 release (official SDK ZIP). Our helper downloads that exact ZIP and verifies its checksum, all six DLL hashes and NVIDIA signatures.
Install a complete OptiScaler release first. The v0.6.1 release includes this helper; v0.5 and earlier do not.
If your release lacks the helper, download this repo's source ZIP
and extract it into a separate working folder, not over the game. Open PowerShell in the
folder containing get_streamline.ps1 and redist (the installed release folder if already present).
Close the game, back up its OptiScaler setup, read the linked NVIDIA licences, then run the following command with your game's real executable directory in place of the example:
.\get_streamline.ps1 -Destination 'D:\Path\To\Game\OptiScaler\streamline' -AcceptNvidiaLicenses
Follow the FG setup instructions. Downloading the DLLs does not enable FG or unlock RTX 40 MFG. Existing different DLLs are never overwritten. Do not replace a game's working native Streamline stack.
Prefer manual installation? The manual download instructions list the exact production files and their destination. The source ZIP is not a compiled OptiScaler release. This supplies dependencies, not a guarantee of injected FG compatibility in every game.
Included in the v0.7.0 preview: Generate before SR, apply after SR (DLSS) runs NR on a private render-size copy, upscales its signed contribution through a separate NVIDIA DLSS feature and applies it to the clean upscaled frame. Setup, encoding and validation limits. This remains experimental; see the linked notes for test coverage and game-specific limitations.
v0.6.2 incorporates janblade's NBA 2K26 window-sized swapchain fix, diagnostic logging and a reviewed DirectComposition hook. Review and validation. These changes are included in the v0.6.2 ZIP; the historical v0.6.1 ZIP is unchanged.
Padded pre-SR colour inputs, including the reported 2558x1439-in-2560x1440 case, no longer fall back to 4K NR merely because the allocation is larger. Details and testing.
Optional skin-colour protection with separate skin/environment lighting and colour controls. This is a colour-based filter, not a face detector. The model's AutoMask remains a separate control.
An External frame generation / MFG unlocker mode that leaves Streamline and Reflex to the game or external mod. RTX 40 unlocker instructions and optional pinned source build.
The retail Onimusha executable gets the same engine-state workaround as the demo. NR model creation is now inside the graphics-state restore envelope as well as evaluation.
See what changed, limitations and tests. These changes are not in the older v0.5 download listed above. v0.7.0 also includes an experimental built-in Ada unlock and an optional 30-pass limit, both off by default; instructions and caveats. Do not combine the built-in and external unlockers.
Issue #3 is not fixed in v0.7.0. The DLSS HDR override can also change NR's colour-space interpretation without converting the underlying colour buffer. This is a plausible cause of the reported purple halos, not a confirmed game-specific diagnosis. The original brightness flicker still needs exposure/format investigation. The reporter says switching dynamic resolution to fixed did not help. Please include the INI, log, game/driver versions and an NR-off comparison in further reports; do not treat disabling HDR as a general fix. No unverified HDR-decoupling change is included in this release.
The Neural Rendering network can run on RTX 20, 30, 40, and 50-series GPUs, but not with the same runtime binary on every architecture:
| GPU | Required nvngx_dlssnr.dll 310.8 runtime |
SHA-256 |
|---|---|---|
| RTX 50 | Original NVIDIA-signed runtime | E16BCF15E16E13F527491CDF7845B2FE6521A738D8F7C9C721866A8496E1FC8E |
| RTX 20 / 30 / 40 | ShortFuse cross-generation compatibility runtime from the pinned RenoDX thread | E67DEE209320CDAFE0E93E45675D7AA34323A53ACC57A72B2E40A181581C989A |
The compatibility runtime preserves the model but replaces or backports GPU programs that the older architectures cannot execute: the RTX 20/30 path is predominantly FP16, while the RTX 40 path backports Blackwell-only operations. It is a modified NVIDIA-derived binary, so its original NVIDIA Authenticode signature no longer validates. Obtain it only from ShortFuse's pinned RenoDX thread and verify the hash above. Do not use random DLL mirrors. Driver 616.56 or newer is required.
OptiScaler and Licenses directories with the DLLs; copying OptiScaler.dll alone will not work.nvngx_dlssnr.dll from the table above to that same directory and verify
its SHA-256. Both it and this package's differently named nvngx.dll_dlssnr.dll must be present.setup_windows.bat from that directory. Choose dxgi.dll first unless the game or another
loader already uses that name, and answer NVIDIA when prompted. The script renames
OptiScaler.dll to the selected loadable proxy and confirms which Neural Rendering runtime it found.[ProcessFilter] TargetProcessName=auto for a portable installation. Start the game, enter a
rendered scene, press Insert, and enable DLSS Neural Rendering. Start with one pass.RunBeforeSR=true and select DLSS in the game. At 3840x2160 output,
DLSS Performance supplies a 1920x1080 input to the model before Super Resolution.If no menu or OptiScaler.log appears, the proxy did not load: re-check the executable directory,
proxy filename, antivirus quarantine, and conflicts with an existing loader. Do not copy an INI whose
TargetProcessName names a different game; that deliberately activates pass-through mode.
Read INSTALL-DLSSNR.md for the full instructions, per-game paths, loader notes, configuration example, and diagnostics.
Implementation details and safety invariants are documented in the pre-SR multipass design note. The remainder of this README is the upstream OptiScaler documentation.
The implementation contains no BG3-specific executable names, offsets, or shaders. It is designed for 64-bit games whose DLSS Super Resolution call reaches OptiScaler's Direct3D 12 path, including its Direct3D 11/Vulkan-to-DX12 bridges. It has also run in Hogwarts Legacy and Cyberpunk 2077. Compatibility still depends on the game exposing valid colour, depth, motion-vector, resolution, and command-submission data through its upscaler integration.
Ray Reconstruction follows the same before/after placement control as ordinary SR. v0.7.0 adds native Vulkan pre-SR and multipass NR, including origin-zero padded inputs; v0.6.2 does not contain these additions. Native Vulkan deferred/async residual modes remain unsupported. Vulkan setup, adopted fork changes and validation limits. Games with unusual loaders, multiple swapchains, non-zero colour offsets, invalid render rectangles, anti-cheat, or another dxgi.dll mod may need a different OptiScaler proxy name or will use the guarded post-SR fallback.
1. About
2. How it works?
3. Supported APIs and Upscalers
4. Installation
5. Known Issues
6. Compilation and Credits
7. Wiki
OptiScaler is a tool that lets you replace upscalers in games that already support DLSS2+ / FSR2+ / XeSS ($^1$), as well as manage frame generation in already mentioned games (either by replacing existing FG options or enabling it in DX12 games through experimental OptiFG). It also offers extensive customization options for all users, including those with Nvidia GPUs using DLSS.
[!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:
^2$ (officially, RDNA4 and RDNA3 dGPUs only) and DLSS in (temporal) upscaler-enabled gamesLoadAsiPlugins= in INI), loads from customisable folder, default plugins)[!IMPORTANT] _**Always check the Wiki Compatibility list for known game iss