DLSS is supported on Nvidia RTX GPUs, and kajiya can currently use it when running on Windows.
Nvidia's DLSS EULA prohibits distribution of the DLSS SDK, so you will have to obtain it yourself. The stand-alone SDK currently requires an NVIDIA Developer Program membership, however the Unreal Enigine 5 plugin does not, yet it contains the necessary files.
Therefore, the easiest way to get DLSS into kajiya is to download the UE5 DLSS plugin, and extract the following:
- Copy
DLSS/Binaries/ThirdParty/Win64/nvngx_dlss.dllto the rootkajiyafolder (where this README resides). - Copy the entire
DLSS/Source/ThirdParty/NGXfolder tocrates/lib/ngx_dlss/NGX
Please make sure you can run bindgen, which is necessary to generate a Rust binding to the SDK. Here's the official installation instructions and requirements page. If cargo complains about libclang.dll, it's probably this.
When building kajiya, use the dlss Cargo feature, and specify temporal upsampling, e.g.:
cargo run --bin view --release --features dlss -- --scene battle --no-debug --temporal-upsampling 1.5 --width 1920 --height 1080
This will run DLSS Quality mode. --temporal-upsampling 2.0 corresponds to Performance.
Please note that while DLSS works well for AAA-style content, it currently struggles with flat colors and smooth gradients. The built-in kajiya TAA and its temporal upsampling tends to look better there.