Conifer's goal is to help game developers provide high performance, high quality games to their players. Upscaler fulfills these goals by bringing a convienent 4-in-1 upscaling solution to Unity's URP in an easy-to-integrate way.
Features
Supported Configurations
DLSS
NVIDIA's DLSS stands for Deep Learning Super Sampling. It is a very fast machine learning upscaling algorithm. Upscaler uses the most recent version of DLSS (3.7.20) internally. While NVIDIA markets DLSS 3 as having more than just an upscaling component, Upscaler only uses its upscaling feature at this time. DLSS is available when using any of the three supported graphics APIs.
FSR
AMD's FSR stands for FidelityFX Super Resolution. It is a handcrafted algorithm designed to quickly upscale frames. Upscaler has adopted FSR 3.1.3, AMD's latest version of FSR. This update bring improved upscaling quality as well as support for an anti-aliasing only mode. FSR 3.1 is available when using Vulkan or DirectX 12.
XeSS
Intel's XeSS stands for Xe Super Sampling. It is an AI-powered algorithm that excells on Intel's Battlemage GPUs. It provides high quality frames at a fast pace. We are releasing with support for XeSS version 1.3.1. We are excited to see where XeSS will go in the future. XeSS is available when using DirectX 12.
SGSR
Qualcomm's SGSR stands for Snapdragon Game Super Resolution. It is an algorithm derived from FSR and specially optimized for mobile devices while remaining performant on desktop devices and still maintaining high quality upscaling. Two versions exist: a spatial version and a temporal version. Upscaler provides both.
Performance
In GPU limited scenes framerate will increase based on the selected quality mode (until a CPU bottleneck is hit). In CPU limited scenes Upscaler may decrease framerate. This is due to the fact that issuing upscaling commands to the GPU requires extra CPU time. While this is unavoidable, Upscaler's robust and performant C++ backend minimizes these effects.
Render Pipeline Integration
Our integration is as simple as it gets. Put the Upscaler.cs script onto the camera, then add the UpscalerRendererFeature to the camera's renderer and restart Unity. Though Upscaler will not support custom render pipelines out of the box it should be fairly easy to get working. If you encounter any snags, please contact Conifer support below.
Documentation and Support
This asset has been extensively tested internally at Conifer, however the community will inevitably use Upscaler in new and unexpected ways. To help understand how to use Upscaler in these new situations, offline documentation is available in the package. If Upscaler does not work in your project (even if you are using a custom render pipeline), please let us know at briankirk@conifercomputing.com or join our Discord and we will do our best to help you integrate it.
; see Third-Party Notices.txt file in package for license details.