Skip to content

Releases: cdozdil/OptiScaler

v0.6.8-pre1

08 Oct 06:37
f52efca
Compare
Choose a tag to compare
v0.6.8-pre1 Pre-release
Pre-release

OptiScaler v0.6.8-pre1

Bugfix release

Added

  • UseGenericAppIdWithDlss for DLSS preset overriding on games like Monster Hunter Rise (thanks to @MapleHinata) #72

Fixed

  • DirectX 11 FSR 3.1.1 backend crash issue with old VC Runtime versions. (thanks to @MapleHinata) #70 #71

v0.7.0-pre9

02 Oct 08:55
Compare
Choose a tag to compare
v0.7.0-pre9 Pre-release
Pre-release

OptiScaler v0.7.0-pre9

This build adds experimental Frame Generation support to v0.6.7 for DLSS supported games.
Instabiliy and crashes are possible, so be warned.

Frame Generation will not work if OptiScaler is used as nvngx.dll. Please follow these instructions.

Frame Generation Options

image

Frame Generaion

Enables & disables frame generation

Allow Async

Enables & disables async compution for frame generation which improves performance.
It usually cause crashes, so use at own risk

Debug View

Enables & disables FSR FG debug view.

image

Only Generated

When enabled only FG generated will be shown. Used for debug purposes.

HUD Fix

Enables & disables hudless image capturing.
It might cause crashes

  • Limit option delays capturing hudless image for capturing correct image
  • Extended option does not do much in it's current form. It might help in rare cases but hopefully it will shine in next releases.

When hudless image captured correctly you should see it in Debug View. Bottom middle image should not have any HUD elements.

image

Thanks to Artur, FakeMichau and RazzerBrazzer for helping me on testing this build.

v0.6.7

11 Sep 15:18
Compare
Choose a tag to compare

OptiScaler v0.6.7

Mistakenly uploaded pre14 as final, if you have downloaded this release before please redownload.

Added

  • Native DirectX11 FSR 3.1.1 upscaler backend (thanks to new contributor @MapleHinata)

  • FSR 3.1.1 libraries

  • FSR 3.1.1 Velocity Factor option to in-game menu and nvngx.ini. Which let's users to control the balance between image stability & blurriness vs shimmering & shaprness. Lower values are more stable but prone to ghosting. Default value is 1.0.

  • In-game menu is now always available when OptiScaler is loaded
    menu

  • Simple frame & upscaler time graphics
    graphs

  • Disabled spoofing during Vulkan upscaler creation. This might allow non-Nvidia GPUs to use FP16 codepath and gain a bit more performance.

  • DXVK detection, now Overlay Menu uses Vulkan API with DXVK
    dxvk

  • DirectX 11 support for Force Anisotropic Filtering and Mipmap LOD Bias

  • Support for latest version of Visual Studio (thanks to FakeMichau)

  • FSR 3.1 option for DLSS Enabler generator selection at in-game menu

  • DxgiVRAM and SpoofedGPUName spoofing options (thanks to ChemGuy1611)

; Spoof amount of VRAM for DXGI
; Spoofed amount in GBs - Default (auto) is disabled
DxgiVRAM=auto

; Spoofed GPU name
; Default (auto) is NVIDIA GeForce RTX 4090
SpoofedGPUName=auto
  • LoadSpecialK option to load SpecialK manually (thanks to DARKERthanDA)
; Loads SpecialK64.dll from game's exe folder
; Please put aa empty SpecialK.dxgi file next to SpecialK64.dll
; to set SpecialK's working mode otherwise it will not be activated
; true or false - Default (auto) is false
LoadSpecialK=auto

Changed

  • From now on Overlay Menu is not available for nvngx.dll installations.
  • Updated ImGui to v1.91.1 v1.91.2

Fixed

  • RCAS was crashing with Typeless textures #46, fixes Space Marine 2 (thanks to LeidenXaXa)
  • Possible crashes while using Overlay Menu with RTSS (thanks to Artur)
  • Crash when switching to FSR 3.1 from in-game menu (thanks to Melinch & BayuPratama)
  • DirectX11 performance regression after upscaler time calculation (thanks to Melinch & BayuPratama)
  • A typo at menu #49 (thanks to donizettilorenzo)
  • Compability issue with GoW:Ragnarok #53 (thanks to RazzerBrazzer & rigopoui)
  • Possible crashes during resolution changes and Alt+Tab (thanks to FakeMichau)
  • Menu was not working with Shadow of the Tomb Raider & Rise of the Tomb Raider (thanks to Merlinch)
  • Wine detection error (thanks to Lilith)

Removed

  • These options are removed:
    • MenuInitDelay
    • HookD3D12
    • HookSLProxy
    • HookFSR3Proxy
    • DisableEarlyHooking
    • DxgiSkipSpoofForUpscalers

Huge thanks to MapleHinata for FSR 3.1.1 DirectX 11 contribution!

Thanks to all DLSS2FSR community for their continous support!

v0.6.6

02 Aug 19:13
Compare
Choose a tag to compare

OptiScaler v0.6.6-final

Added

  • RCAS, Output Scaling and Mask Bias options to FSR2.2 DirectX 11 backend
  • RCAS and Output Scaling options to DLSS DirectX 11 backend (thanks to Sildur for testing)
  • Option to use FSR1 with Output Scaling (thanks to FakeMichau)
  • Option to Force Anisotropic Filtering #26 (thanks to aufkrawall)

Changed

  • Made Output Scaling, Mipmap LOD Bias & Force Anisotropic Filtering menu entries a bit more user friendly (thanks to FakeMichau & aufkrawall)
  • Enabled denoiser option of RCAS #32 (thanks to aufkrawall)
  • Increased maximum RCAS sharpness to 1.3 #32 (thanks to aufkrawall)
  • Changed XeSS & FSR3.1 load order to first check OptiScaler and ini folder

Fixed

  • For scaling ratios below 1.0 DLSS and XeSS can't handle downscaling, now OptiScaler auto-enable Output Scaling with 1.0 ratio when needed (thanks to Merlinch & DARKERthanDA)
  • OptiScaler wasn't saving Force Anisotropic Filtering value #26 (thanks to aufkrawall)
  • A possible race condition crash when exiting from Witcher 3 (thanks to Artur)
  • Possible crash when exiting DirectX 11 games #30 (thanks to cek33)
  • Possible Output Scaling issues (thanks to Adéline)
  • Broken Output Scaling when using DLAA #34 (thanks to Nygglatho)
  • Can't select DLSS preset F & G from in-game menu (thanks to Merlinch)
  • Sending above 1.0 values to FSR's sharpener (thanks to Rigel.)

v0.6.5

08 Jul 15:18
Compare
Choose a tag to compare

OptiScaler v0.6.5

Added

  • Added support for FSR 3.1.0 upscaler backends
  • Added support for selecting FSR 2.3.2 when using FSR 3.1.0
  • Added FSR-FG 3.1 Overlay Menu support
  • Added VulkanExtensionSpoofing option to nvngx.ini which would spoof VK_NVX_BINARY_IMPORT and VK_NVX_IMAGE_VIEW_HANDLE. Now RTX Remix and No Man's Sky (FSR 3.1 is broken) let's users to select DLSS.
  • Added tooltip support to in-game menu (thanks to @FakeMichau) #24
    image
  • Added options to use DLSS Input Bias Masks as FSR Reactive (with bias adjustment) and Transparency masks (thanks to solewalker & FakeMichau)
Without Masks With Masks
image image
  • Added precompiled shaders for RCAS, Output Scaling and Mask Bias with menu and UsePrecompiledShaders ini option
  • Added NVNGX_DLSS_Path option to nvngx.ini for loading different nvngx_dlss.dll file (thanks to Sildur)
  • Added ability to extend scaling ratio override range to 0.1-6.0. This allows game (not all games support this) to render higher than display resolution and downsample to display resolution. When using with XeSS set Output Scaling to 1.0 (thanks to FakeMichau & krispy)
  • Added Debug View option for FSR 3.1.0 to in-game menu and nvngx.ini (needs Advanced Settings)
  • Added CameraNear / CameraFar (for FSR 2.2 and above) options to in-game menu and nvngx.ini (needs Advanced Settings)
    image
  • Added selective spoofing for DXGI (check DxgiBlacklist option in nvngx.ini) (Does not work on Linux)
  • Added SkipFirstFrames option to nvngx.ini which would allow OptiScaler to skip rendering desired amount of frames (Needed for Dragons Dogma 2) (thanks to CAPCOM)
  • Added ability to override Mipmap Bias when running non-nvngx mode without resoluion/preset change (thanks to Ridianoid)
  • Added/Implemented Driver Vendor, Name & Info spoofing for Vulkan spoofing option (Doom Eternal still does not enable DLSS)
  • Added missing NVSDK_NGX_VULKAN_GetFeatureRequirements, NVSDK_NGX_VULKAN_GetFeatureDeviceExtensionRequirements and NVSDK_NGX_VULKAN_GetFeatureInstanceExtensionRequirements methods
  • Added Advanced Settings option to in-game menu (thanks to FakeMichau)
  • Added ability to use negative values for Motion Adaptive Sharpness
  • Added FidelityFX license

Changed

  • Updated Intel XeSS library to 1.3.1
  • Grouped upscaler Init Flag options together at nvngx.ini
  • Seperated Output Scaling options at nvngx.ini
  • Changed default FSR Camera Near & Camera Far values to 0.0001 & 0.9999 0.01 & 0.99
  • Changed DLSS and XeSS path options at nvngx.ini to accept both file path and folders. This should let users use XeSS with Uniscaler. (thanks to MV & Voosh)
  • Reverted back to original FSR 2.1.2 (thanks to DLSS2FSR community)
  • Improved menu hooking routines which speed up init a bit with DirectX 12
  • Disabled Reactive Mask checkbox at menu when game is not providing reactive mask texture (thanks to FakeMichau)
  • Improved DXGI spoofing when OptiScaler is not dxgi.dll (thanks to Sildur)

Fixed

  • Fixed ghosting issues of FSR 3.1 (thanks to DLSS2FSR community)
  • Fixed FSR 3.1 Vulkan crashes on Windows (Linux still has issues) (thanks to Matthew Simm)
  • Remove DLSS option from upscaler list when there is no original nvngx.dll (thanks to Od1ssseas)
  • Fixed crashes during loading when game path contains unicode characters on unicode systems (thanks to Rigel.)
  • Improved working mode checks and stability of mod (thanks to Sildur & krispy)
  • Fixed 16XX GPU spoofing for DLSS on Vulkan & Dx11 (thanks to Merlinch & DARKERthanDA)
  • Possible crash during resolution/quality change issue #11 (thanks to donizettilorenzo)
  • Fixed/improved RestoreComputeSignature & RestoreGraphicSignature options (Needed for Dragons Dogma 2) (thanks to CAPCOM)
  • Prevented casting exceptions during ini loading (thanks to CAPCOM)
  • Fixed Mipmap Bias calculator Display Resolution value when OutputScaling is active (thanks to Ridianoid)
  • Prevented possible early unloading of mod when running as non-nvngx (thanks to Merlinch)
  • Added checks to disable OverlayMenu when running on Linux with Nvidia GPUs (thanks to KomiksPL)
  • Improved implementation of GetCapabilityParamers methods Reverted (thanks to Neostein)

Thanks to all users and DLSS2FSR community for continuous support!

v.0.6.1

27 Jun 20:53
0acf1f9
Compare
Choose a tag to compare

OptiScaler v0.6.1

This release aims for a more precise implementation of nvngx and bug fixes.

Added

  • DLSS-D (Ray Reconstruction) support on Nvidia cards (thanks to Artur, AKBLT-YT and QM)
  • Automatically redirect calls for features not supported by OptiScaler to original nvngx on Nvidia GPUs.
  • Added auto skipping spoofing for XeSS. This should activate XMX codepath on Intel ARC series GPUs. It can be disabled from nvngx.ini or in-game menu (only works in dxgi mode)
[Spoofing] 
DxgiXessNoSpoof=false
  • Automatically select DLSS as upscaler on Nvidia GPUs (if not overridden in ini or DLSS Enabler) (thanks to AKBLT-YT)
  • Auto disable spoofing on Nvidia GPUs (only works in dxgi mode)
  • Hide DLSS upscaler option for non-Nvidia GPUs
  • Added full DLSS Enabler ini capability and in-game menu support (thanks to FakeMichau and ...Merlinch?)
  • Added Vulkan spoofing support. It is disabled by default and can be enabled from nvngx.ini (only works in non-nvngx mode) (Doom Eternal still doesn't work) (thanks to FakeMichau)
[Spoofing] 
Vulkan=true
  • Added option to disable DXGI spoofing (only works in dxgi mode)
[Spoofing]
Dxgi=false
  • Added missing Vulkan Init methods
  • Added option to define path for check orginal file when running in non-nvngx mode (only works in non-nvngx mode) (thanks to Artur)
[Plugins]
Path=auto

Fixed

  • Prevented capturing mouse and keyboard when OptiScaler is not active
  • Fixed crashes when running Unity games on non-nvngx mode (thanks to Erik Coelho)
  • Reading correct rendering resolution on DLSS and DLSSD (thanks to ...Merlinch?)
  • Fixed issue with Vulkan DLSS settings are not being visible after upscaler change (thanks to ...Merlinch?)
  • Fixed possible menu crashes on DirectX 12 only mode (thanks to Jo)
  • Fixed possible crashes on LoadLibrary hooks
  • Wrong scaling ratio reporting when using DLAA on Nvidia GPUs (thanks to ...Merlinch?)

v0.6.0

29 May 07:58
Compare
Choose a tag to compare

OptiScaler v0.6.0

This release aims to improve the compatibility of the new in-game menu (especially when used with frame-gen) and add support for DLSS 3.7.

Added

  • Added spoofing support for DLSS 3.7, usage description is below
  • Added spoofing support when running as dxgi.dll (acts like d3d12-proxy).
  • Added support for loading custom nvapi64.dll file when not working as nvngx.dll (from dll folder or user defined folder).

Fixed

  • Tried to cover all frame-gen cases for the new in-game menu, hopefully it will be ok (There is a detection delay of about 170 frames, if the menu does not appear immediately after loading the game, please wait a bit after pressing the menu button)
  • Fixed setting wrong internal rendering resolution during create feature (thanks to Sub & DARKERthanDA)
  • Fixed when DLSS selected from ini was not applied when using DirectX 11 (thanks to ...Merlinch & wixuan)
  • Fixed Motion Sharpness issues (thanks to Od1sseas)
  • Increased the Motion Sharpness scale minimum to 0.1 to prevent division by zero problems (thanks to fakemichau).
  • Added extra checks for Output Scaling and Display Size MV (Thanks to DARKERthanDA)
  • Fixed reverting to initial upscaler on quality or resolution change when working with DLSS Enabler (thanks to fakemichau).
  • Auto disable RCAS and Output Scaling on shader compilation issues, for linux check notes are at bottom (thanks to fakemichau).
  • Fixed Output Scaling disabling conditions (Thanks to DARKERthanDA)
  • Fixed conflicting preset selection & quality ratio when using DLSS (thanks to ...Merlinch?)
  • Added yield() to /w Dx12 backend query wait spins, resulting in improved performance on Nvidia cards (thanks to DARKERthanDA)

Changed

  • The structure of nvngx.ini has changed a bit, if your old settings are not applied, please compare with the new structure.

DLSS 3.7

This is only needed if you want to use OptiScaler solo (without DLSS Enabler or Uniscaler).

With DLSS 3.7 Nvidia disabled signature check override, this means nvngx.dll or _nvngx.dll must be signed by Nvidia. For this override I use a method developed by Artur (developer of DLSS Enabler). With this release, OptiScaler supports loading by these filenames:

  • dxgi.dll (with Nvidia GPU spoofing)
  • winmm.dll
  • version.dll
  • wininet.dll
  • winhttp.dll
  • OptiScaler.asi (with an ASI loader)

If there is another mod that uses the same filename (for example version.dll), if you rename it with -original suffix (for example version-original.dll), OptiScaler will load this file instead of the original library.

Step-by-step installation:

  1. We need an Nvidia signed dll file to bypass signature checks. All games that support DLSS come with nvngx_dlss.dll. Most of the time it's in the games exe folder. Some games and engines keep these third party dll's in different folders (like plugins). So we need to find the nvngx_dlss.dll file and copy it to the games exe folder. If it's already in the games exe folder, make a copy of it.
  2. Rename the copy of nvngx_dlss.dll in games exe folder to nvngx.dll.
  3. Rename OptiScaler's nvngx.dll to one of the supported filenames (I prefer dxgi.dll, it also eliminates the need for d3d12 proxy) and copy it to the games exe folder.

That's it, now you should be able to run DLSS 3.7 games.

Please don't rename the ini file, it should stay as nvngx.ini.

Shader Compiling and Linux

If you are using OptiScaler with Linux and you have problems with RCAS or Output Scaling, you will probably see this message in your logs.

CompileShader error compiling shader : <anonymous>:83:26: E5005: Function "rcp" is not defined.

To solve this problem you need to install d3dcompiler_47 with WineTricks or ProtonTricks. OptiScaler uses custom shaders for these features and depends on this compiler file to compile these shaders at runtime.

Thanks to fakemichau for pointing out this solution.

As always thanks to all DLSS2FSR members for their help & support

v0.5.5

08 May 06:58
Compare
Choose a tag to compare

Added

  • Added DLSS upscaling support, when using DLSS with OptiScaler you will have DLSS specific;

    • Control over DLSS presets (DLSS 3.x only)
    • Auto enabling DLSS support for 16XX GPUs
    • Added spoofing for GetFeatureRequirements
    • Override DLSS sharpening (up to DLSS 2.5.1)
  • Also with DLSS you can use OptiScaler's;

    • Scaling overrides
    • Override DLSS init flags
    • In-game menu
    • RCAS sharpening (only on Dx12)
    • Output resolution scaling (only on Dx12)
  • Added new in-game menu which works on all APIs and does not affected by games rendering pipeline. In case of compatibility issues (or for nostalgia 😅 ) old menu still can be enabled by setting OverlayMenu=false from nvngx.ini (Thanks to RazzerBrazzer, regar DARKERthanDA, Brutale1090, iamnotstanley and Od1sseas for all the testing).

    If you are using RTSS (MSI Afterburner, CapFrameX, etc) please enable Use Microsoft Detours API hooking from settings.
    image

  • Added Motion Sharpening option, which increases sharpening amount of pixels based on their motion. (RCAS only) (Thanks to Od1sseas)

  • Added option to select RCAS for FSR upscalers (Dx12 and Dx11 with Dx12 only)

  • Added an option to round internal resolution to desired number

  • Added DRS (Dynamic Resolution Scaling) now have options to limit minimum or maximum resolution to render resolution.

  • Added more integration options with DLSS Enabler

Changed

  • XeSS upscaling library libxess.dll is not statically linked anymore. This means now even without libxess.dll mod works (ofc without XeSS support). With new ini option users can point a folder which contains library or even if game natively supports XeSS mod now uses library loaded by game. Also with limited testing I can confirm 2 different versions of XeSS libraries (for example game loads 1.2.0 and mod loads 1.3.0) coexist and work on same instance.
  • CAS sharpening replaced with RCAS, which solves issues with bloom, glow and other effects etc.
  • Super Sampling option evoled into Output Scaling, now it's working based on display resolution and in 0.5 - 3.0 scaling range. This allows users to set lower target resolutions than display resolutions which was requested by Deck users.
  • Restructured in-game menu to show only currently available options to prevent confusion.
  • DRS range limited to 0.5x - 1.0x to mimic Nvidia aproach

Fixed

  • Sometimes DLSS upscaler had wrong motion vectors setup, now fixed (Thanks to DARKERthanDA)
  • Some games were not releasing the mouse, now they should be fixed. (Cyberpunk 2077, Horizon Zero Dawn, etc.)
  • Some games were not registering mouse clicks, now they should be fixed. (Doom Eternal) (Thanks to RazzerBrazzer)
  • Dx11 XeSS libxess.dll not found fallback fixed
  • Added controls for junk Vulkan DLSS init data and prevent crashes
  • Added SDK version checks for logging options

Here are some examples from games that had problems with in-game menu (Thanks to RazzerBrazzer and DARKERthanDA for images)

Alan Wake 2 Star Wars Jedi: Survivor
Alan Wake 2 Star Wars Jedi: Survivor
Banishers: Ghosts of New Eden INDIKA
Banishers: Ghosts of New Eden INDIKA
Mortal Shell Pools
Mortal Shell Pools

And Vulkan games

No Man's Sky Doom Eternal
image image

v0.4.3

27 Apr 19:41
Compare
Choose a tag to compare

New:

  • Added an in-game menu scaling option

Changed

  • Added new options for Dx11wDx12 creation & syncing. I have tried to explain it here. These settings are game & hw dependant so users need to tweak and find best performing configuration for their system. I have set safe and balanced values as default values.

v0.4.2

21 Apr 12:30
Compare
Choose a tag to compare

New:

  • XeSS now have a new parameter CreateHeaps (default true). When it's enabled OptiScaler internally create heap objects and bind them instead of relying XeSS to create them. This fixes Guardians of the Galaxy black screen with XeSS issue. (Thanks to RazzerBrazzer)

Fixed:

  • Crysis 3 Remastered showing black screen w/Dx12 backends on non-Arc GPUs fixed. (Thanks to closesim & RazzerBrazzer)

Changed:

  • Dx11wDx12 backends had a few seconds worth of delays to ensure stability and compatibility. After the improvements made in v0.4 release looks like these delays aren't necessary anymore. For compatiblity sake I have added a new parameter UseDelayedInit (default false) for enabling these delays again.