Skip to content

Releases

v0.9.86

Choose a tag to compare

@ShyVortex ShyVortex released this 04 Nov 10:58

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.

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 when nvsmooth30.dll really loaded after the swapchain.
    • Loading, hooking and presentation are unchanged.
  • New: automatic NVSmooth30 diagnostics. With OptiScaler LogLevel 0 or 1, OptiScaler sets
    SM86_DIAGNOSTICS=1 for 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_fg preload, 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

Choose a tag to compare

@ShyVortex ShyVortex released this 02 Nov 11:44

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 (default true) turns the unlock on or off.
    • Preload (default false), 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

Choose a tag to compare

@ShyVortex ShyVortex released this 30 Oct 11:04

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=false for this, set it back to auto.
  • 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_sm86 0.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.dll to 310.x (e.g. with DLSS Swapper);
      • use XeMFG (Input Source: Game);
      • use OptiFG.
    • The game's DLSS-G version is also shown in the (?) details tooltip and in the log.

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\Win64 folder. In Phantom Blade Zero the exe is in platform\steam and DLSS is under Engine\Plugins. OptiScaler didn't find nvngx_dlss.dll there 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 Engine folder).
    • On older versions, set [Libraries] NvngxDlssPath to the folder containing nvngx_dlss.dll. The OptiScaler.ini comment now explains this.

For developers

  • New shaders/shader_tools/build_precompiled_shader.sh builds DX12 (DXC) precompiled shaders on Linux. It runs the bundled dxc.exe under Wine and validates the result with dxv.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.md and SR-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

Choose a tag to compare

@ShyVortex ShyVortex released this 27 Oct 23:27

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.ini is 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_sm86 0.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.
  • 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=SM75 is still honoured.

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 Style values in OptiScaler.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".
  • 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 Auto entry 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.ini open.

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

Choose a tag to compare

@ShyVortex ShyVortex released this 22 Oct 22:08

Changes from v0.9.71

Added quirks 'DisableXeFGChecks' and 'AlwaysCaptureFSRFGSwapchain' for Silent Hill Townfall via commit b4bfdc4 to address issue 57 of DLSS Unlocked

Full Changelog: v0.9.71...v0.9.72

v0.9.71

Choose a tag to compare

@ShyVortex ShyVortex released this 21 Oct 08:57

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

Choose a tag to compare

@ShyVortex ShyVortex released this 18 Oct 14:44

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

v0.9.69-pre1 Pre-release
Pre-release

Choose a tag to compare

@ShyVortex ShyVortex released this 17 Oct 20:29
3b948c3

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

Nightly Builds Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Oct 08:28
635c34e

Changes in the Last 24 Hours

No changes...

v0.9.51

Choose a tag to compare

@ShyVortex ShyVortex released this 09 Oct 19:13
a4aaf07

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