Search Unity

Bug Editor stack overflow when compiling shaders with custom Render Pipeline

Discussion in 'Editor & General Support' started by asqewfcq2egf, Jan 19, 2023.

  1. asqewfcq2egf

    asqewfcq2egf

    Joined:
    Nov 16, 2018
    Posts:
    15
    This happens during build, and when pressing the Compile and Show Code button on a shader asset. Switching from my custom SRP to 'none' causes it to compile normally.

    Excerpt from editor log:
    Compiling shader "TextMeshPro/Mobile/Distance Field (Surface)" pass "FORWARD" (vp)
    Stack overflow: IP: -----------, fault addr: 0x7ffee8e1bcb8
    Stacktrace:
    at <unknown> <0xffffffff>
    at System.Collections.Generic.List`1<T_REF>..ctor (int) [0x00023] in <4ba27aa039714eafa1e8892e51af2932>:0
    <...>
    at System.MonoCustomAttrs.GetCustomAttributes (System.Reflection.ICustomAttributeProvider,System.Type,bool) [0x00148] in <4ba27aa039714eafa1e8892e51af2932>:0
    at System.RuntimeType.GetCustomAttributes (System.Type,bool) [0x0003b] in <4ba27aa039714eafa1e8892e51af2932>:0
    at UnityEditor.ShaderKeywordFilter.SettingsNode.GetConstraintAttributes (System.Reflection.ICustomAttributeProvider) [0x00001] in /Users/bokken/build/output/unity/unity/Editor/Mono/Shaders/ShaderKeywordFilterData.cs:174
    at UnityEditor.ShaderKeywordFilter.SettingsNode.GatherFilterData (string,object,UnityEditor.ShaderKeywordFilter.Constraints) [0x00013] in /Users/bokken/build/output/unity/unity/Editor/Mono/Shaders/ShaderKeywordFilterData.cs:194
    at UnityEditor.ShaderKeywordFilter.SettingsNode.GatherFilterData (string,object,UnityEditor.ShaderKeywordFilter.Constraints) [0x001f1] in /Users/bokken/build/output/unity/unity/Editor/Mono/Shaders/ShaderKeywordFilterData.cs:251
    (...The above line repeats about 10,000 times)

    at UnityEditor.ShaderKeywordFilter.ShaderKeywordFilterUtil.GetKeywordFilterVariants (string,UnityEditor.ShaderKeywordFilter.ConstraintState) [0x0003f] in /Users/bokken/build/output/unity/unity/Editor/Mono/Shaders/ShaderKeywordFilterUtil.cs:97
    at (wrapper runtime-invoke) <Module>.runtime_invoke_object_object_ConstraintState (object,intptr,intptr,intptr) [0x00037] in <df09df1a3ebc47d485431f59b65baa30>:0
    at <unknown> <0xffffffff>
    at (wrapper managed-to-native) UnityEditor.ShaderUtil.OpenCompiledShader (UnityEngine.Shader,int,int,bool,bool,bool) [0x00017] in <df09df1a3ebc47d485431f59b65baa30>:0
    at UnityEditor.ShaderInspector.ShowCompiledCodeButton (UnityEngine.Shader) [0x00177] in /Users/bokken/build/output/unity/unity/Editor/Mono/Inspector/ShaderInspector.cs:396
    at UnityEditor.ShaderInspector.ShowShaderCodeArea (UnityEngine.Shader) [0x0000f] in /Users/bokken/build/output/unity/unity/Editor/Mono/Inspector/ShaderInspector.cs:200
    at UnityEditor.ShaderInspector.OnInspectorGUI () [0x0002b] in /Users/bokken/build/output/unity/unity/Editor/Mono/Inspector/ShaderInspector.cs:117
    at UnityEditor.UIElements.InspectorElement/<>c__DisplayClass59_0.<CreateIMGUIInspectorFromEditor>b__0 () [0x0028f] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Editor/Inspector/InspectorElement.cs:636
    at UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event,UnityEngine.Matrix4x4,UnityEngine.Rect,bool,UnityEngine.Rect,System.Action,bool) [0x001f0] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:351
    at UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event,UnityEngine.Matrix4x4,UnityEngine.Rect,System.Action,bool) [0x000b9] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:693
    at UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event,System.Action,bool) [0x00015] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:665
    at UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event,bool) [0x00001] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:658
    at UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUIRaw (UnityEngine.UIElements.EventBase,bool,bool) [0x00022] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:618
    at UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase,bool,bool) [0x00150] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:607
    at UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase) [0x00059] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/IMGUIContainer.cs:535
    at UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase) [0x00016] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/Events/EventHandler.cs:151
    at UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase,UnityEngine.UIElements.IPanel) [0x0017a] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/Events/MouseCaptureDispatchingStrategy.cs:88
    at UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase,UnityEngine.UIElements.IPanel,bool) [0x00025] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:381
    at UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase,UnityEngine.UIElements.IPanel) [0x00043] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:344
    at UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () [0x0003d] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:306
    at UnityEngine.UIElements.EventDispatcher.OpenGate () [0x0003b] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:270
    at UnityEngine.UIElements.EventDispatcherGate.Dispose () [0x00001] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:75
    at UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase,UnityEngine.UIElements.IPanel) [0x00112] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:372
    at UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase,UnityEngine.UIElements.IPanel,UnityEngine.UIElements.DispatchMode) [0x00046] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/EventDispatcher.cs:222
    at UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase,UnityEngine.UIElements.DispatchMode) [0x00010] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/Panel.cs:420
    at UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel) [0x000d8] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/UIElementsUtility.cs:468
    at UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (int,intptr,bool&) [0x0003d] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/UIElementsUtility.cs:211
    at UnityEngine.UIElements.UIEventRegistration.ProcessEvent (int,intptr) [0x0001a] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/UIElementsUtility.cs:74
    at UnityEngine.UIElements.UIEventRegistration/<>c.<.cctor>b__1_2 (int,intptr) [0x00001] in /Users/bokken/build/output/unity/unity/ModuleOverrides/com.unity.ui/Core/UIElementsUtility.cs:28
    at UnityEngine.GUIUtility.ProcessEvent (int,intptr,bool&) [0x00010] in /Users/bokken/build/output/unity/unity/Modules/IMGUI/GUIUtility.cs:189
    at (wrapper runtime-invoke) <Module>.runtime_invoke_void_int_intptr_intptr& (object,intptr,intptr,intptr) [0x00039] in <729b427c548347bda81acb2667794049>:0

    Unity 2021.3.16f1
    MacOS 10.14
     
  2. IJM

    IJM

    Joined:
    Aug 31, 2010
    Posts:
    143
    Did you resolve this?
    I'm having the same problem.

    Unity 2022.2.6f1
    Windows 10
     
  3. IJM

    IJM

    Joined:
    Aug 31, 2010
    Posts:
    143
    I have found the solution, so here it is for any future desperate soul.

    If the rendering pipeline asset has a reference to another ScriptableObject instance (asset) shaders can't compile. Unity Editor will crash. So, make sure your SRP asset doesn't have any references to other ScriptableObject assets.

    Hopefully this will help someone in the future.
    Maybe Unity team will fix this issue, so you'll have a different problem, who knows.

    Good luck!
     
    asqewfcq2egf likes this.
  4. florinel2102

    florinel2102

    Joined:
    May 21, 2019
    Posts:
    76
    Solved by removing all renderer features from asset and add again , if one of the feature got deleted , the pipeline doesn't remove it automatically .