Description

Crash occurs when Forward Shading is enabled in Forward Rendering Options

User noted that if "Support Stationary Skylight" in Project Settings > Rendering > Shader Permutation Reduction is disabled, crash does not occur, but skylight is no longer dynamic

Issue occurs in 4.17.2 CL 3658906, 4.18.0 CL 3709383, and 4.19 Main

Steps to Reproduce
  1. Create new blank project
  2. Open Project Settings, navigate to Rendering Options > Forward Rendering
  3. Enable Forward Shading
  4. Restart Editor
  5. Create Landscape (Heightmap attached)
  6. Create and apply basic Landscape Material (example attached)
  7. Navigate to Landscape Tab > Paint Mode
  8. Add Layer Info

Expected: Landscape Layer Info added to Landscape
Result: Editor crashes

Callstack
Fatal error: [File:D:\Build\++UE4+Release-4.18+Compile\Sync\Engine\Source\Runtime\Engine\Private\Materials\MaterialShared.cpp] [Line: 1892] Couldn't find Shader TBasePassPSFCachedPointIndirectLightingPolicySkylight for Material Resource M_Landscape! RenderMeshShaderMap 1, RenderThreadShaderMap 1 GameMeshShaderMap 1, GameThreadShaderMap 1, bShaderWasFoundInGameShaderMap 0 With VF=FLocalVertexFactory, Platform=PCD3D_SM5 ShouldCache: Mat=0, VF=1, Shader=1 MaterialUsageDesc: LightingModel=MSM_DefaultLit, BlendMode=BLEND_Opaque, SpecialEngine=0, TwoSided=0, TSNormal=1, Masked=0, Distorted=0, WritesEveryPixel=1, ModifiesMeshPosition=0, Usage={}

UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:414]
UE4Editor_Engine!FMaterial::GetShader() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\engine\private\materials\materialshared.cpp:1879]
UE4Editor_Renderer!GetUniformBasePassShaders<3>() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\renderer\private\basepassrendering.cpp:847]
UE4Editor_Renderer!GetBasePassShaders<FUniformLightMapPolicy>() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\renderer\private\basepassrendering.cpp:909]
UE4Editor_Renderer!TBasePassDrawingPolicy<FUniformLightMapPolicy>::TBasePassDrawingPolicy<FUniformLightMapPolicy>() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\renderer\private\basepassrendering.h:1046]
UE4Editor_Renderer!FDrawBasePassStaticMeshAction::Process<FUniformLightMapPolicy>() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\renderer\private\basepassrendering.cpp:470]
UE4Editor_Renderer!ProcessBasePassMesh<FDrawBasePassStaticMeshAction>() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\renderer\private\basepassrendering.h:1591]
UE4Editor_Renderer!FBasePassOpaqueDrawingPolicyFactory::AddStaticMesh() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\renderer\private\basepassrendering.cpp:519]
UE4Editor_Renderer!FStaticMesh::AddToDrawLists() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\renderer\private\scenecore.cpp:379]
UE4Editor_Renderer!FPrimitiveSceneInfo::AddStaticMeshes() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\renderer\private\primitivesceneinfo.cpp:151]
UE4Editor_Renderer!FPrimitiveSceneInfo::AddToScene() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\renderer\private\primitivesceneinfo.cpp:204]
UE4Editor_Renderer!FScene::AddPrimitiveSceneInfo_RenderThread() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\renderer\private\rendererscene.cpp:518]
UE4Editor_Renderer!<lambda_0628b7e343e078d62bb69bb7a0b80e2d>::operator()() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\renderer\private\rendererscene.cpp:788]
UE4Editor_Renderer!TGraphTask<TEnqueueUniqueRenderCommandType<`FScene::AddPrimitive'::`2'::AddPrimitiveCommandName,<lambda_0628b7e343e078d62bb69bb7a0b80e2d> > >::ExecuteTask() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\public\async\taskgraphinterfaces.h:784]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\private\async\taskgraph.cpp:651]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\private\async\taskgraph.cpp:560]
UE4Editor_RenderCore!RenderingThreadMain() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\rendercore\private\renderingthread.cpp:327]
UE4Editor_RenderCore!FRenderingThread::Run() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\rendercore\private\renderingthread.cpp:461]
UE4Editor_Core!FRunnableThreadWin::Run() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:76]

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

8
Login to Vote

Fixed
ComponentUE - LD & Modeling - Terrain - Landscape
Affects Versions4.174.184.19
Target Fix4.19
Fix Commit3746015
Main Commit3807911
Release Commit3813083
CreatedNov 7, 2017
ResolvedNov 9, 2017
UpdatedApr 27, 2018