[UE4.26] [Nvidia DLSS Bug] DLSS causes issues with Post Process Materials utilizing Absolute World Position and other screensize-based nodes

Apologies if this is not the correct forum topic for this. I’m using Nvidia’s DLSS plugin in UE4.26 and it’s interfering with Post Process Materials rendering order.
As new users can only put 1 embedded photo I’m linking out to a Reddit Post containing the same info and all photos.

Steps to repro:

1. Make a Post Process Material as below and assign it to an unbound Post Process volume (photo 1)

2. Install Nvidia DLSS plugin and enable it

3. In-editor it should appear correctly, splitting the world between SceneColor and pure white along the x-axis at 0,0,0 world origin (photo 2).

4. Play via PIE and walk around the world with DLSS enabled to see the bug (photo 3+4). The "world origin" is ignored and the Absolute World Position seems to change and rotate around an axis as the camera is moved or the player walks around the world.

5. Use the cvar r.NGX.DLSS.Enable 0 to turn DLSS off while in PIE and watch the PPM return to its correct static visual.

This SHOULD split the world on the X axis between white and normal scene color, however in PIE with DLSS enabled the split waves around as you move around the level like it’s attached to the camera.

The PPM’s effect also appears highly pixelated, leading me to believe the DLSS screen resolution change and sampling is happening at a weird time before or after the PPM is applied.

If you set the Post Process Material Blendable Location settings to Before Tonemapping (it will look ugly) but it will also behave accurately.

DLSS also appears to affect ViewSize or ScreenPosition nodes in PostProcess Materials for example being used to sample and blur/copy or distort the screen in a Post Process Material function. An example would be using ViewSize and ScreenPosition as inputs in a radialblur function and blending that on top of the SceneColor, the ViewSize and ScreenPosition nodes seem to be stretched, pixelated, and offset (as if resized via screen resolution!), rather than the accurate size of the screen/window.

I’ve attached 3 additional pictures showing how a SphereMask set to 0,0,0 Absolute World Position also moves around in-game but appears normal In-Editor or with DLSS off.

If there’s something I can do to resolve this please let me know. If this is a bug, please verify it is and will or won’t be fixed in the future. Thank you!

Thanks for reaching out to us.

DLSS sits in the pipeline where Temporal Upsampling (TAAU) is at the beginning of the post processing pipeline.

We were able to reproduce the behavior with DLSS off and TAAU enabled by setting r.TemporalAA.Upsampling to 1 and changing the screen percentage in the editor UI or via r.ScreenPercentage.

To fix the post process material for TAAU & DLSS, the post process material would need to be adjusted. Please see the “Post Process Material after Temporal Upsample” section in the UE4 Documentation.

Regards,

NVIDIA DLSS Team

1 Like