-
-
Notifications
You must be signed in to change notification settings - Fork 4k
Open
Labels
A-RenderingDrawing game state to the screenDrawing game state to the screenC-FeatureA new feature, making something new possibleA new feature, making something new possibleS-BlockedThis cannot move forward until something else changesThis cannot move forward until something else changes
Milestone
Description
What problem does this solve or what need does it fill?
We already have TAA. DLSS takes temporal rendering a step further, and renders at a lower resolution and then upscales it over time. This can be a huge performance increase when the cost of shading a pixel is very expensive, such as in per-pixel ray/path tracing.
What solution would you like?
Integrate DLSS as an optional anti-aliasing method, completing our existing MSAA, FXAA, TAA options.
Current Progress
- I have a seemingly-working
dlss_wgpu
crate allowing usage of DLSS from wgpu https://github.com/JMS55/dlss_wgpu- Depends on my wgpu fork More as_hal() methods gfx-rs/wgpu#3376
- I have a branch of bevy adding support for DLSS https://github.com/JMS55/bevy/blob/dlss/crates/bevy_core_pipeline/src/dlss.rs
Problems
- Quality seems bad/wrong - there's heavy aliasing even at 4k quality mode. I'm not sure why.
- There's a crash when enabling one of the ultra quality/performance modes (I forget which).
- Currently using DLSS requires disabling pipelined rendering, due to non-thread safety of the DLSS SDK. I need to figure out how to get around this.
- I haven't setup support (in either dlss_wgpu or bevy) for DLSS A-F presets (different from the quality/performance modes).
- Only Vulkan is supported, and not yet DirectX12.
What alternative(s) have you considered?
DLSS is NVIDIA only, and closed-source. FSR (#5232) is an alternative option from AMD that works on more GPUs and is open-source. There's also XeSS from Intel. For macOS, the only option is MTLFXTemporalScaler.
I've looked into integrating FSR but ran into difficulties. I haven't bothered looking into XeSS or MTLFXTemporalScaler.
starwolfy, MatrixDev, ping-xiong, GriffinSchneider, zamazan4ik and 2 more
Metadata
Metadata
Assignees
Labels
A-RenderingDrawing game state to the screenDrawing game state to the screenC-FeatureA new feature, making something new possibleA new feature, making something new possibleS-BlockedThis cannot move forward until something else changesThis cannot move forward until something else changes