URP Rendering bug - breaking full pipeline

Randomly getting this error that causes all rendering to stop.

NullReferenceException: Object reference not set to an instance of an object
UnityEngine.Rendering.Universal.Internal.MainLightShadowCasterPass.Configure (UnityEngine.Rendering.CommandBuffer cmd, UnityEngine.RenderTextureDescriptor cameraTextureDescriptor) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/Passes/MainLightShadowCasterPass.cs:123)
UnityEngine.Rendering.Universal.ScriptableRenderer.ExecuteRenderPass (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Rendering.Universal.ScriptableRenderPass renderPass, UnityEngine.Rendering.Universal.RenderingData& renderingData) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/ScriptableRenderer.cs:950)
UnityEngine.Rendering.Universal.ScriptableRenderer.ExecuteBlock (System.Int32 blockIndex, UnityEngine.Rendering.Universal.ScriptableRenderer+RenderBlocks& renderBlocks, UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Rendering.Universal.RenderingData& renderingData, System.Boolean submit) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/ScriptableRenderer.cs:921)
UnityEngine.Rendering.Universal.ScriptableRenderer.Execute (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Rendering.Universal.RenderingData& renderingData) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/ScriptableRenderer.cs:669)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.RenderSingleCamera (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Rendering.Universal.CameraData cameraData, System.Boolean anyPostProcessingEnabled) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/UniversalRenderPipeline.cs:414)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.RenderSingleCamera (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Camera camera) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/UniversalRenderPipeline.cs:323)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.Render (UnityEngine.Rendering.ScriptableRenderContext renderContext, System.Collections.Generic.List`1[T] cameras) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/UniversalRenderPipeline.cs:278)
UnityEngine.Rendering.RenderPipeline.InternalRender (UnityEngine.Rendering.ScriptableRenderContext context, System.Collections.Generic.List`1[T] cameras) (at <14c3e404c974480fb218229516cafd50>:0)
UnityEngine.Rendering.RenderPipelineManager.DoRenderLoop_Internal (UnityEngine.Rendering.RenderPipelineAsset pipe, System.IntPtr loopPtr, System.Collections.Generic.List`1[T] renderRequests, Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle safety) (at <14c3e404c974480fb218229516cafd50>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

Edit: This will error every frame and crash unity after about 30 sec, I’m assuming due to a memory leak as it takes >30gb ram when it crashes.

If I toggle the camera on and off I get:

AssertionException: Editor camera must resolve target upon finish rendering.
Assertion failure. Value was False
Expected: True
UnityEngine.Assertions.Assert.Fail (System.String message, System.String userMessage) (at <14c3e404c974480fb218229516cafd50>:0)
UnityEngine.Assertions.Assert.IsTrue (System.Boolean condition, System.String message) (at <14c3e404c974480fb218229516cafd50>:0)
UnityEngine.Rendering.Universal.UniversalRenderer.Setup (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Rendering.Universal.RenderingData& renderingData) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/UniversalRenderer.cs:841)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.RenderSingleCamera (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Rendering.Universal.CameraData cameraData, System.Boolean anyPostProcessingEnabled) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/UniversalRenderPipeline.cs:410)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.RenderCameraStack (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Camera baseCamera) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/UniversalRenderPipeline.cs:561)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.Render (UnityEngine.Rendering.ScriptableRenderContext renderContext, System.Collections.Generic.List`1[T] cameras) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/UniversalRenderPipeline.cs:264)
UnityEngine.Rendering.RenderPipeline.InternalRender (UnityEngine.Rendering.ScriptableRenderContext context, System.Collections.Generic.List`1[T] cameras) (at <14c3e404c974480fb218229516cafd50>:0)
UnityEngine.Rendering.RenderPipelineManager.DoRenderLoop_Internal (UnityEngine.Rendering.RenderPipelineAsset pipe, System.IntPtr loopPtr, System.Collections.Generic.List`1[T] renderRequests, Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle safety) (at <14c3e404c974480fb218229516cafd50>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

After some debugging it appears this only happens with an overlay camera on the stack, if I disable my overlay camera the bug stops. But so does my whole game :slight_smile:

It also works fine in the player (android + windows)

Just toggling the game window when not in play mode gives:

AssertionException: Editor camera must resolve target upon finish rendering.
Assertion failure. Value was False
Expected: True
UnityEngine.Assertions.Assert.Fail (System.String message, System.String userMessage) (at <0dc26211fc6f43128da1d70c2c3a8abc>:0)
UnityEngine.Assertions.Assert.IsTrue (System.Boolean condition, System.String message) (at <0dc26211fc6f43128da1d70c2c3a8abc>:0)
UnityEngine.Rendering.Universal.UniversalRenderer.Setup (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Rendering.Universal.RenderingData& renderingData) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/UniversalRenderer.cs:841)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.RenderSingleCamera (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Rendering.Universal.CameraData cameraData, System.Boolean anyPostProcessingEnabled) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/UniversalRenderPipeline.cs:410)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.RenderCameraStack (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Camera baseCamera) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/UniversalRenderPipeline.cs:561)
UnityEngine.Rendering.Universal.UniversalRenderPipeline.Render (UnityEngine.Rendering.ScriptableRenderContext renderContext, System.Collections.Generic.List`1[T] cameras) (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/UniversalRenderPipeline.cs:264)
UnityEngine.Rendering.RenderPipeline.InternalRender (UnityEngine.Rendering.ScriptableRenderContext context, System.Collections.Generic.List`1[T] cameras) (at <0dc26211fc6f43128da1d70c2c3a8abc>:0)
UnityEngine.Rendering.RenderPipelineManager.DoRenderLoop_Internal (UnityEngine.Rendering.RenderPipelineAsset pipe, System.IntPtr loopPtr, System.Collections.Generic.List`1[T] renderRequests, Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle safety) (at <0dc26211fc6f43128da1d70c2c3a8abc>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

I’ve tried rolling back to an older beta, same issue.
I’ve tried reimporting all.

If I upgrade to the alpha I dont get the error, but that isnt a real option.

EDIT: If I disable gizmoes the errors no longer appear.

1 Like

Hi @SevenPointRed ,

Could you please submit a bug report for this issue, ideally with a reproduction project attached?

The first error i think is fixed now, see https://discussions.unity.com/t/853401

As for the others, I could not create a reproduction and its impossible to strip the project down. So I was just hoping someone else might have had it. Sorry I can’t be much more help.
The only “fix” i have is to disable gizmos.

1 Like

Hi,
Thank you for reporting the bug! I can confirm that the fix for rendering issue with camera stack and gizmos enabled is on its way and it will land in the newer version of URP.

I get this on unity 2022.2.14 and URP 14.0.7

1 Like

got this error on 2022.3.4 + URP 14.0.8

i am writting this in case someone have my problem that is related with URP in Unity 2022.3.
I just updated my project to 2022.3, then in console appered a bunch of errors NullReferenceException.
I solved the problem going to the main camera > rendering > renderer, there was 2 options: was on “Default Renderer (URP-Balanced_Renderer)” and swap to “0:URP-Balanced-Renderer” as you can see in the image. Problem solved :slight_smile:

I hope this help you. Good luck in your projects!

1 Like