I’ve finished migrating my game from Unity 2018.3 to Unity 2019.1, with HDRP 5.13. The game builds, but when running it, it hangs on the splash screen. Looking at the log file, I see it’s throwing errors related to being unable to instantiate some materials:
Errors
Cannot create required material because shader is null
UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[ ])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)
UnityEngine.Rendering.CoreUtils:CreateEngineMaterial(Shader) (at C:\Users\Dan\Documents\GitHub\Gravia\Library\PackageCache\com.unity.render-pipelines.core@5.13.0\Runtime\Utilities\CoreUtils.cs:323)
UnityEngine.Experimental.Rendering.HDPipeline.HDRenderPipeline:.ctor(HDRenderPipelineAsset) (at C:\Users\Dan\Documents\GitHub\Gravia\Library\PackageCache\com.unity.render-pipelines.high-definition@5.13.0-preview\Runtime\RenderPipeline\HDRenderPipeline.cs:314)
UnityEngine.Experimental.Rendering.HDPipeline.HDRenderPipelineAsset:CreatePipeline() (at C:\Users\Dan\Documents\GitHub\Gravia\Library\PackageCache\com.unity.render-pipelines.high-definition@5.13.0-preview\Runtime\RenderPipeline\HDRenderPipelineAsset.cs:35)
UnityEngine.Rendering.RenderPipelineAsset:InternalCreatePipeline() (at C:\buildslave\unity\build\Runtime\Export\RenderPipeline\RenderPipelineAsset.cs:9)
UnityEngine.Rendering.RenderPipelineManager:PrepareRenderPipeline(RenderPipelineAsset) (at C:\buildslave\unity\build\Runtime\Export\RenderPipeline\RenderPipelineManager.cs:84)
UnityEngine.Rendering.RenderPipelineManager:smile:oRenderLoop_Internal(RenderPipelineAsset, Camera[ ], IntPtr) (at C:\buildslave\unity\build\Runtime\Export\RenderPipeline\RenderPipelineManager.cs:57)
(Filename: C:/Users/Dan/Documents/GitHub/Gravia/Library/PackageCache/com.unity.render-pipelines.core@5.13.0/Runtime/Utilities/CoreUtils.cs Line: 323)
Cannot create required material because shader is null
UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[ ])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)
UnityEngine.Rendering.CoreUtils:CreateEngineMaterial(Shader) (at C:\Users\Dan\Documents\GitHub\Gravia\Library\PackageCache\com.unity.render-pipelines.core@5.13.0\Runtime\Utilities\CoreUtils.cs:323)
UnityEngine.Experimental.Rendering.HDPipeline.HDRenderPipeline:.ctor(HDRenderPipelineAsset) (at C:\Users\Dan\Documents\GitHub\Gravia\Library\PackageCache\com.unity.render-pipelines.high-definition@5.13.0-preview\Runtime\RenderPipeline\HDRenderPipeline.cs:315)
UnityEngine.Experimental.Rendering.HDPipeline.HDRenderPipelineAsset:CreatePipeline() (at C:\Users\Dan\Documents\GitHub\Gravia\Library\PackageCache\com.unity.render-pipelines.high-definition@5.13.0-preview\Runtime\RenderPipeline\HDRenderPipelineAsset.cs:35)
UnityEngine.Rendering.RenderPipelineAsset:InternalCreatePipeline() (at C:\buildslave\unity\build\Runtime\Export\RenderPipeline\RenderPipelineAsset.cs:9)
UnityEngine.Rendering.RenderPipelineManager:PrepareRenderPipeline(RenderPipelineAsset) (at C:\buildslave\unity\build\Runtime\Export\RenderPipeline\RenderPipelineManager.cs:84)
UnityEngine.Rendering.RenderPipelineManager:smile:oRenderLoop_Internal(RenderPipelineAsset, Camera[ ], IntPtr) (at C:\buildslave\unity\build\Runtime\Export\RenderPipeline\RenderPipelineManager.cs:57)
(Filename: C:/Users/Dan/Documents/GitHub/Gravia/Library/PackageCache/com.unity.render-pipelines.core@5.13.0/Runtime/Utilities/CoreUtils.cs Line: 323)
NullReferenceException: Object reference not set to an instance of an object
at UnityEngine.Experimental.Rendering.HDPipeline.HDRenderPipeline.DownsampleDepthForLowResTransparency (UnityEngine.Experimental.Rendering.HDPipeline.HDCamera hdCamera, UnityEngine.Rendering.CommandBuffer cmd) [0x00097] in C:\Users\Dan\Documents\GitHub\Gravia\Library\PackageCache\com.unity.render-pipelines.high-definition@5.13.0-preview\Runtime\RenderPipeline\HDRenderPipeline.cs:3230
at UnityEngine.Experimental.Rendering.HDPipeline.HDRenderPipeline.ExecuteRenderRequest (UnityEngine.Experimental.Rendering.HDPipeline.HDRenderPipeline+RenderRequest renderRequest, UnityEngine.Rendering.ScriptableRenderContext renderContext, UnityEngine.Rendering.CommandBuffer cmd) [0x00f18] in C:\Users\Dan\Documents\GitHub\Gravia\Library\PackageCache\com.unity.render-pipelines.high-definition@5.13.0-preview\Runtime\RenderPipeline\HDRenderPipeline.cs:1924
at UnityEngine.Experimental.Rendering.HDPipeline.HDRenderPipeline.Render (UnityEngine.Rendering.ScriptableRenderContext renderContext, UnityEngine.Camera[ ] cameras) [0x00891] in C:\Users\Dan\Documents\GitHub\Gravia\Library\PackageCache\com.unity.render-pipelines.high-definition@5.13.0-preview\Runtime\RenderPipeline\HDRenderPipeline.cs:1423
at UnityEngine.Rendering.RenderPipeline.InternalRender (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Camera[ ] cameras) [0x00020] in C:\buildslave\unity\build\Runtime\Export\RenderPipeline\RenderPipeline.cs:72
at UnityEngine.Rendering.RenderPipelineManager.DoRenderLoop_Internal (UnityEngine.Rendering.RenderPipelineAsset pipe, UnityEngine.Camera[ ] cameras, System.IntPtr loopPtr) [0x00025] in C:\buildslave\unity\build\Runtime\Export\RenderPipeline\RenderPipelineManager.cs:67
(Filename: C:/Users/Dan/Documents/GitHub/Gravia/Library/PackageCache/com.unity.render-pipelines.high-definition@5.13.0-preview/Runtime/RenderPipeline/HDRenderPipeline.cs Line: 3230)
I tried adding the shader it’s complaining about (HDRP/DownsampleDepth) to the list of shaders to always include, but it doesn’t change the behavior.
This appears to cause the game to sit on the splash screen consuming 100% of one of the CPU cores, never getting past the splashscreen. Any ideas?