Upscaling with DLSS and FSR
UNIGINE provides support for two advanced upscaling technologies: NVIDIA DLSS (Deep Learning Super Sampling) and AMD FSR 2 (FidelityFX Super Resolution 2). These technologies enable upscaling on a wide range of devices from different manufacturers.
These upscaling technologies are used to render high-resolution images based on the lower resolution source. If both upscalers are available, you can choose between them, or you can turn off upscaling at all. We suggest using the DLSS technology as it produces high-quality results with fewer visual artifacts.
Requirements and Restrictions#
The DLSS and FSR 2 upscalers have specific requirements and compatibility restrictions determining whether the application supports these features.
The upscalers are initialized on render initialization. To verify whether they are supported and initialized after application startup, you can do one of the following:
For example, the Render section may provide the following information:
---- Render ----
DLSS is supported
DLSS Streamline version: 2.4.0
DLSS NGX version: 3.7.0
FSR is supported
FSR Version: 2.2.2
FSR Max Contexts: 8
FSR RAM Scratch Size: 10 MB
If the upscaler is not supported, a corresponding message will be displayed in the console.
DLSS#
For proper work, DLSS must meet the following requirements:
- Platforms: Windows
- Graphic API: DirectX 12
- Hardware: any GeForce RTX GPU and RTX 40 Series GPU.
- Driver: 522.25 version or newer.
For example, if you run the application with a GPU that is not listed, you will receive the following message in the console:
DLSS is not supported
Not an Nvidia GPU
FSR 2#
FSR 2 must meet the following requirements:
- Platforms: Windows
- Graphic API: DirectX 12
- Hardware: any GPUs supporting Shader Model 6.2.
- Driver: no special requirements.
For example, if you run the application with a graphic API other than DirectX 12, you will receive the following messages in the console:
FSR is not implemented, FSR is currently available only for DX12
Using DLSS#
For DLSS technology to work properly with UNIGINE, additional environment configuration is required.
- Follow this link to download the NVIDIA Streamline SDK, which serves as a wrapper for DLSS and all its features.
-
Click Access Github.
Before proceeding, review the license details and make sure you accept all of its terms and conditions:
On the page that opens, find the license.txt file in the list of files and folders.
- Open the file and read the text carefully.
Switch to the repository homepage by clicking Streamline.
- Find the NVIDIA Nsight Perf SDK License (28Sept2022).pdf file mentioned in the license.txt in the same list of files and folders.
- Open it and read the license carefully.
- If you accept all of the terms and conditions, proceed with the following steps.
- Switch to the repository homepage by clicking Streamline as you did previously.
-
On the page that opens, click the green Code button and select Download ZIP from the drop-down list.
- Navigate to the folder containing the downloaded Streamline-main.zip archive. This is typically the Downloads folder.
- Extract the ZIP archive. By default, it is extracted to the Streamline-main folder. However, you can rename it if necessary.
Before proceeding, review the license details and make sure you accept all of its terms and conditions:
- Open the Streamline-main/bin/x64 folder and find the nvngx_dlss.license.txt text file.
- Open the file and read the license carefully.
- If you accept all of the terms and conditions, proceed with the following steps.
Close the file, return to the Streamline-main/bin/x64 folder and find the following files:
You don't need to install the Streamline SDK. Simply navigate to the folder.- nvngx_dlss.dll
- nvngx_dlss.license.txt
- sl.common.dll
- sl.dlss.dll
- sl.interposer.dll
-
Copy these files to the bin folder of your UNIGINE project:
By copying the license file, you confirm that you accept all the terms and conditions it provides.- Find your project in the UNIGINE SDK Browser and select Other Actions -> Open folder.
- In the directory that opens, find and open the bin folder.
- Copy the 5 files listed above.
Return to the Streamline-main root folder and find the following license files:
- license.txt
- NVIDIA Nsight Perf SDK License (28Sept2022).pdf
Copy these files to the root folder of your UNIGINE project.
By copying the license files, you confirm that you accept all the terms and conditions it provides.- The changes will be applied at the next application start-up. So, if you have UnigineEditor opened, restart it to apply changes.
-
In UnigineEditor, open the console and check that DLSS is available. The corresponding information is provided in the Render section:
If DLSS is not available, the corresponding message will be shown in the console.
To use DLSS for the scene, enable it in one of the following ways and specify settings:
-
Via the UnigineEditor interface:
-
Using the render_upscale_mode console command:
render_upscale_mode 2
Using FSR2#
Before applying FSR 2 upscaling, you should check if it is available. In UnigineEditor, open the console and check the information provided in the Render section:
To use FSR 2 for the scene, enable it in one of the following ways and specify settings:
-
Via the UnigineEditor interface:
-
Using the render_upscale_mode console command:
render_upscale_mode 1
Settings of Upscalers#
Depending on the current upscale mode, the set of settings differs. Please refer to the Upscalers article.
When to Apply Upscaling#
By default, upscaling is applied before all post-processing effects are rendered. However, you can choose to apply upscaling after rendering the post-process effects.
It can be done via the console using the render_upscale_post command or in UnigineEditor by toggling the Upscale After Post Effects parameter.
FSR Contexts#
A context is a single call per upscaling operation. The number of contexts that can be upscaled with FSR 2 is limited and can defined by the fsr_max_contexts console command. The recommended number of contexts is 8. Specifying the number of contexts is necessary when rendering into multiple viewports: the number of the viewports must correspond to the number of contexts.