[RELEASED] NVIDIA DLSS - Upscaling for Unity [Built-in and URP]

+1 for VR support too :slight_smile:

1 Like

Noted!:wink:

+1 for VR support!

When I use your postproc stack (BRP) and add a layer I get the following null ref error even in editor without game runningā€¦

NullReferenceException: Object reference not set to an instance of an object
UnityEngine.Rendering.PostProcessing.AmbientOcclusion.IsEnabledAndSupported (UnityEngine.Rendering.PostProcessing.PostProcessRenderContext context) (at Assets/Alterego Games/Unity-Post-Processing-Stack-dlss/PostProcessing/Runtime/Effects/AmbientOcclusion.cs:189)
UnityEngine.Rendering.PostProcessing.PostProcessLayer.SetLegacyCameraFlags (UnityEngine.Rendering.PostProcessing.PostProcessRenderContext context) (at Assets/Alterego Games/Unity-Post-Processing-Stack-dlss/PostProcessing/Runtime/PostProcessLayer.cs:1073)
UnityEngine.Rendering.PostProcessing.PostProcessLayer.SetupContext (UnityEngine.Rendering.PostProcessing.PostProcessRenderContext context) (at Assets/Alterego Games/Unity-Post-Processing-Stack-dlss/PostProcessing/Runtime/PostProcessLayer.cs:1183)
UnityEngine.Rendering.PostProcessing.PostProcessLayer.BuildCommandBuffers () (at Assets/Alterego Games/Unity-Post-Processing-Stack-dlss/PostProcessing/Runtime/PostProcessLayer.cs:697)
UnityEngine.Rendering.PostProcessing.PostProcessLayer.OnPreCull () (at Assets/Alterego Games/Unity-Post-Processing-Stack-dlss/PostProcessing/Runtime/PostProcessLayer.cs:626)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

Also, this is going to be a big pita to use a custom postproc stack as replacing it breaks my current postproc stack setup and I have dozens of postproc effects all setup in the project already. any way to get around having to resetup every effect on your stack?

My custom PP stack is just the Unity PP stack with a few edits to support FSR 2/DLSS. If you add it to your project, it should automatically use it instead of Unityā€™s PP stack, thus you shouldnā€™t have to resetup every effect.

ā€œShouldā€ ā€“ not my realityā€¦ once your poststack is added and unity stack removed, my volume/layer/debug and are missing scripts and will not allow me to select the same scripts from your stack. Also, in case I feel like setting everything back up, any idea on the null ref?

The missing scripts are because you have a compile error, once that error goes away, everything should relink.

I see that you placed the custom stack in the Alterego Games folder and renamed it, try putting it in the packages folder.

Perfect, thanks for catching my blunder on the folder rename and placement. Iā€™m sure there was a reason to modify the unity proc stack that Iā€™m ignorant to, but I do wonder if in a year or so from now I will even recall that the project is using a modified postproc stackā€¦ or if doing so will be an issue for unity updates new versions in the future.

1 Like

Glad this was the issue! I presume you got it working without any further hickup?

If I could have built proper FSR support without editing the PostProcessing stack I definitely would have, however after many weeks of trying out all different options, this has proven to be the best way.

Alternatively you could try the FSR_BIRP.cs component, without the custom pp stack, but it potentially breaks things. Another way I originally offerent is by using two cameraā€™s, but the way BIRP works, adds a certain cpu overhead oer extra camera, so what you gained on the gpu side, you lost on the cpu side:(

This is a little more work to setup, but gives the least amount of issues and best performance increase! And Unity doesnā€™t really update the pp stack v2 anymore, so weā€™re safe from breaking updates!

hmmmā€¦ that did fix the compile error. And missing scripts. however your stack will not use my postprocprofile it acts like it is a different type. I was using newest poststack in unity 2022.2. Any ideas? I really dont want to manually try and get 30+ effects resetup in a new profile.

Thanks for the deeper dive of the why. I already had your FSR setup prior, useful, thank you. Love DLSS for my specific use caseā€¦ raymarching 3d surfaces. antialiasing noisy distant surfaces without the precision (or gpu) to fully render is vital.

Example (purposeful cranked up specular/normals) NO AA:
9490240--1335676--upload_2023-11-23_15-24-19.jpg

FAA Only:
9490240--1335676--upload_2023-11-23_15-24-19.jpg

DLSS Quality:
9490240--1335682--upload_2023-11-23_15-26-50.jpg

So good for this use case/projectā€¦ and performant boosting. Thanks for bringing this much needed thing to a BRP project. still planning on HRP shift but ugh, itā€™s a big project now and not looking forward to that effort.

9490240--1335679--upload_2023-11-23_15-25-8.jpg

also, does your post proc stack not have a postprocdebug? I used that a lot

What version of the Unity PP stack did you use? Mine is based on 3.3.0 I believe, which is also the latest version. So it should have the exact same features as the original!

Post Stack 3.2.2 is the newest avail in package manager for Unity 2022.2.1f1.

Also, using your stack crashes unity on building if the stack has any postprocess effects on the Layer. Even a single bloom and boom. Works in editor thoughā€¦

Try downloading my demo projects and see how they have the custom pp stack in the project. Something with the way you did it is not right, but Iā€™m unsure what. If you want join my discord server, Iā€™ll be able to give you direct support.

weā€™ll figure it out!

Hello! I get terrible traces of moving objects when using, the anti-ghosting parameter doesnā€™t help, different versions of dlss donā€™t completely cure the problem at long distances. What settings should I check? Iā€™m using unity 2022.3 URP, Iā€™ve tried everything, anti-aliasing is turned off everywhere

Can you show me a screenshot of what you mean? You can PM if youā€™d prefer!

Got it working correctly by updating to Unity 2023.2. Unity 2022 used an older version of postproc stack without that ability to upgrade further. This caused builds to crash and the strange incompatibility of postproc profiles. Thanks for the help

That is super weird! Iā€™ve been using this custom PP stack on many 2021 and 2022 versions, perhaps there is some kind of edge case in your situation. However Iā€™m glad upgrading fixed the issue!

Does this work with VR?
I mean, standalone VR, like Quest 2.
Should work no problem for PCVR, right?

1 Like