Repository navigation
Releases
v0.9.86
Changes from v0.9.85
Frame Generation — RTX 20/30 MFG unlocker (dlssg_sm86)
Fixed: DLSS-G generated no frames when the game's own XeSS Frame Generation runs on GeForce
In some games (first seen in Lost Soul Aside), the RTX 20/30 unlocker unlocked the MFG multipliers in the game
menu, but no multiplier raised the frame rate. The game's own XeSS Frame Generation took over the swapchain, so DLSS
Frame Generation never received the game's frames.
This happens when the game's libxess_fg.dll is a build that also runs on NVIDIA:
- OptiScaler's own copy, which it used to load at startup in every mode;
- or the game's file after an upgrade with DLSS Swapper. Games usually ship Intel-only builds, which stay out of
the way on GeForce.
What changed:
- External FG mode no longer preloads OptiScaler's
libxess_fg.dll. The game now uses its own copy, exactly as
without OptiScaler. OptiFG / XeMFG modes are unchanged. - The game's XeSS-FG is kept off the swapchain while the RTX 20/30 unlocker runs.
- In External FG mode with the unlocker loaded, OptiScaler answers the game's XeSS-FG start-up request with
"unsupported device", which is what Intel-only builds do on GeForce. This works even after a DLSS Swapper
upgrade. - New option
[DLSSG] AmpereMfgBlockGameXeFG(auto= on). In the menu's RTX 20/30 section it's the "Keep game
XeSS FG off the swapchain" checkbox (restart to apply). Turn it off only if you'd rather use the game's XeSS FG
than DLSS-G. - The RTX 20/30 section shows a status line when the game's XeSS-FG was kept off.
- In External FG mode with the unlocker loaded, OptiScaler answers the game's XeSS-FG start-up request with
Verified in game on an RTX 3080 Ti Laptop (driver 621.12): Lost Soul Aside with DLSS Swapper's libxess_fg 1.3.1
now runs DLSS MFG. Other games are unaffected and still work.
New: Streamline's own log in External FG mode
- In External FG mode, OptiScaler now writes Streamline's own log messages into
OptiScaler.log, even in games that
start Streamline right after loading it. - Only Streamline's logging is redirected. Its plugins, features and DLSS-G stay untouched, as before.
- Bug reports for the RTX 20/30 unlocker and other external frame generation setups can now show why Streamline
refuses or skips DLSS-G.
Frame Generation — NVSmooth30 (RTX 30 Smooth Motion) (ShyVortex/dlss-unlocked#42)
- Fixed: false "Pending Restart" / "not attached" status.
- NvPresent attaches during the first presents. OptiScaler only checked once, at swapchain creation, so it showed
"Swapchain attachment verified = false" and "Pending Restart" while Smooth Motion was actually loaded. - It now re-checks over the first presents, using NVSmooth30's own probe order.
- The menu shows "Checking", then either "attached" or a clear "Not detected" with steps to verify and report.
"Pending Restart" appears only whennvsmooth30.dllreally loaded after the swapchain. - Loading, hooking and presentation are unchanged.
- NvPresent attaches during the first presents. OptiScaler only checked once, at swapchain creation, so it showed
- New: automatic NVSmooth30 diagnostics. With OptiScaler
LogLevel0 or 1, OptiScaler sets
SM86_DIAGNOSTICS=1for NVSmooth30. Its log then also lists the kernel loads it left unchanged and why. That's
needed to diagnose driver 621.01, where NVSmooth30 v0.1.0 misses NvPresent's CUDA loader. A value already set in
your environment still wins. - Packaging: release builds can now pick the NVSmooth30 source (
-NVSmooth30Repository/-NVSmooth30Ref,
e.g. an upstream pull request). The package records the source used in
OptiScaler\licenses\SOURCE.nvsmooth30.txt.
Documentation
- New:
docs/issues/FG/FG-LSA-EXTERNAL-MFG-NO-FEATURE-CREATE.md(Lost Soul Aside investigation and fix). - Updated: the NVSmooth30 issue notes (driver 621.01 root cause, packaging source option,
nvsmooth30.dll
packaging fix). - Architecture rules: the new External-mode behaviour (no
libxess_fgpreload, game XeSS-FG refusal, Streamline
log capture) is recorded so upstream merges keep it.
Known issues
- Lost Soul Aside can be very slow to exit or appear stuck on exit. A memory dump shows the game still freeing
its own D3D12 pipeline states, with no OptiScaler code involved. Still under investigation. - Linux / Proton, driver 595 (The Witcher 3, ShyVortex/dlss-unlocked#63): the RTX 20/30 unlocker can't create
frame generation. The failure is inside the unlocker's CUDA kernel creation, not in OptiScaler. Under
investigation with the reporter.
v0.9.85 - Native NR
Changes from v0.9.81
Unlock a game's own DLSS Neural Rendering option
Some games now ship their own DLSS Neural Rendering (NR) option, for example NBA 2K27 or Metro 2033 Redux after its Next-Gen update. Until now the game hid it on GPUs NVIDIA doesn't officially support for NR. OptiScaler now reports NR as supported and runs the game's NR through the bundled NR runtime.
- Works on Windows and Linux. On Windows it needs a driver that supports NR (610.88 or newer). Drivers without NR support are still refused, so they can't hit the GPU hang reported in ShyVortex/dlss-unlocked#60.
- The game's NR takes priority. While it's on, OptiScaler's own NR is switched off. The "Enable Neural Rendering" checkbox and the NR hotkey are locked, with a yellow note explaining why. When you turn the game's NR off, OptiScaler's NR stays off until you tick it again. Your saved setting isn't changed.
- New settings under
[DlssNr]:UnlockGameNR(defaulttrue) turns the unlock on or off.Preload(defaultfalse), also in the menu as "Preload NR (restart)", loads the NR runtime at startup. This shortens the pause the first time you enable the game's NR. Without it, that pause can last several seconds on the first launch after a reboot.
- The log now shows which NR model and settings the game asks for, e.g.
DLSS-NR (game): model settings: Preset=0 -> Optimized (Small FP8), .... Metro 2033 Redux uses the Optimized (Small FP8) model.
Tested in game on Linux (Metro 2033 Redux, RTX 30). Windows hasn't been tested in game yet, so reports are welcome.
Fixes
- Neural Rendering works on Linux again. v0.9.80 and v0.9.81 applied the Windows "update your driver" check under Wine/Proton too. The Linux driver always fails that check, so NR was blocked. The check now applies on Windows only.
- Metro 2033 Redux crash after the intro. The game runs DLSS through D3D12 but presents through D3D11. OptiScaler passed the wrong kind of object to the upscaler's GPU-time read, which crashed the game. The object passed now matches the upscaler's type, and the read happens once per frame.
- XeFG in Metro 2033 Redux. The game uses exclusive fullscreen, where XeSS Frame Generation doesn't generate frames. Metro 2033 Redux now uses borderless fullscreen automatically when XeFG is active.
Full changelog: v0.9.81...v0.9.85
v0.9.81
Changes from v0.9.80
Frame Generation
- Should fix shimmering with XeMFG on the OptiScaler input (DLSS Unlocked #57)
- Some games (e.g. Silent Hill Townfall) give motion vectors at display resolution but depth at render resolution. XeFG rejects that mix, so frame generation didn't work.
- The earlier workaround,
[InitFlags] DisplayResolution=false, made XeFG work but made DLSS misread the motion vectors, which caused the shimmering. - OptiScaler now resizes depth to match the motion vectors for XeFG only. It copies depth values exactly, with no filtering. DLSS keeps the game's own settings.
- If you set
DisplayResolution=falsefor this, set it back toauto.
- The menu now says when a game's DLSS-G version is too old for the RTX 20/30 unlocker (DLSS Unlocked #61)
- sdli1995
dlssg_sm860.4.1 no longer takes over DLSS-G versions older than 310.x. NVIDIA's own DLSS-G refuses RTX 20/30, so in games such as Remnant 2 (DLSS-G 3.7.10) frame generation appeared to be on but produced no extra frames. - The status now reads "not running for this game", shows the game's DLSS-G version, and lists the alternatives:
- update the game's
nvngx_dlssg.dllto 310.x (e.g. with DLSS Swapper); - use XeMFG (Input Source: Game);
- use OptiFG.
- update the game's
- The game's DLSS-G version is also shown in the
(?)details tooltip and in the log.
- sdli1995
Super Resolution
- Should fix DLSS not being found in Phantom Blade Zero and similar games (DLSS Unlocked #62)
- Some Unreal Engine games keep their exe outside the usual
Binaries\Win64folder. In Phantom Blade Zero the exe is inplatform\steamand DLSS is underEngine\Plugins. OptiScaler didn't findnvngx_dlss.dllthere and turned DLSS off ("nvngx_dlss.dll not found, DLSS disabled!"). - When the file isn't found in the usual places, OptiScaler now also searches the game's root folder (the nearest folder above the exe that contains an
Enginefolder). - On older versions, set
[Libraries] NvngxDlssPathto the folder containingnvngx_dlss.dll. TheOptiScaler.inicomment now explains this.
- Some Unreal Engine games keep their exe outside the usual
For developers
- New
shaders/shader_tools/build_precompiled_shader.shbuilds DX12 (DXC) precompiled shaders on Linux. It runs the bundleddxc.exeunder Wine and validates the result withdxv.exe; the output is byte-identical to Windows builds. DX11 (FXC) shaders still need Windows. - New issue docs:
FG-XEFG-HIGHRES-MV-DEPTH-MISMATCH.md,FG-REMNANT2-GENERATION-A-DLSSG.mdandSR-DLSS-DLL-OUTSIDE-BINARIES.md.
Known issues
- "Generate before upscale, apply after upscale" can show colour noise in some games (e.g. The Last of Us Part II). "Generate model before upscale" is not affected.
- WRC Generations and other games on Streamline 1.x: with the RTX 20/30 unlocker loaded by OptiScaler, the in-game DLSS Frame Generation option can stay unavailable (DLSS Unlocked #58). Investigation is ongoing.
- The visible effect of the halo suppression sliders is still being evaluated.
Full Changelog: v0.9.80...v0.9.81
v0.9.80
Changes from v0.9.72
The fork has a new name: OptiScaler-NR-PreSR-MFG (formerly OptiScaler-DLSSNR-PreSR-Multipass).
The in-app update check now points to the new repository.
GitHub redirects the old links.
⚠️ Changes that may affect your setup
- Neural Rendering on Windows now requires NVIDIA driver 610.88 or newer (616.64+ recommended)
- On older drivers, "Enable Neural Rendering" is greyed out and the menu explains why.
- Older drivers used to hang the GPU until a reboot (DLSS Unlocked #60).
- Your
OptiScaler.iniis not modified. Wine/Proton is not affected by this check.
- The RTX 20/30 MFG unlocker now requires NVIDIA driver R580 or newer
- The bundled sdli1995
dlssg_sm860.4.1 refuses frame generation on older drivers instead of silently falling back. - The menu now shows a warning when your driver is too old.
- The bundled sdli1995
- RTX 20 (Turing) users of the MFG unlocker: the kernel router now stays on
Auto, and the mod itself selects the SM75 kernels for your GPU.- An explicit
AmpereMfgRouter=SM75is still honoured.
- An explicit
Neural Rendering
- Merged upstream improvements (6125a75, PR #30) from wilsjo2's upstream, ported selectively so all fork features are kept:
- Teardown and GPU-lifetime fixes, Vulkan and finished-picture improvements, finished-picture routing improvements (Kingdom Come: Deliverance II), exposure and pipeline improvements.
- New options, each documented in
OptiScaler.ini:- Halo suppression (experimental): reduces dark rims that NR adds around bright edges.
- Reject stale history: for the Ray Reconstruction residual path.
- MatchGuides / RenderMotionScale (on by default): fix flicker and motion-vector scaling when Working Scale is below 100%.
- Edge-aware enlargement (
Transfer=5).
- These now work on DirectX 12, not only Vulkan.
- NR model preset is available for every pass (passes 3–10 had lost it).
- It uses the upstream labels: Automatic / Original / Optimized.
- Passes 2–10 can also Inherit pass 1.
- "Apply NR to the finished picture" is now disabled while external frame generation or DLSS-G is active, with a visible explanation.
- It used to be skipped silently in that situation, because editing the presented image would race the generated frames.
- When NVIDIA's driver reports it doesn't support Neural Rendering, OptiScaler no longer forces the model through anyway. The status asks you to update the driver.
- Fixed the description of the per-pass
Stylevalues inOptiScaler.ini.
Frame Generation
- Updated the RTX 20/30 MFG unlocker (sdli1995
dlssg_sm86) to v0.4.1 (PR #31)- The mod version is now read from the mod files themselves. The menu shows e.g. "sdli1995 v0.4.1", or just the family name if the files don't state a version.
- RTX 20 support in 0.4.1 is detected correctly again.
- Clearer RTX 20/30 unlocker status in the menu
- Old:
… | Loaded: yes | Live: n/a. - New: a coloured headline, e.g. "RTX 20/30 frame generation unlock: running (sdli1995 v0.4.1)", plus a line explaining where to change the multiplier.
- The technical details are in the
(?)tooltip. "Live" is now labelled "Live control", and reads "not supported by this mod" instead of "n/a".
- Old:
- RTX 20/30 options that 0.4.1 no longer uses are shown as such
- Hardware Bilinear is greyed out when sdli1995 0.4.1 or newer is loaded, with a tooltip explaining why. Your saved value is kept, and it still works with 0.4.0 and older builds.
- The UI Recomposition Preset
Autoentry reads "Auto (runs as A in this build)" with 0.4.1, which runs Auto as preset A. The setting itself is unchanged.
- Should fix a game freeze when changing the XeMFG multiplier from the OptiScaler menu (DLSS Unlocked #57) (not guaranteed)
- The change is now applied on the next frame instead of from inside XeFG's own present call.
- Fixed the RTX 20/30 unlocker failing to start when a game (e.g. GTA V Enhanced) keeps
dlssg_sm86.iniopen.
Known issues
- "Generate before upscale, apply after upscale" can show colour noise in some games (e.g. The Last of Us Part II). It is still being investigated; "Generate model before upscale" is not affected.
- WRC Generations and other games on Streamline 1.x: with the RTX 20/30 unlocker loaded by OptiScaler, the in-game DLSS Frame Generation option can stay unavailable (DLSS Unlocked #58). Investigation is ongoing.
- The visible effect of the halo suppression sliders is still being evaluated.
Full Changelog: v0.9.72...v0.9.80
v0.9.72
v0.9.71
Changes from v0.9.70
- Handled edge case for XeFG with Vulkan, it will now show a proper warning recommending the user to switch to DX12 if possible
- Fixed an issue where LatencyFlex was reported active instead of Reflex for NVIDIA GPUs when using Frame Generation (issue 55 of DLSS Unlocked)
- Added more diagnostics for Intel XeFG
- Added robust active feature dimension fallback and early parameter resolution for Neural Rendering
- Added multi-mip guide support for Neural Rendering
- Fixed an issue with Neural Rendering Pre-SR unable to activate in specific titles, it's still not guaranteed that it works in ALL titles however
- More targeted patches for issue 49 of DLSS Unlocked
Full Changelog: v0.9.70...v0.9.71
v0.9.70
Changes from v0.9.69-pre1
- Fixed an issue where the latest update of sdli1995's SM86 mod was wrongly detected as SilyNoMeta's fork
- Hardened direct nvngx create and improved DLSSG parameter sanitization
- Enforced Turing architecture spoofing safety for SM75 part of the AmpereMfg component
- Handled more edge cases for NvApi hooks
- Improved info and text boxes for SM86 MFG multiplier ceiling UI
- Enforced shortcut key debouncing and 500ms cooldown to prevent toggle spam when enabling/disabling Neural Rendering, avoiding crashes
Changes from v0.9.51
- Merged changes from PR #24 by @A7mdwassa, adding mode switching for the Turing/Ampere MFG unlocker, enabling option for Internal FG, thus allowing to use the unlocker as output for OptiFG (it is now possible to use the dlssg_sm86 mod in games that natively support DLSS upscaling, but lack support for DLSS FG)
- Merged changes from PR #26 by @jfleezy23, with minor fixes for Neural Rendering, correcting DX12 creation readiness and history transitions
- Merged changes from PR #27 by @ShyVortex, adding input source option for Intel XeMFG, allowing to use the technology in all games that support only DLSS upscaling without FG. It siphons depth, motion vectors and color buffers from DLSS-SR and passes them into XeFG
- Updated NVIDIA Streamline to version 2.14.16
- Updated dlssg_sm86 (RTX 20/30 series MFG unlocker) mod to v0.4.0, with support for the new DLSS FG Preset C, presented by NVIDIA as "FG Lite", a new FG model with boosted performance
- Updated Neural Rendering component to include support for the new lightweight model, with up to a 40% performance increase. Compatibility with previous model is preserved, as there is now an option to change NR preset directly from the menu
- Updated HDR support for Intel XeFG
Full Changelog: v0.9.51...v0.9.70
v0.9.69-pre1
Experimental Release
It is expected to have more bugs than usual
Changes from v0.9.51
- Merged changes from PR #24 by @A7mdwassa, adding mode switching for the Turing/Ampere MFG unlocker, enabling option for Internal FG, thus allowing to use the unlocker as output for OptiFG (it is now possible to use the dlssg_sm86 mod in games that natively support DLSS upscaling, but lack support for DLSS FG)
- Merged changes from PR #26 by @jfleezy23, with minor fixes for Neural Rendering, correcting DX12 creation readiness and history transitions
- Merged changes from PR #27 by @ShyVortex, adding input source option for Intel XeMFG, allowing to use the technology in all games that support only DLSS upscaling without FG. It siphons depth, motion vectors and color buffers from DLSS-SR and passes them into XeFG
- Updated NVIDIA Streamline to version 2.14.16
- Updated dlssg_sm86 (RTX 20/30 series MFG unlocker) mod to v0.4.0, with support for the new DLSS FG Preset C, presented by NVIDIA as "FG Lite", a new FG model with boosted performance
- Updated Neural Rendering component to include support for the new lightweight model, with up to a 40% performance increase. Compatibility with previous model is preserved, as there is now an option to change NR preset directly from the menu
- Updated HDR support for Intel XeFG
Nightly Builds
Changes in the Last 24 Hours
No changes...
v0.9.51
Changes from v0.9.50
- Merged changes from PR #21 by @jfleezy23 and #22 by @ShyVortex, with fixes for Intel XeMFG
- Fixed issue 49 from DLSS Unlocked with NR not activating properly in Microsoft Flight Simulator 2024
- Improved behaviour of Intel XeMFG for high multipliers (4x to 6x), which now has less ghosting at lower base framerate
- Added support for Live XeMFG: in games where multiplier selection is absent from settings (e.g. Resonance: A Plague Tale Legacy) because they use Dynamic DLSS FG instead, XeFG max generated frames can now be controlled dynamically from OptiScaler GUI, without requiring a game restart
Full Changelog: v0.9.50...v0.9.51