Skip to content

OptiScaler bridges upscaling/frame gen across GPUs. Supports DLSS2+/XeSS/FSR2+ inputs, replaces native upscalers, enables FSR3 FG on non-FG titles. Supports Nukem mod for DLSSG-to-FSR3 FG.

License

Notifications You must be signed in to change notification settings

cdozdil/OptiScaler

Repository files navigation

Logo

Table of Contents

1. About
2. How it works?
3. Supported APIs and Upscalers
4. Installation
5. Known Issues
6. Compilation and Credits
7. Wiki

About

OptiScaler is a tool that lets you replace upscalers in games that already support DLSS2+ / FSR2+ / XeSS ($^1$), now also supports enabling frame generation in those same games (through Nukem's dlssg-to-fsr3 or OptiFG). It also offers extensive customization options for all users, including those with Nvidia GPUs using DLSS.

Tip

For example, if a game has DLSS only, Optiscaler can be used to replace DLSS with XeSS or FSR 3.1 (also works for FSR2-only games, like The Outer Worlds Spacer's Choice).

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) - not bundled$^3$
  • Since v0.7.7, added support for Nukem's FSR FG mod dlssg-to-fsr3, only supports games with native DLSS-FG - not bundled$^3$
  • 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.
[3] For not bundled items, please check Installation.

Note

Expand for [1], [2]

[1] Regarding XeSS, since Unreal Engine plugin does not provide depth, replacing in-game XeSS breaks other upscalers (e.g. Redout 2 as a XeSS-only game), 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).

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 for FSR inputs.

[2] Regarding FSR4, support added with recent Nightly builds. Please check FSR4 Compatibility list for known supported games and general info.

Official Discord Server: DLSS2FSR

This project is based on PotatoOfDoom's excellent CyberFSR2.

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.

image

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 supported upscalers.
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 (via FSR3.X update, 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)

Note

Expand for [1]

[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.

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!

Important

For installation steps, please check the Wiki

Configuration

Please check this document for configuration parameters and explanations. If your GPU is not an Nvidia one, check GPU spoofing options (Will be updated)

Known Issues

If you can't open the in-game menu overlay:

  1. Please check that you have enabled DLSS, XeSS or FSR from game options and are in-game, not inside game settings
  2. If using legacy installation, please try opening menu while you are in-game (while 3D rendering is happening)
  3. 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.

image

Please check this document for the rest of the known issues and possible solutions for them.
Also check the community Wiki for possible game issues and HUDfix incompatible games.

Compilation

Requirements

  • Visual Studio 2022

Instructions

  • Clone this repo with all of its submodules.
  • Open the OptiScaler.sln with Visual Studio 2022.
  • Build the project

Thanks

  • @PotatoOfDoom for CyberFSR2
  • @Artur for DLSS Enabler and helping me implement NVNGX api correctly
  • @LukeFZ & @Nukem for their great mods and sharing their knowledge
  • @FakeMichau for continous support, testing and feature creep
  • @QM for continous testing efforts and helping me to reach games
  • @TheRazerMD for continous testing and support
  • @Cryio, @krispy, @krisshietala, @Lordubuntu, @scz, @Veeqo for their hard work on compatibility matrix
  • And the whole DLSS2FSR community for all their support

Credit

This project uses FreeType licensed under the FTL

About

OptiScaler bridges upscaling/frame gen across GPUs. Supports DLSS2+/XeSS/FSR2+ inputs, replaces native upscalers, enables FSR3 FG on non-FG titles. Supports Nukem mod for DLSSG-to-FSR3 FG.

Topics

Resources

License

Stars

Watchers

Forks

Languages