HDRP water occasionally causes memory leak upon reloading

Sometimes when recompiling scripts Unity will tell me a memory leak has been detected from HDRPs water, specifically from the cpu. I’m not sure if its something I should be worried about though, I’d appreciate any advice.

I have included the stack below.

Found 2 leak(s) from callstack:
 #0  (Mono JIT Code) [HDRenderPipeline.WaterSystem.SimulationCPU.cs:564] UnityEngine.Rendering.HighDefinition.WaterSystem:UpdateCPUBuffers (UnityEngine.Rendering.CommandBuffer,UnityEngine.Rendering.HighDefinition.WaterSurface)
 #1  (Mono JIT Code) [HDRenderPipeline.cs:2187] UnityEngine.Rendering.HighDefinition.HDRenderPipeline:Render (UnityEngine.Rendering.ScriptableRenderContext,System.Collections.Generic.List`1<UnityEngine.Camera>)
 #2  (Mono JIT Code) [RenderPipeline.cs:53] UnityEngine.Rendering.RenderPipeline:InternalRender (UnityEngine.Rendering.ScriptableRenderContext,System.Collections.Generic.List`1<UnityEngine.Camera>)
 #3  (Mono JIT Code) [RenderPipelineManager.cs:152] UnityEngine.Rendering.RenderPipelineManager:DoRenderLoop_Internal (UnityEngine.Rendering.RenderPipelineAsset,intptr,UnityEngine.Object,Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle)
 #4  (Mono JIT Code) (wrapper runtime-invoke) <Module>:runtime_invoke_void_object_intptr_object_AtomicSafetyHandle (object,intptr,intptr,intptr)
 #5 ???
 #6 ???
 #7 mono_runtime_invoke
 #8 scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)
 #9 ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
 #10 Scripting::UnityEngine::Rendering::RenderPipelineManagerProxy::DoRenderLoop_Internal(ScriptingObjectPtr, void*, Scripting::UnityEngine::ObjectProxy, void const*, ScriptingExceptionPtr*)
 #11 ScriptableRenderContext::ExtractAndExecuteRenderPipeline(core::vector<Camera*, core::allocator<Camera*, 0ul> > const&, void (*)(SceneNode const*, AABB const*, IndexList&, SceneCullingParameters const*), void*, ScriptingObjectPtr)
 #12 Camera::ExecuteCustomRenderPipeline(Camera::EditorDrawingMode, DrawGridParameters const*, Camera::RenderFlag, core::hash_set<int, core::hash<int>, std::equal_to<int> > const&, core::hash_set<int, core::hash<int>, std::equal_to<int> > const&, ColorRGBAf, ColorRGBAf, float, float, int, Camera::OutlineDrawMode)
 #13 Camera::RenderEditorCamera(Camera::EditorDrawingMode, DrawGridParameters const*, CullResults*, Camera::RenderFlag, int, bool, bool, core::hash_set<int, core::hash<int>, std::equal_to<int> > const&, core::hash_set<int, core::hash<int>, std::equal_to<int> > const&, core::hash_set<GameObject*, core::hash<GameObject*>, std::equal_to<GameObject*> >*, ColorRGBAf, ColorRGBAf, float, float, int, Camera::OutlineDrawMode)
 #14 ???
 #15 Handles_CUSTOM_Internal_DrawCameraWithGrid(void*, Camera::EditorDrawingMode, DrawGridParameters&, unsigned char, unsigned char)
 #16  (Mono JIT Code) (wrapper managed-to-native) UnityEditor.Handles:Internal_DrawCameraWithGrid_Injected (intptr,UnityEditor.DrawCameraMode,UnityEditor.DrawGridParameters&,bool,bool)
 #17 ???
 #18 ???
 #19 ???

Same here in 6000.0.38f1.

Found 1 leak(s) from callstack:
0x0000028a1f01f57b (Mono JIT Code) Unity.Collections.NativeArray1<Unity.Mathematics.half4>:Allocate (int,Unity.Collections.Allocator,Unity.Collections.NativeArray1<Unity.Mathematics.half4>&)
0x0000028a1f01f483 (Mono JIT Code) Unity.Collections.NativeArray1<Unity.Mathematics.half4>:.ctor (int,Unity.Collections.Allocator,Unity.Collections.NativeArrayOptions) 0x0000028a1f01f3bb (Mono JIT Code) UnityEngine.Rendering.HighDefinition.AsyncTextureSynchronizer1<Unity.Mathematics.half4>:ValidateNativeBuffer (Unity.Collections.NativeArray1<Unity.Mathematics.half4>&,int) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@d2dd9a51ead3/Runtime/Water/AsyncTextureSynchronizer.cs:96) 0x0000028a1f01f083 (Mono JIT Code) UnityEngine.Rendering.HighDefinition.AsyncTextureSynchronizer1<Unity.Mathematics.half4>:ValidateResources (int,int,int,UnityEngine.Rendering.TextureDimension) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@d2dd9a51ead3/Runtime/Water/AsyncTextureSynchronizer.cs:103)
0x0000028a1f01defb (Mono JIT Code) UnityEngine.Rendering.HighDefinition.AsyncTextureSynchronizer1<Unity.Mathematics.half4>:EnqueueRequest (UnityEngine.Rendering.CommandBuffer,UnityEngine.Texture,bool) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@d2dd9a51ead3/Runtime/Water/AsyncTextureSynchronizer.cs:145) 0x0000028a1f02fadb (Mono JIT Code) UnityEngine.Rendering.HighDefinition.WaterSystem:UpdateCPUBuffers (UnityEngine.Rendering.CommandBuffer,UnityEngine.Rendering.HighDefinition.WaterSurface) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@d2dd9a51ead3/Runtime/Water/HDRenderPipeline.WaterSystem.SimulationCPU.cs:564) 0x0000028a1f01bbab (Mono JIT Code) UnityEngine.Rendering.HighDefinition.WaterSystem:UpdateWaterSurface (UnityEngine.Rendering.CommandBuffer,UnityEngine.Rendering.HighDefinition.WaterSurface,int) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@d2dd9a51ead3/Runtime/Water/HDRenderPipeline.WaterSystem.cs:552) 0x0000028a1f017733 (Mono JIT Code) UnityEngine.Rendering.HighDefinition.WaterSystem:UpdateWaterSurfaces (UnityEngine.Rendering.CommandBuffer) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@d2dd9a51ead3/Runtime/Water/HDRenderPipeline.WaterSystem.cs:585) 0x0000028a1f0105eb (Mono JIT Code) UnityEngine.Rendering.HighDefinition.HDRenderPipeline:Render (UnityEngine.Rendering.ScriptableRenderContext,System.Collections.Generic.List1<UnityEngine.Camera>) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@d2dd9a51ead3/Runtime/RenderPipeline/HDRenderPipeline.cs:2187)
0x0000028a1f00ecd9 (Mono JIT Code) UnityEngine.Rendering.RenderPipeline:InternalRender (UnityEngine.Rendering.ScriptableRenderContext,System.Collections.Generic.List`1<UnityEngine.Camera>)
0x0000028a1ef47013 (Mono JIT Code) UnityEngine.Rendering.RenderPipelineManager:DoRenderLoop_Internal (UnityEngine.Rendering.RenderPipelineAsset,intptr,UnityEngine.Object,Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle)
0x0000028a1ef47288 (Mono JIT Code) (wrapper runtime-invoke) :runtime_invoke_void_object_intptr_object_AtomicSafetyHandle (object,intptr,intptr,intptr)
0x00007ffc90fa68de (mono-2.0-bdwgc) mono_jit_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/mini/mini-runtime.c:3445)
0x00007ffc90ee8404 (mono-2.0-bdwgc) do_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/metadata/object.c:3068)
0x00007ffc90ee84f0 (mono-2.0-bdwgc) mono_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/metadata/object.c:3115)
0x00007ffc7f7ee224 (Unity) scripting_method_invoke
0x00007ffc7f7c5fa3 (Unity) ScriptingInvocation::Invoke
0x00007ffc7f7c1265 (Unity) ScriptingInvocation::Invoke
0x00007ffc7f94bdbf (Unity) Scripting::UnityEngine::Rendering::RenderPipelineManagerProxy::DoRenderLoop_Internal

1 Like