[Bug] Forward Shader Crash when using material editor, 14.4.0, MacOS 10.11.6

If forward shading is turned on, opening the material editor crashes the engine immediately when a texture sample node is visible. There may also be other nodes that cause a crash, but this is one that reliably reproduces a crash on my system.

I’ve tested this with:

  • a project migrated from 4.13
  • a new project, editing an existing material
  • a new project, creating a blank material

Crash logs follow

New blank project, new blank material, creating a new texture sample node:

MachineId:E4E841D24E417290E5D75D86B556C638
EpicAccountId:26cb9441717d4e78b2ed9b589f3bd7d5

 SEGV_MAPERR at 0x20

FMetalRHICommandContext::RHISetShaderUniformBuffer(FRHIPixelShader*, unsigned int, FRHIUniformBuffer*) Address = 0x140738cb4 (filename not found) [in UE4Editor-MetalRHI.dylib]
void FForwardLightingParameters::Set<FRHICommandList, FRHIPixelShader*>(FRHICommandList&, FRHIPixelShader* const&, FViewInfo const&, bool) Address = 0x11a0a6609 (filename not found) [in UE4Editor-Renderer.dylib]
TBasePassPixelShaderPolicyParamType<FUniformLightMapPolicyShaderParametersType>::SetParameters(FRHICommandList&, FMaterialRenderProxy const*, FMaterial const&, FViewInfo const*, EBlendMode, bool, ESceneRenderTargetsMode::Type, bool, bool) Address = 0x11a0ab6ed (filename not found) [in UE4Editor-Renderer.dylib]
TBasePassDrawingPolicy<FUniformLightMapPolicy>::SetSharedState(FRHICommandList&, FViewInfo const*, FMeshDrawingPolicy::ContextDataType, bool) const Address = 0x11a0aa1ca (filename not found) [in UE4Editor-Renderer.dylib]
void FDrawBasePassDynamicMeshAction::Process<FUniformLightMapPolicy>(FRHICommandList&, FProcessBasePassMeshParameters const&, FUniformLightMapPolicy const&, FUniformLightMapPolicy::ElementDataType const&) const Address = 0x11a0a2954 (filename not found) [in UE4Editor-Renderer.dylib]
void ProcessBasePassMesh<FDrawBasePassDynamicMeshAction>(FRHICommandList&, FProcessBasePassMeshParameters const&, FDrawBasePassDynamicMeshAction const&) Address = 0x119fff08d (filename not found) [in UE4Editor-Renderer.dylib]
FBasePassOpaqueDrawingPolicyFactory::DrawDynamicMesh(FRHICommandList&, FViewInfo const&, FBasePassOpaqueDrawingPolicyFactory::ContextType, FMeshBatch const&, bool, bool, FPrimitiveSceneProxy const*, FHitProxyId, bool) Address = 0x119ffe87e (filename not found) [in UE4Editor-Renderer.dylib]
FRendererModule::DrawTileMesh(FRHICommandListImmediate&, FSceneView const&, FMeshBatch const&, bool, FHitProxyId const&) Address = 0x11a5c52e2 (filename not found) [in UE4Editor-Renderer.dylib]
FTileRenderer::DrawTile(FRHICommandListImmediate&, FSceneView const&, FMaterialRenderProxy const*, bool, float, float, float, float, float, float, float, float, bool, FHitProxyId, FColor) Address = 0x10cc324e0 (filename not found) [in UE4Editor-Engine.dylib]
FCanvasTileRendererItem::Render_RenderThread(FRHICommandListImmediate&, FCanvas const*) Address = 0x10cc334a9 (filename not found) [in UE4Editor-Engine.dylib]
FCanvas::Flush_RenderThread(FRHICommandListImmediate&, bool) Address = 0x10cd55c55 (filename not found) [in UE4Editor-Engine.dylib]
FPreviewElement::DrawRenderThread(FRHICommandListImmediate&, void const*) Address = 0x11ecbb09a (filename not found) [in UE4Editor-GraphEditor.dylib]
FSlateRHIRenderingPolicy::DrawElements(FRHICommandListImmediate&, FSlateBackBuffer&, FMatrix const&, TArray<FSlateRenderBatch, FDefaultAllocator> const&, bool) Address = 0x1328a9b34 (filename not found) [in UE4Editor-SlateRHIRenderer.dylib]
FSlateRHIRenderer::DrawWindow_RenderThread(FRHICommandListImmediate&, FSlateRHIRenderer::FViewportInfo const&, FSlateWindowElementList&, bool, bool) Address = 0x13288b224 (filename not found) [in UE4Editor-SlateRHIRenderer.dylib]
TGraphTask<FSlateRHIRenderer::DrawWindows_Private(FSlateDrawBuffer&)::EURCMacro_SlateDrawWindowsCommand>::ExecuteTask(TArray<FBaseGraphTask*, FDefaultAllocator>&, ENamedThreads::Type) Address = 0x1328df047 (filename not found) [in UE4Editor-SlateRHIRenderer.dylib]
FNamedTaskThread::ProcessTasksNamedThread(int, bool) Address = 0x10a1727e1 (filename not found) [in UE4Editor-Core.dylib]
FNamedTaskThread::ProcessTasksUntilQuit(int) Address = 0x10a16e285 (filename not found) [in UE4Editor-Core.dylib]
FTaskGraphImplementation::ProcessThreadUntilRequestReturn(ENamedThreads::Type) Address = 0x10a16ab01 (filename not found) [in UE4Editor-Core.dylib]
RenderingThreadMain(FEvent*) Address = 0x1102bd964 (filename not found) [in UE4Editor-RenderCore.dylib]
FRenderingThread::Run() Address = 0x1102d1107 (filename not found) [in UE4Editor-RenderCore.dylib]
FRunnableThreadPThread::Run() Address = 0x10a1c38a3 (filename not found) [in UE4Editor-Core.dylib]
FRunnableThreadPThread::_ThreadProc(void*) Address = 0x10a188301 (filename not found) [in UE4Editor-Core.dylib]
_pthread_body Address = 0x7fff9677299d (filename not found) [in libsystem_pthread.dylib]
_pthread_body Address = 0x7fff9677291a (filename not found) [in libsystem_pthread.dylib]
thread_start Address = 0x7fff96770351 (filename not found) [in libsystem_pthread.dylib]

Hello laurencedirk,

Thanks for the clear and precise repro steps. I was able to confirm what you are reporting and have gone ahead and entered a bug report for the issue. You can track the issue following the link below on our public issues tracker.

UE-38828

Once the issue has been addressed by our engineers either myself or another staff member will return with an update.

Let me know if you have further questions or need additional assistance.

Cheers,