2.4 KiB
title | authors | pull_requests | |||
---|---|---|---|---|---|
Deep Learning Super Sampling (DLSS) |
|
|
For users with NVIDIA RTX GPUs, Bevy now offers yet another form of anti-aliasing: DLSS.
Try it out by running Bevy's anti_aliasing example: cargo run --example anti_aliasing --features dlss --release
(after performing setup from https://github.com/bevyengine/dlss_wgpu).
Additionally, we've open sourced https://github.com/bevyengine/dlss_wgpu as a standalone crate to help other wgpu-based renderers integrate DLSS.
Compared to Bevy's built-in TAA, DLSS:
- Is much higher quality
- Supports upscaling in addition to anti-aliasing, leading to much cheaper render times, particularly when used with GPU-heavy features like Bevy Solari
- Requires a NVIDIA RTX GPU
- Requires running via the Vulkan backend on Windows/Linux (no macOS, web, or mobile support)
To use DLSS in your app:
- See https://github.com/bevyengine/dlss_wgpu for licensing requirements and setup instructions
- Enable Bevy's
dlss
feature - Insert the
DlssProjectId
resource beforeDefaultPlugins
when setting up your app - Check for the presence of
Option<Res<DlssSupported>>
at runtime to see if DLSS is supported on the current machine - Add the
Dlss
component to your camera entity, optionally setting a specificDlssPerfQualityMode
(defaults toAuto
) - Optionally add sharpening via
ContrastAdaptiveSharpening
- Custom rendering code, including third party crates, should account for the optional
MainPassResolutionOverride
to work with DLSS (see thecustom_render_phase
example)
Note that DLSS integration is expected to have some bugs in this release related to certain rendering effects not respecting upscaling settings, and possible issues with transparencies or camera exposure. Please report any bugs encountered.
Other temporal upscalers like AMD's FidelityFX™ Super Resolution (FSR), Intel's Xe Super Sampling XeSS (XeSS), and Apple's MTLFXTemporalScaler are not integrated in this release. However they all use similar APIs, and would not be a challenge to integrate in future releases.
Support for other swapchain-related features like frame interpolation/extrapolation, latency reduction, or dynamic resolution scaling are not currently planned, but support for DLSS Ray Reconstruction for use in Bevy Solari is planned for a future release.
Special thanks to @cwfitzgerald for helping with the wgpu
backend interop APIs.