:::::::: ::::::::: ::::::::::: ::::::::::: :::::::: :::::::: ::: ::: :::::::::: ::::::::: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +#+ +:+ +#++:++#+ +#+ +#+ +#++:++#++ +#+ +#++:++#++: +#+ +#++:++# +#++:++#: +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# ######## ### ### ########### ######## ######## ### ### ########## ########## ### ### OptiScaler is a tool that lets you replace upscalers in games that already support DLSS2+ / FSR2+ / XeSS, now also supports enabling frame generation in those same games (through OptiFG or Nukem's dlssg-to-fsr3). While previously only DLSS2+ inputs were supported, newer versions also added support for XeSS and FSR2+ inputs. For example, if a game has DLSS only, the user can replace DLSS with XeSS or FSR 3.1 (same goes for an FSR or XeSS-only game). It also offers extensive customization options for all users, including those with Nvidia GPUs using DLSS. Key aspects of OptiScaler: * Enables usage of XeSS, FSR2, FSR3, FSR4 2 (RDNA4 only) and DLSS in upscaler-enabled games * Allows users to fine-tune their upscaling experience with a wide range of tweaks and enhancements (RCAS & MAS, Output Scaling, DLSS Presets, Ratio & DRS Overrides etc.) * Since v0.7.0+, added experimental DX12 frame generation support with possible HUDfix solution (OptiFG by FSR3) * Supports Fakenvapi integration - enables Reflex hooking and injecting Anti-Lag 2 (RDNA1+ only) or LatencyFlex (LFX) * Since v0.7.7, support for Nukem's FSR FG mod dlssg-to-fsr3 has also been added * For a detailed list of all features, check Features !!! Important Always check the Wiki Compatibility list for known game issues and workarounds. Also please check the Optiscaler known issues at the end regarding RTSS compatibility. A separate FSR4 Compatibility list is available for community-sourced tested games. How it works? ============= OptiScaler implements the necessary API methods of DLSS2+ & NVAPI, XeSS and FSR2+ to act as a middleware. It intercepts upscaler calls from the game (Inputs) and redirects them to the chosen upscaling backend (Output), allowing games using one technology to use another of your choice. Inputs -> OptiScaler -> Outputs --- Note Pressing Insert should open the Optiscaler Overlay in-game with all of the options (ShortcutKey= can be changed in the config file). Pressing Page Up shows the performance stats overlay in the top left, and can be cycled between different modes with Page Down. Which APIs and Upscalers are Supported? ======================================= Currently OptiScaler can be used with DirectX 11, DirectX 12 and Vulkan, but each API has different sets of upscaler options. OptiFG currently only supports DX12 and is explained in a separate paragraph. For DirectX 12 * XeSS (Default) * FSR2 2.1.2, 2.2.1 * FSR3 3.1 (and FSR2 2.3.2) * DLSS * FSR4 (Preliminary support, RDNA4 only) For DirectX 11 * FSR2 2.2.1 (Default, native DX11) * FSR3 3.1.2 (unofficial port to native DX11) * XeSS, FSR2 2.1.2, 2.2.1, FSR3 3.1 w/Dx12 (via D3D11on12) 1 * DLSS (native DX11) * XeSS 2.x (native DX11, Intel ARC only) For Vulkan * FSR2 2.1.2 (Default), 2.2.1 * FSR3 3.1 (and FSR2 2.3.2) * DLSS * XeSS 2.x OptiFG (powered by FSR3 FG) + HUDfix (experimental HUD ghosting fix) ==================================================================== OptiFG was added with v0.7 and is only supported in DX12. It's an experimental way of adding FSR3 FG to games without native Frame Generation, or can also be used as a last case scenario if the native FG is not working properly. For more information on OptiFG and how to use it, please check the Wiki page - OptiFG. Installation ============ !!! Caution Warning: Do not use this mod with online games. It may trigger anti-cheat software and cause bans! [Automated] 1. Extract all of the Optiscaler files by the main game exe (for Unreal Engine games, that's usually the win_shipping.exe in one of the subfolders, generally \Game-or-Project-name\Binaries\Win64 or WinGDK\, ignore the Engine folder) 2. Try the OptiScaler Setup.bat script for automating the renaming process. 3. If the Bat file wasn't successful, please check the Manual steps. [Manual] Nvidia Step-by-step installation: 1. Extract all Optiscaler files from the zip by the main game exe (for Unreal Engine games, that's usually the win_shipping.exe in one of the subfolders, generally \Game-or-Project-name\Binaries\Win64 or WinGDK\, ignore the Engine folder). 2. Rename OptiScaler's OptiScaler.dll (for old versions, it's nvngx.dll) to one of the supported filenames (preferred dxgi.dll, but depends on the game) 1 Note For FSR2/3-only games that don't have DLSS (e.g. The Callisto Protocol or The Outer Worlds: Spacer's Choice Edition), you have to provide the nvngx_dlss.dll in order to use DLSS in Optiscaler - download link e.g. TechPowerUp or Streamline SDK repo AMD/Intel Step-by-step installation: 1. Extract all Optiscaler files from the zip by the main game exe (for Unreal Engine games, that's usually the win_shipping.exe in one of the subfolders, generally \Game-or-Project-name\Binaries\Win64 or WinGDK\, ignore the Engine folder) 2. Rename OptiScaler's OptiScaler.dll (for old versions, it's nvngx.dll) to one of the supported filenames (preferred dxgi.dll, but depends on the game) 1 3a. Either locate the nvngx_dlss.dll file (for UE games, generally in one of the subfolders under Engine/Plugins), create a copy, rename the copy to nvngx.dll and put it beside Optiscaler 3b. OR download nvngx_dlss.dll from e.g. TechPowerUp or Streamline SDK repo if you don't want to search, rename it to nvngx.dll and put it beside Optiscaler [Nukem's dlssg-to-fsr3] 1. Download the mod's regular version - dlssg-to-fsr3 NexusMods or dlssg-to-fsr3 Github 2. Put the dlssg_to_fsr3_amd_is_better.dll in the same folder as Optiscaler (by the main game exe) and set FGType=nukems in Optiscaler.ini 3. For AMD/Intel GPUs, Fakenvapi is also required when using Nukem mod in order to successfully expose DLSS FG in-game. [Fakenvapi] 0. Do not use with Nvidia, only required for AMD/Intel 1. Download the mod - Fakenvapi 2. Extract the files and transfer nvapi64.dll and fakenvapi.ini to the same folder as Optiscaler (by the main game exe) Anti-Lag 2 only supports RDNA cards and is Windows only atm (shortcut for cycling the overlay - Alt+Shift+L). For information on how to verify if Anti-Lag 2 is working, please check Anti-Lag 2 SDK. Latency Flex is cross-vendor and cross-platform, can be used as an alternative if AL2 isn't working. *** Tip Linux users should add renamed dll to overrides: WINEDLLOVERRIDES=dxgi=n,b %COMMAND% !!! Important Please don't rename the ini file, it should stay as OptiScaler.ini. --- Note OptiScaler supports these filenames: * dxgi.dll * winmm.dll * dbghelp.dll (nightly only) * d3d12.dll (nightly only) * version.dll * wininet.dll * winhttp.dll * OptiScaler.asi (with an ASI loader) --- Note If there is another mod (e.g. Reshade etc.) that uses the same filename (e.g. dxgi.dll), you can create a new folder called plugins and put other mod files in this folder. OptiScaler will check this folder and if it finds the same dll file (for example dxgi.dll), it will load this file instead of the original library. Uninstallation ============== * Run DisableSignatureOverride.reg file * Delete EnableSignatureOverride.reg, DisableSignatureOverride.reg, OptiScaler.dll (for old versions, it's nvngx.dll), OptiScaler.ini files (if you used Fakenvapi and/or Nukem mod, then also delete fakenvapi.ini, nvapi64.dll and dlssg_to_fsr3 files) * If there was a libxess.dll file and you have backed it up, delete the new file and restore the backed up file. If you overwrote/replaced the old file, DO NOT delete libxess.dll file. If there was no libxess.dll before, it's safe to delete. Same goes for FSR files (amd_fidelityfx). Known Issues ============ If you can't open the in-game menu overlay: * Please check that you have enabled DLSS, XeSS or FSR from game options * If using legacy installation, please try opening menu while you are in-game (while 3D rendering is happening) * If you are using RTSS (MSI Afterburner, CapFrameX), please enable this setting in RTSS and/or try updating RTSS. When using OptiFG please disable RTSS for best compatibility