Skip to content

Commit 66bbb93

Browse files
committed
2 parents 5a2f406 + 9ddc9fc commit 66bbb93

File tree

2 files changed

+81
-42
lines changed

2 files changed

+81
-42
lines changed

Features.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
## Features
2+
* Supports multiple upscaling backends (XeSS, FSR 2.1.2, FSR 2.2.1, FSR 3.1 and DLSS)
3+
* Experimental support for frame generation (OptiFG by FSR) with version 0.7.0 and above
4+
* Supports DLSS 3.7 and above (check [installation instructions](#install-as-non-nvngx))
5+
* Supports DLSS-D (Ray Reconstruction) on Nvidia cards (Supports changing presets and using OptiScaler enhancements)
6+
* Ability to modify DLSS/DLSS-D presets on the fly
7+
* Supports XeSS v1.3.x's Ultra Performance, NativeAA modes (**Not using default XeSS 1.3.x scaling ratios, rather the old ones**)
8+
* An [in-game menu](https://github.com/cdozdil/OptiScaler/blob/master/Config.md) for tuning and saving settings on the fly (Shortcut key is **INSERT**)
9+
* Full integration with [DLSS Enabler](https://www.nexusmods.com/site/mods/757) for DLSS-FG support
10+
* **RCAS** support with **MAS** (Motion Adaptive Sharpening) for all Dx12 & Dx11 upscalers
11+
* **Output Scaling** option (0.5x to 3.0x) for backends running on Dx12 & Dx11
12+
* Supports DXGI spoofing (when running as `dxgi.dll`) as Nvidia GPUs (with XeSS detection to enable XMX on Intel Arc cards)
13+
* Supports Vulkan spoofing (needs to be enabled from `nvngi.ini`) as Nvidia GPUs (not working for Doom Eternal)
14+
* Supports loading specific `nvapi64.dll` file (when running in non-nvngx mode)
15+
* Supports loading specific `nvngx_dlss.dll` file (when running in non-nvngx mode)
16+
* Supports overriding scaling ratios
17+
* Supports overriding DRS range
18+
* Autofixes for [colored lights](https://github.com/cdozdil/OptiScaler/blob/master/Config.md#resource-barriers-dx12-only) on Unreal Engine & AMD graphics cards
19+
* Autofixes for [missing exposure texture](https://github.com/cdozdil/OptiScaler/blob/master/Config.md#init-flags) information
20+
* Ability to modify [Mipmap Lod Bias](https://github.com/cdozdil/OptiScaler/blob/master/Config.md#mipmap-lod-bias-override-dx12-only) game value
21+
* Supports [Fakenvapi](https://github.com/FakeMichau/fakenvapi) integration which enables Reflex hooking and injecting Anti-Lag 2 or LatencyFlex (LFX)
22+
* Supports Nukem's FSR FG mod [dlssg-to-fsr3](https://github.com/Nukem9/dlssg-to-fsr3) (since version 0.7.7)
23+
24+
**To overcome DLSS 3.7's signature check requirements, OptiScaler uses a method developed by **Artur** (creator of [DLSS Enabler](https://www.nexusmods.com/site/mods/757?tab=description)).**

README.md

+57-42
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,51 @@
11
![opti-logo](https://github.com/user-attachments/assets/c7dad5da-0b29-4710-8a57-b58e4e407abd)
22

3+
## Table of Contents
4+
5+
**1.** [**About**](#about)
6+
**2.** [**How it works?**](#how-it-works)
7+
**3.** [**Supported APIs and Upscalers**](#which-apis-and-upscalers-are-supported)
8+
**4.** [**Installation**](#installation)
9+
**5.** [**Known Issues**](#known-issues)
10+
**6.** [**Compilation and Credits**](#compilation)
11+
**7.** [**Wiki**](https://github.com/cdozdil/OptiScaler/wiki)
12+
13+
## About
14+
315
**OptiScaler** is a tool that lets you replace upscalers in games that ***already support*** DLSS2+ / FSR2+ / XeSS, now also supports enabling frame generation (through OptiFG or Nukem's dlssg-to-fsr3).
416

517
While previously only DLSS2+ inputs were supported, newer versions also added support for XeSS and FSR2+ inputs (_with some caveats_$`^1`$). 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.
618

719
**Key aspects of OptiScaler:**
820
- Enables usage of XeSS, FSR2, FSR3, **FSR4**$`^2`$ and DLSS in upscaler-enabled games
9-
- Allows users to fine-tune their upscaling experience
10-
- Offers a wide range of tweaks and enhancements (RCAS & MAS, Output Scaling, DLSS Presets, Ratio & DRS Overrides etc.)
11-
- With version 0.7.0 and above, added experimental frame generation support with possible HUDfix solution ([**OptiFG**](#optifg-powered-by-fsr3-fg--hudfix-experimental-hud-ghosting-fix) by FSR3)
12-
- Supports integration with [**Fakenvapi**](#fakenvapi) which enables Reflex hooking and injecting _Anti-Lag 2_ (RDNA1+ only) or _LatencyFlex_ (LFX) - **_not bundled_**
13-
- Since version 0.7.7, support for Nukem's FSR FG mod [**dlssg-to-fsr3**](#nukems-dlssg-to-fsr3) has also been added - **_not bundled_**
21+
- 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.)
22+
- Since v0.7.0+, added experimental frame generation support with possible HUDfix solution ([**OptiFG**](#optifg-powered-by-fsr3-fg--hudfix-experimental-hud-ghosting-fix) by FSR3)
23+
- Supports [**Fakenvapi**](#fakenvapi) integration - enables Reflex hooking and injecting _Anti-Lag 2_ (RDNA1+ only) or _LatencyFlex_ (LFX) - **_not bundled_**$`^3`$
24+
- Since v0.7.7, support for Nukem's FSR FG mod [**dlssg-to-fsr3**](#nukems-dlssg-to-fsr3) has also been added - **_not bundled_**$`^3`$
25+
- For a detailed list of all features, check [Features](Features.md)
26+
1427

1528
> [!IMPORTANT]
1629
> _**Always check the [Wiki Compatibility list](https://github.com/cdozdil/OptiScaler/wiki) for known game issues and workarounds.**_
1730
> Also please check the [***Optiscaler known issues***](#known-issues) at the end regarding **RTSS** compatibility
1831
1932
> [!NOTE]
20-
> *[1] Regarding **XeSS**, since Unreal Engine plugin does not provide depth, replacing in-game XeSS breaks other upscalers, but you can still apply RCAS sharpening to XeSS to reduce blurry visuals (in short, if it's a UE game, in-game XeSS only works with XeSS in OptiScaler overlay).*
33+
> <details>
34+
> <summary><b>Expand for [1], [2] and [3]</b></summary>
35+
>
36+
> ***[1]** Regarding **XeSS**, since Unreal Engine plugin does not provide depth, replacing in-game XeSS breaks other upscalers, but you can still apply RCAS sharpening to XeSS to reduce blurry visuals (in short, if it's a UE game, in-game XeSS only works with XeSS in OptiScaler overlay).*
2137
>
2238
> *Regarding **FSR inputs**, FSR 3.1 is the first version with a fully standardised, forward-looking API and should be fully supported. Since FSR2 and FSR3 support custom interfaces, game support will depend on the developers' implementation. With Unreal Engine games, you might need [ini tweaks](https://github.com/cdozdil/OptiScaler/wiki/Unreal-Engine-Tweaks) for FSR inputs.*
2339
>
24-
> *[2] Regarding **FSR4**, support added with recent Nightly builds. Please check [FSR4 Compatibility list](https://github.com/cdozdil/OptiScaler/wiki/FSR4-Compatibility-List) for known supported games.*
40+
> ***[2]** Regarding **FSR4**, support added with recent Nightly builds. Please check [FSR4 Compatibility list](https://github.com/cdozdil/OptiScaler/wiki/FSR4-Compatibility-List) for known supported games.*
41+
>
42+
> ***[3]** For **not bundled** items, please check [Installation](#installation)*
43+
> </details>
44+
2545

46+
## Official Discord Server: [DLSS2FSR](https://discord.gg/2JDHx6kcXB)
47+
48+
*This project is based on [PotatoOfDoom](https://github.com/PotatoOfDoom)'s excellent [CyberFSR2](https://github.com/PotatoOfDoom/CyberFSR2).*
2649

2750
## How it works?
2851
OptiScaler implements the necessary API methods of DLSS2+ & NVAPI, XeSS and FSR2+ to act as a middleware. It interprets calls from the game and redirects them to the chosen upscaling backend, allowing games using one technology to use another one of your choice.
@@ -31,12 +54,10 @@ OptiScaler implements the necessary API methods of DLSS2+ & NVAPI, XeSS and FSR2
3154
3255
![image](https://github.com/user-attachments/assets/e138c979-c5d9-499f-a89b-165bb7cfcb32)
3356

34-
## Official Discord Server: [DLSS2FSR](https://discord.gg/2JDHx6kcXB)
35-
36-
*This project is based on [PotatoOfDoom](https://github.com/PotatoOfDoom)'s excellent [CyberFSR2](https://github.com/PotatoOfDoom/CyberFSR2).*
3757

3858
## Which APIs and Upscalers are Supported?
39-
Currently **OptiScaler** can be used with DirectX 11, DirectX 12 and Vulkan, but each API has different sets of upscaler options. [**OptiFG**](#optifg-powered-by-fsr3-fg--hudfix-experimental-hud-ghosting-fix) currently **only supports DX12** and is explained in a separate paragraph.
59+
Currently **OptiScaler** can be used with DirectX 11, DirectX 12 and Vulkan, but each API has different sets of upscaler options.
60+
[**OptiFG**](#optifg-powered-by-fsr3-fg--hudfix-experimental-hud-ghosting-fix) currently **only supports DX12** and is explained in a separate paragraph.
4061

4162
#### For DirectX 12
4263
- XeSS (Default)
@@ -53,7 +74,11 @@ Currently **OptiScaler** can be used with DirectX 11, DirectX 12 and Vulkan, but
5374
- XeSS 2.x (_soon™, but Intel ARC only_)
5475

5576
> [!NOTE]
56-
> _[1] These implementations use a background DirectX12 device to be able to use Dirext12-only upscalers. There is a 10-15% performance penalty for this method, but allows many more upscaler options. Also native DirectX11 implementation of FSR 2.2.1 is a backport from Unity renderer and has its own problems of which some were fixed by OptiScaler. **These implementations do not support Linux** and will result in a black screen._
77+
> <details>
78+
> <summary><b>Expand for [1]</b></summary>
79+
>
80+
> _**[1]** These implementations use a background DirectX12 device to be able to use Dirext12-only upscalers. There is a 10-15% performance penalty for this method, but allows many more upscaler options. Also native DirectX11 implementation of FSR 2.2.1 is a backport from Unity renderer and has its own problems of which some were fixed by OptiScaler. These implementations **do not support Linux** and will result in a black screen._
81+
> </details>
5782
5883
#### For Vulkan
5984
- FSR2 2.1.2 (Default), 2.2.1
@@ -62,26 +87,29 @@ Currently **OptiScaler** can be used with DirectX 11, DirectX 12 and Vulkan, but
6287
- XeSS 2.x (_soon™_)
6388

6489
#### OptiFG (powered by FSR3 FG) + HUDfix (experimental HUD ghosting fix)
65-
**OptiFG** was added with **0.7** builds and is **only supported in DX12**. It uses FSR3 FG to enable Frame Generation in every DX12 upscaler-enabled games, however since FSR3 FG doesn't support HUD interpolation itself, it requires a HUDless resource provided by the game to avoid HUD ghosting.
66-
In games without native FG, Optiscaler tries to find the HUDless resource when the user enables **HUDfix**. Depending on how the game draws its UI/HUD, Optiscaler may or may not be successful in fixing these issues. There are several options for tuning the search.
90+
**OptiFG** was added with **v0.7** and is **only supported in DX12**. It's **enabled by default** with the `FGType=auto` setting in Optiscaler.ini.
91+
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.
92+
Since FSR3 FG doesn't support HUD interpolation, it requires a HUDless resource to avoid HUD ghosting/garbling. In games without native FG, Optiscaler tries finding the HUDless resource when the user **enables HUDfix**. Depending on how the game draws its UI/HUD, Optiscaler may or may not be successful in finding it. There are several options for tuning the search.
6793
A more detailed guide will be available in the [Wiki](https://github.com/cdozdil/OptiScaler/wiki), along with a **list** of **HUDfix incompatible** games.
6894

6995

7096
## Installation
7197
> [!CAUTION]
7298
> _**Warning**: **Do not use this mod with online games.** It may trigger anti-cheat software and cause bans!_
7399
74-
## Recommended installation (with OptiFG and all other features, `non-nvngx`)
75-
76100
> [!IMPORTANT]
77101
> ***Please use the [Nightly builds](https://github.com/cdozdil/OptiScaler/releases/tag/nightly) as the latest Stable is vastly outdated and the Readme does not apply to it anymore due to many missing features.***
78102
> _Fair warning, Nightly builds have Debug logging forced by default due to being bleeding-edge. If everything is working fine, then you can save storage space by disabling it by leaving `LogFile=` blank._
79103
104+
---
105+
80106
### [Automated]
81107
**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 `<path-to-game>\Game-or-Project-name\Binaries\Win64\`, **ignore** the `Engine` folder)_
82108
**2.** Try the `OptiScaler Setup.bat` script for automating the renaming process.
83109
_**3.** If the Bat file wasn't successful, please check the **Manual** steps._
84110

111+
---
112+
85113
### [Manual]
86114
#### Nvidia
87115

@@ -102,12 +130,16 @@ _**3.** If the Bat file wasn't successful, please check the **Manual** steps._
102130

103131
_Check the [screenshot](#example-of-correct-installation-with-additional-fakenvapi-and-nukem-mod) for proper installation_
104132

133+
---
134+
105135
#### [Nukem's dlssg-to-fsr3]
106136

107-
**1.** Download the mod - [**dlssg-to-fsr3 NexusMods**](https://www.nexusmods.com/site/mods/738) or [**dlssg-to-fsr3 Github**](https://github.com/Nukem9/dlssg-to-fsr3)
137+
**1.** Download the mod's regular version - [**dlssg-to-fsr3 NexusMods**](https://www.nexusmods.com/site/mods/738) or [**dlssg-to-fsr3 Github**](https://github.com/Nukem9/dlssg-to-fsr3)
108138
**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`
109139
**3.** For **AMD/Intel GPUs**, **Fakenvapi** is also **required** when using **Nukem mod** in order to successfully expose DLSS FG in-game.
110140

141+
---
142+
111143
#### [Fakenvapi]
112144

113145
**0.** **Do not use with Nvidia**, only required for AMD/Intel
@@ -116,6 +148,8 @@ _Check the [screenshot](#example-of-correct-installation-with-additional-fakenva
116148

117149
_**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](https://github.com/GPUOpen-LibrariesAndSDKs/AntiLag2-SDK?tab=readme-ov-file#testing). **Latency Flex** is cross-vendor and cross-platform, can be used as an alternative if AL2 isn't working._
118150

151+
---
152+
119153
> [!TIP]
120154
> *[1] Linux users should add renamed dll to overrides:*
121155
> ```
@@ -139,13 +173,18 @@ _**Anti-Lag 2** only supports RDNA cards and is Windows only atm (shortcut for c
139173
> ### _Example of correct installation (with additional Fakenvapi and Nukem mod)_
140174
> ![Installation](https://github.com/user-attachments/assets/977a2a68-d117-42ea-a928-78ec43eedd28)
141175
176+
---
177+
142178
> [!NOTE]
143179
> 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.
144180
145181
![image](https://github.com/cdozdil/OptiScaler/assets/35529761/c4bf2a85-107b-49ac-b002-59d00fd06982)
146182
147183
148184
### Legacy installation (deprecated, no FG and limited features, `nvngx.dll`)
185+
<details>
186+
<summary><b>Legacy</b></summary>
187+
149188
`Step-by-step installation:`
150189
1. Download the latest relase from [releases](https://github.com/cdozdil/OptiScaler/releases).
151190
2. Extract the contents of the archive next to the game executable file in your games folder. (e.g. for Unreal Engine games, it's `<path-to-game>\Game-or-Project-name\Binaries\Win64\`)$`^1`$
@@ -163,6 +202,7 @@ _**Anti-Lag 2** only supports RDNA cards and is Windows only atm (shortcut for c
163202
* *You should see a message saying that you successfully added the entries to the registry*
164203
165204
*If your game is not on Steam, it all boils down to opening regedit inside your game's prefix and importing the file.*
205+
</details>
166206
167207
## Update OptiScaler version when using DLSS Enabler
168208
1. Delete/rename `dlss-enabler-upscaler.dll` in game folder
@@ -175,31 +215,6 @@ _**Anti-Lag 2** only supports RDNA cards and is Windows only atm (shortcut for c
175215
* 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)
176216
* 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`).
177217
178-
## Features
179-
* Supports multiple upscaling backends (XeSS, FSR 2.1.2, FSR 2.2.1, FSR 3.1 and DLSS)
180-
* Experimental support for frame generation (OptiFG by FSR) with version 0.7.0 and above
181-
* Supports DLSS 3.7 and above (check [installation instructions](#install-as-non-nvngx))
182-
* Supports DLSS-D (Ray Reconstruction) on Nvidia cards (Supports changing presets and using OptiScaler enhancements)
183-
* Ability to modify DLSS/DLSS-D presets on the fly
184-
* Supports XeSS v1.3.x's Ultra Performance, NativeAA modes (**Not using default XeSS 1.3.x scaling ratios, rather the old ones**)
185-
* An [in-game menu](https://github.com/cdozdil/OptiScaler/blob/master/Config.md) for tuning and saving settings on the fly (Shortcut key is **INSERT**)
186-
* Full integration with [DLSS Enabler](https://www.nexusmods.com/site/mods/757) for DLSS-FG support
187-
* **RCAS** support with **MAS** (Motion Adaptive Sharpening) for all Dx12 & Dx11 upscalers
188-
* **Output Scaling** option (0.5x to 3.0x) for backends running on Dx12 & Dx11
189-
* Supports DXGI spoofing (when running as `dxgi.dll`) as Nvidia GPUs (with XeSS detection to enable XMX on Intel Arc cards)
190-
* Supports Vulkan spoofing (needs to be enabled from `nvngi.ini`) as Nvidia GPUs (not working for Doom Eternal)
191-
* Supports loading specific `nvapi64.dll` file (when running in non-nvngx mode)
192-
* Supports loading specific `nvngx_dlss.dll` file (when running in non-nvngx mode)
193-
* Supports overriding scaling ratios
194-
* Supports overriding DRS range
195-
* Autofixes for [colored lights](https://github.com/cdozdil/OptiScaler/blob/master/Config.md#resource-barriers-dx12-only) on Unreal Engine & AMD graphics cards
196-
* Autofixes for [missing exposure texture](https://github.com/cdozdil/OptiScaler/blob/master/Config.md#init-flags) information
197-
* Ability to modify [Mipmap Lod Bias](https://github.com/cdozdil/OptiScaler/blob/master/Config.md#mipmap-lod-bias-override-dx12-only) game value
198-
* Supports [Fakenvapi](https://github.com/FakeMichau/fakenvapi) integration which enables Reflex hooking and injecting Anti-Lag 2 or LatencyFlex (LFX)
199-
* Supports Nukem's FSR FG mod [dlssg-to-fsr3](https://github.com/Nukem9/dlssg-to-fsr3) (since version 0.7.7)
200-
201-
**To overcome DLSS 3.7's signature check requirements, OptiScaler uses a method developed by **Artur** (creator of [DLSS Enabler](https://www.nexusmods.com/site/mods/757?tab=description)).**
202-
203218
## Configuration
204219
Please check [this](Config.md) document for configuration parameters and explanations. If your GPU is not an Nvidia one, check [GPU spoofing options](Spoofing.md) *(Will be updated)*
205220

0 commit comments

Comments
 (0)