This repository showcases a sample implementation of the Detached FSR/DLSS Framework. It is possible to run the sample without detaching the upscaler as well. You can access the documentation for the individual methods used below:
Building the sample is exactly the same as building the FidelityFX SDK. You can find the instructions here. Be sure to build "Native-backed DLL" version.
To build our modified sample you should follow these instructions:
- Install the following software developer tool minimum versions:
- CMake 3.17
- Visual Studio 2019
- Windows 10 SDK 10.0.18362.0
- Vulkan SDK 1.3.239 (Not used in the sample, but required for the FidelityFX SDK)
- Generate Visual Studio FSR sample solutions:
Native-backend DLL version
> <installation path>\BuildFSRSolutionNativeDll.bat
This will generate a build\
directory where you will find the solution for either the native-backend-backed SDK samples (FidelityFX SDK Native.sln
).
Also be sure to download media files using the following command:
> <installation path>\UpdateMedia.bat
More information about this tool can be found here.
Detaching the upscaler from the rendering process requires both process to be in sync. To account for scheduling issues and not to drop any rendered frames, both processes will wait for each other to fill/empty the resource pool. The resource pool is a static pool of 10 buffers. Each buffer has enough space for all the required resources for both FSR and DLSS to function.
It is possible to optimize this aspect by using a dynamic resource pool. This will allow the upscaler to run at a different rate than the renderer. However, at this time this sample is no more than a proof of concept.
Since we deploy two seperate processes for the upscaling and rendering, it becomes difficult to run it within the Visual Studio IDE. We recommend building the solution and the use the helper CLI tool (governor) to run the sample.
- Build the solution using the instructions above.
- Run the sample using the following command:
# Display help
python governor.py -h
# Example usage
python governor.py --render-res 1285 835 --upscaler FSR3
# Example usage without detaching the upscaler
python governor.py --render-res 1285 835 --upscaler FSR3 --use-default
# Example usage if you want to launch the upscaler from Visual Studio
python governor.py --render-res 1285 835 --upscaler FSR3 --skip-upscaler # This will skip launching the upscaler