Releases: Dagherbou/OptiScaler_DLSSNR
Release list
OptiScaler + DLSS Neural Rendering v0.1.1.5-dlssnr
OptiScaler + DLSS Neural Rendering v0.1.1.5-dlssnr (no longer experimental)
OptiScaler with an extra pass: NVIDIA's Neural Rendering model (dlss5), run over the upscaler's output to
synthesise detail. NVIDIA ships no public integration for it, so it is driven directly. Nothing here
is officially supported and none of it is documented by NVIDIA.
The headline change is a fix for games with bindless engines (007 First Light, Monster Hunter Wilds, Dragon's Dogma 2, Resident Evil Requiem, Pragmata) that used to have the whole game crash when Neural Rendering was on. See the changelog for the
full list. Be aware that I have not tried the patch on all of these games, i have only personally tested Pragmata which is why i set it as experimental (i have been getting multiple user reports of other games being fixed, so I elevated it to Latest). I am waiting on your feedback !
What you need
- An RTX 50 series card. The model does not run on anything older. I am aware of DLLs compiled for older GPUs but I have not tested them personally.
- A driver new enough to ship nvngx_dlssnr.dll. Minimum of 616.56.
- A game that already uses DLSS. Vulkan and DX11 support has been added but through OptiScaler's bridge. Although it makes DX and Vulkan viable, it comes with certain caveats I will detail below.
- nvngx_dlssnr.dll, supplied by you. See below.
Install
- Extract everything into the game folder, so the one with the game's .exe. It's not always the root folder.
- Run setup_windows.bat and answer its questions. It renames OptiScaler.dll to whatever the game will load and writes an uninstaller.
- Put nvngx_dlssnr.dll in that same folder.
- Launch, open the OptiScaler overlay, and enable Neural Rendering.
You can also bind a key to it, under Keybinds, "Neural Rendering". It is unbound by default. That
lets you flick the pass on and off without opening the menu.
DX11 and Vulkan, and the caveats
The bridge is already inside OptiScaler. There is nothing extra to download.
The model flat out refuses to run on DX11 — it answers FeatureNotSupported when asked. So the
game has to be lifted onto DX12 first, and that is what the bridge does: it turns the game's textures
into DX12 resources, runs a DX12 upscaler on them, and copies the result back. The pass runs there.
Vulkan takes the same route, through the same bridge.
The first caveat is that you have to pick a bridged upscaler yourself. Simply said, on loading into the game you need to check the top left dropdown of OptiScaler and choose an upscaler with "w/Dx12" written on it, so something like "FSR 3.X w/Dx12" or "XeSS w/Dx12". Usually, the bridged upscalers for DX11 are FSR and XeSS, and for Vulkan, only FSR. This means that your in-game upscaler will give its inputs to the bridged upscaler and this upscaler will ultimately deliver the final frame.
And this brings us to the biggest caveat, you cannot use DLSS as your upscaler in these games. DLSS on DX11 and
Vulkan is native, with no DX12 device anywhere near it, so picking DLSS means no Neural Rendering. You
are trading DLSS for FSR or XeSS to get the pass. Whether that is worth it is yours to judge, and the
comparison view is in the menu to help you judge it. I will continue my trials to get the bridge to pass DLSS but no promises.
Vulkan may also log a queue family mismatch warning from the bridge. That one is OptiScaler's, it
predates this, and it can affect the picture.
About the model DLL
nvngx_dlssnr.dll is not in this archive and will not be. It is NVIDIA's, it is not mine to
redistribute, and requests for it will not be answered. It comes from a driver package, and you need
one copy in each game folder. Please keep in mind that there is no shared or system-wide location.
The forwarder that ships here (nvngx.dll_dlssnr.dll, 108 KB) is not the model. It exists only
because the model refuses calls from any module whose path does not contain nvngx.dll, so the
forwarder is named to satisfy that check. It is a step that might be unnecessary, thus removed in future versions.
Credit
The colour composition, so how the model's answer is brought back into your frame, has been taken from
RenoDX's DLSS 5 addon by clshortfuse (github.com/clshortfuse/renodx), used under its MIT licence.
It is their design and it is the reason the colour holds together. See
Licenses/RenoDX_ATTRIBUTION.txt.
Removing it
Run the uninstaller setup_windows.bat wrote, or delete the files you extracted. Setting
Enabled=false under [DlssNr] in OptiScaler.ini turns off the pass while leaving OptiScaler
working normally.
Reporting problems
Include OptiScaler.log, your GPU and driver version, the game, and whether Ray Reconstruction and
frame generation were on. The log states why the pass did not start when it did not start, and that
line is usually the whole answer.
CHANGELOG
Fixed
- Neural Rendering crashed bindless-engine games. The pass left its own compute state bound after it ran, and on a bindless engine the game resumed off that state and the device was removed. Affected 007 First Light, Monster Hunter Wilds, Dragon's Dogma 2, Resident Evil Requiem, Pragmata and the other games in that class. The pass now cleans up after itself, and steps aside on a frame where the upscaler could not, so it can no longer leave state behind.
- The sliders that rebuild the model when you change them -- intensity, local structure, local tone, skin structure -- rebuilt on every pixel of a drag, so the picture hitched while you dragged. They now apply when you let go of the slider. The cheap ones (detail, colour, paper white) still apply live.
New
- The comparison labels are back, done properly. They are drawn onto the frame itself, so a screenshot keeps them, and in the wipe the split reveals and hides each label exactly as it does the images. No dragging this time -- both labels sit along the divider, there is a size control, and swapping sides moves the labels with their pictures. Turn them on with "Label the sides" under a comparison mode.
Under the hood
- The whole pass was moved into one shader class, dispatched like every other shader, and it no longer reads anything from the game's parameter block -- the caller hands it the resources. This is groundwork the OptiScaler maintainer asked for so the pass can be dropped into other pipelines; it changes nothing you can see.
- A running log of what has been tried, and ruled out, for removing the forwarder.
Known issues
- Pragmata on DLAA breaks the picture and Neural Rendering never starts. This is not the pass: the DLSS upscaler itself fails at native resolution because the game ships its DLSS mode menu offset by one, and OptiScaler's fix for that does not cover the DLAA case. Neural Rendering then correctly waits, because the upscale never produced a frame. Use DLSS Quality on Pragmata instead, where both the upscaler and the pass work. Unrelated to this release.
- Mount & Blade II: Bannerlord may show faint lines across the picture with Neural Rendering on. It looks like the model being handed the wrong depth or motion-vector convention for this game. Still being looked into.
Note
- The headline fix is the bindless-game crash; if a game in that class used to take the whole application down when Neural Rendering was on, try it again.
- If you keep your old OptiScaler.ini from v0.1.0 to keep your settings, set LogToFile=true and LogLevel=2 under [Log] yourself. The old file has logging off, and no log means no help.
OptiScaler + DLSS Neural Rendering v0.1.1-dlssnr
OptiScaler with an extra pass: NVIDIA's Neural Rendering model (dlss5), run over the upscaler's output to
synthesise detail. NVIDIA ships no public integration for it, so it is driven directly. Nothing here
is officially supported and none of it is documented by NVIDIA.
This is the second release and it is an experiment. It is off by default.
What you need
- An RTX 50 series card. The model does not run on anything older. I am aware of DLLs compiled for older GPUs but I have not tested them personally.
- A driver new enough to ship nvngx_dlssnr.dll. Minimum of 616.56.
- A game that already uses DLSS. Vulkan and DX11 support has been added but through OptiScaler's bridge. Although it makes DX and Vulkan viable, it comes with certain caveats I will detail below.
- nvngx_dlssnr.dll, supplied by you. See below.
Install
- Extract everything into the game folder, so the one with the game's .exe. It's not always the root folder.
- Run setup_windows.bat and answer its questions. It renames OptiScaler.dll to whatever the game will load and writes an uninstaller.
- Put nvngx_dlssnr.dll in that same folder.
- Launch, open the OptiScaler overlay, and enable Neural Rendering.
You can also bind a key to it, under Keybinds, "Neural Rendering". It is unbound by default. That
lets you flick the pass on and off without opening the menu.
DX11 and Vulkan, and the caveats
The bridge is already inside OptiScaler. There is nothing extra to download.
The model refuses to run on DX11, it answers FeatureNotSupported when asked. So the
game has to be lifted onto DX12 first, and that is what the bridge does: it turns the game's textures
into DX12 resources, runs a DX12 upscaler on them, and copies the result back. The pass runs there.
Vulkan takes the same route, through the same bridge.
The first caveat is that you have to pick a bridged upscaler yourself. Simply said, on loading into the game you need to check the top left dropdown of OptiScaler and choose an upscaler with "w/Dx12" written on it, so something like "FSR 3.X w/Dx12" or "XeSS w/Dx12". Usually, the bridged upscalers for DX11 are FSR and XeSS, and for Vulkan, only FSR. This means that your in-game upscaler will give its inputs to the bridged upscaler and this upscaler will ultimately deliver the final frame.
And this brings us to the biggest caveat, you cannot use DLSS as your upscaler in these games. DLSS on DX11 and
Vulkan is native, with no DX12 device anywhere near it, so picking DLSS means no Neural Rendering. You
are trading DLSS for FSR or XeSS to get the pass. Whether that is worth it is yours to judge, and the
comparison view is in the menu to help you judge it. I will continue my trials to get the bridge to pass DLSS but no promises.
Vulkan may also log a queue family mismatch warning from the bridge. That one is OptiScaler's, it
predates this, and it can affect the picture.
About the model DLL
nvngx_dlssnr.dll is not in this archive and will not be. It is NVIDIA's, it is not mine to
redistribute, and requests for it will not be answered. It comes from a driver package, and you need
one copy in each game folder. Please keep in mind that there is no shared or system-wide location.
The forwarder that ships here (nvngx.dll_dlssnr.dll, 108 KB) is not the model. It exists only
because the model refuses calls from any module whose path does not contain nvngx.dll, so the
forwarder is named to satisfy that check. It is a step that might be unnecessary, thus removed in future versions.
Credit
The colour composition, so how the model's answer is brought back into your frame, has been taken from
RenoDX's DLSS 5 addon by clshortfuse (github.com/clshortfuse/renodx), used under its MIT licence.
It is their design and it is the reason the colour holds together. See
Licenses/RenoDX_ATTRIBUTION.txt.
Removing it
Run the uninstaller setup_windows.bat wrote, or delete the files you extracted. Setting
Enabled=false under [DlssNr] in OptiScaler.ini turns off the pass while leaving OptiScaler
working normally.
Reporting problems
Include OptiScaler.log, your GPU and driver version, the game, and whether Ray Reconstruction and
frame generation were on. The log states why the pass did not start when it did not start, and that
line is usually the whole answer.
OptiScaler with support for DLSSNR
OptiScaler + DLSS Neural Rendering v0.1.0-dlssnr
OptiScaler with an extra pass: NVIDIA's Neural Rendering model (dlss5), run over the upscaler's output to
synthesise detail. NVIDIA ships no public integration for it, so it is driven directly. Nothing here
is officially supported and none of it is documented by NVIDIA.
This is a first release and it is an experiment. It is off by default.
What you need
- An RTX 50 series card. The model does not run on anything older. I am aware of DLLs compiled for older GPUs but i have not tested them personally.
- A driver new enough to ship
nvngx_dlssnr.dll. Minimum of 616.56. - A DirectX 12 game that already uses DLSS. Vulkan and DX11 support is coming.
nvngx_dlssnr.dll, supplied by you. See below.
Install
- Extract everything into the game folder, so the one with the game's
.exe. It's not always the root folder. - Run
setup_windows.batand answer its questions. It renamesOptiScaler.dllto whatever the game
will load and writes an uninstaller. - Put
nvngx_dlssnr.dllin that same folder. - Launch, open the OptiScaler overlay, and enable Neural Rendering.
About the model DLL
nvngx_dlssnr.dll is not in this archive and will not be. It is NVIDIA's, it is not mine to
redistribute, and requests for it will not be answered. It comes from a driver package, and you need
one copy in each game folder. Please keep in mind that there is no shared or system-wide location.
The forwarder that ships here (nvngx.dll_dlssnr.dll, 108 KB) is not the model. It exists only
because the model refuses calls from any module whose path does not contain nvngx.dll, so the
forwarder is named to satisfy that check. It is a step that might be unnecessary, thus removed in future versions.
Credit
The colour composition, so how the model's answer is brought back into your frame, has been taken from
RenoDX's DLSS 5 addon by clshortfuse (github.com/clshortfuse/renodx), used under its MIT licence.
It is their design and it is the reason the colour holds together. See
Licenses/RenoDX_ATTRIBUTION.txt.
Removing it
Run the uninstaller setup_windows.bat wrote, or delete the files you extracted. Setting
Enabled=false under [DLSSNR] in OptiScaler.ini turns off the pass while leaving OptiScaler
working normally.
Reporting problems
Include OptiScaler.log, your GPU and driver version, the game, and whether Ray Reconstruction and
frame generation were on. The log states why the pass did not start when it did not start, and that
line is usually the whole answer.