Releases: cdozdil/OptiScaler
v0.7.0-pre66
OptiScaler v0.7.0-pre66
This build adds experimental Frame Generation support to v0.6.8-pre4
for DLSS & XeSS supported games.
Instability and crashes are possible, so be warned.
Frame Generation will not work if OptiScaler is used as
nvngx.dll
. Please follow these instructions.
For best results please avoid using overlays like Steam/Epic/RTSS.
pre66
- Fixed more resource tracking issues, HudFix should be much more stable now
- Added auto-fallback to classical FG when hudless can't be captured
- Added Reflex FPS framerate limit slider (thanks to @FakeMichau #108)
- Added freetype font for menu (thanks to @FakeMichau #117)
- Added
Immediate Capture
option for HudFix
; Enables capturing of resources before shader execution.
; Increase hudless capture chances but might cause capturing of unnecessary resources.
; true or false - Default (auto) is false
HUDFixImmadiate=auto
-
Added
Capture Lists
for HudFix, which would help some games (Star Wars: Outlaws etc.)
-
Fixed issues on loading
libxess.dll
(thanks to FakeMichau) -
Added option for loading
ReShade64.dll
; Loads Reshade64.dll from game's exe folder
; true or false - Default (auto) is false
LoadReshade=auto
- Added crude reimplementation of EndlesslyFlowering's AutoHDR-ReShade
ForceHDR
andUseHDR10
options, don't forget to useInverse ToneMapping
shaders
; Force HDR color space
; true or false - Default (auto) is false
ForceHDR=auto
; Use HDR10
; true or false - Default (auto) is false
UseHDR10=auto
- Added auto disabling of Epic Overlay when using FSR-FG swapchain
Mini HudFix Guide
Enable debug view and check different limit values:
- If default settings can't capture hudless go to Step 2, if found hudless but it's not stable go to Step 4
- Try enabling
Immediate
and checking again, if still can't capture go to Step 3, if found hudless but it's not stable go to Step 4 - Try enabling
Extended
and checking again, if found hudless but it's not stable go to Step 4 - Find a spot it's always stable and select
Create List
wait a bit and then selectUse List
pre36
- Added FSR 3.1.2 support
- Fixed spoofed GPU name issue (Thanks to @MapleHinata)
- Fixed RDR crash issue (only with bundled
amd_fidelityfx_dx12.dll
) - Fixed XeSS not selectable on Capcom games (Thanks to FakeMichau & BayuPratama)
- Changed to hook dxgi/d3d12/d3d11/vulkan-1 when game loads them. This should increase compatibility with Death Stranding and Capcom games (thanks to Maple)
- Fixed ini reload logic to not overwrite user changed values
- Added resource barrier fixes to FG inputs too (Velocity & Depth, again fixes Death Stranding)
- Added FG Rectangle option for games with black bars (ultra wide etc)
- Added Source Api info to menu (DLSS/XeSS)
- In general tried to improve stability and capture accuracy of Hudfix
UE games might need Limit 2 with this updatewith pre66 not needed
pre23
added fix for regtangle/noise issue when using HudFix
pre22
re-implemented Extended HudFix
option which now works with Control (don't forget to disable Motion Blur + Film Grain).
pre21
should increase compatibility and stability of Hudfix
and mod in general.
New Options
Frame Generation
Enables & disables frame generation
Allow Async
Enables & disables async compution for frame generation which improves performance.
It usually cause crashes, so use at your own risk
Debug View
Enables & disables FSR FG debug view. Userful for checking if Hudfix working correctly.
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 tries to capture more image formats
When hudless image captured correctly you should see it in Debug View. Bottom middle image should not have any HUD elements.
Thanks to Artur, FakeMichau, RazzerBrazzer, BayuPratama and all DLSS2FSR community for helping me on testing this build.
v0.6.8-pre4
OptiScaler v0.6.8-pre4
This release does not have Frame Generation support
Added
UseGenericAppIdWithDlss
for DLSS preset overriding on games like Monster Hunter Rise (thanks to @MapleHinata) #72- XeSS inputs support. Now if a game supports XeSS upscaling, OptiScaler can use XeSS inputs instead of DLSS. Sadly, Unreal XeSS Plugin does not provide a depth buffer which leads degraded visual quality.
- FakeNvapi menu support (thanks to @FakeMichau) #81
Fixed
- DirectX 11 FSR 3.1.1 backend crash issue with old VC Runtime versions. (thanks to @MapleHinata) #70 #71
- Prevented using Ultra Quality of preset with real DLSS. (thanks to @MapleHinata) #80
- XeSS inputs were not working with Death Stranding Director's Cut (thanks to BayuPratama)
- Broken DLSS upscaler backend (thanks to @MapleHinata)
- Broken custom
nvngx_dlss.dll
loading option (thanks to @MapleHinata) - Broken XeSS 1.2 support (thanks to mayoringram)
v0.6.7
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 andnvngx.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
-
Disabled spoofing during Vulkan upscaler creation. This might allow non-Nvidia GPUs to use FP16 codepath and gain a bit more performance.
-
DirectX 11 support for
Force Anisotropic Filtering
andMipmap 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
andSpoofedGPUName
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 fornvngx.dll
installations. - Updated ImGui to
v1.91.1v1.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
OptiScaler v0.6.6-final
Added
RCAS
,Output Scaling
andMask Bias
options to FSR2.2 DirectX 11 backendRCAS
andOutput 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
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 tonvngx.ini
which would spoofVK_NVX_BINARY_IMPORT
andVK_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
- 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 |
---|---|
- Added precompiled shaders for RCAS, Output Scaling and Mask Bias with menu and
UsePrecompiledShaders
ini option - Added
NVNGX_DLSS_Path
option tonvngx.ini
for loading differentnvngx_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
(needsAdvanced Settings
) - Added CameraNear / CameraFar (for FSR 2.2 and above) options to in-game menu and
nvngx.ini
(needsAdvanced Settings
)
- Added selective spoofing for DXGI (check
DxgiBlacklist
option innvngx.ini
) (Does not work on Linux) - Added
SkipFirstFrames
option tonvngx.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
andNVSDK_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.99990.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 methodsReverted (thanks to Neostein)
Thanks to all users and DLSS2FSR community for continuous support!
v.0.6.1
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
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 asnvngx.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
andDisplay 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
andOutput 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:
- 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 (likeplugins
). So we need to find thenvngx_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. - Rename the copy of
nvngx_dlss.dll
in games exe folder tonvngx.dll
. - Rename OptiScaler's
nvngx.dll
to one of the supported filenames (I preferdxgi.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
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
fromnvngx.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.
-
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 withoutlibxess.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 |
---|---|
Banishers: Ghosts of New Eden | INDIKA |
Mortal Shell | Pools |
And Vulkan games
No Man's Sky | Doom Eternal |
---|---|
v0.4.3
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
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.