Description

Adding a Material Parameter collection to a material, setting its value, then saving the material will cause a crash. This was only able to be reproduced on Mac and did not affect the Windows version that I could see. At least not with the same repro steps.

Steps to Reproduce

1. Open UE4 on a Mac
2. Create a new Material
3. Create a new Material Parameter Collection
4. Open the Mat Param Collection and set a vector parameter then save
5. Open the Material that was created
6. Add the Mat Param Collection to this material
7. Select the Mat Param and select the Vector parameter from the drop down.
8. Save the material

Freq: 3/3

Results: The editor will crash after a few moments

Expected: The material parameter should not crash the editor when having its value selected.

Callstack

FMetalRHICommandContext::RHISetShaderUniformBuffer(FRHIPixelShader*, unsigned int, FRHIUniformBuffer*) Address = 0x13f027e3c [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Apple/MetalRHI/Private/MetalCommands.cpp, line 384] [in UE4Editor-MetalRHI.dylib]
void FMaterialShader::SetParameters<FRHIPixelShader*>(FRHICommandList&, FRHIPixelShader*, FMaterialRenderProxy const*, FMaterial const&, FSceneView const&, bool, ESceneRenderTargetsMode::Type, bool) Address = 0x1195b60d4 [Runtime/RHI/Public/RHICommandList.h, line 1440] [in UE4Editor-Renderer.dylib]
TBasePassPixelShaderPolicyParamType<FUniformLightMapPolicyShaderParametersType>::SetParameters(FRHICommandList&, FMaterialRenderProxy const*, FMaterial const&, FViewInfo const*, EBlendMode, bool, ESceneRenderTargetsMode::Type, float) Address = 0x118f9e322 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Renderer/Private/BasePassRendering.h, line 540] [in UE4Editor-Renderer.dylib]
TBasePassDrawingPolicy<FUniformLightMapPolicy>::SetSharedState(FRHICommandList&, FViewInfo const*, FMeshDrawingPolicy::ContextDataType, float) const Address = 0x118f9d567 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Renderer/Private/BasePassRendering.h, line 843] [in UE4Editor-Renderer.dylib]
void FDrawBasePassDynamicMeshAction::Process<FUniformLightMapPolicy>(FRHICommandList&, FProcessBasePassMeshParameters const&, FUniformLightMapPolicy const&, FUniformLightMapPolicy::ElementDataType const&) const Address = 0x118f9963b [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Renderer/Private/BasePassRendering.cpp, line 433] [in UE4Editor-Renderer.dylib]
void ProcessBasePassMesh<FDrawBasePassDynamicMeshAction>(FRHICommandList&, FProcessBasePassMeshParameters const&, FDrawBasePassDynamicMeshAction const&) Address = 0x118f3bfdf [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Renderer/Private/BasePassRendering.h, line 1256] [in UE4Editor-Renderer.dylib]
FBasePassOpaqueDrawingPolicyFactory::DrawDynamicMesh(FRHICommandList&, FViewInfo const&, FBasePassOpaqueDrawingPolicyFactory::ContextType, FMeshBatch const&, bool, bool, FPrimitiveSceneProxy const*, FHitProxyId, bool) Address = 0x118ee90bf [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Renderer/Private/BasePassRendering.cpp, line 490] [in UE4Editor-Renderer.dylib]
FRendererModule::DrawTileMesh(FRHICommandListImmediate&, FSceneView const&, FMeshBatch const&, bool, FHitProxyId const&) Address = 0x1194612a4 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Renderer/Private/Renderer.cpp, line 83] [in UE4Editor-Renderer.dylib]
FTileRenderer::DrawTile(FRHICommandListImmediate&, FSceneView const&, FMaterialRenderProxy const*, bool, float, float, float, float, float, float, float, float, bool, FHitProxyId, FColor) Address = 0x10d643ff0 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Engine/Private/TileRendering.cpp, line 177] [in UE4Editor-Engine.dylib]
FCanvasTileRendererItem::Render_RenderThread(FRHICommandListImmediate&, FCanvas const*) Address = 0x10d644ce9 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Engine/Private/TileRendering.cpp, line 244] [in UE4Editor-Engine.dylib]
FCanvas::Flush_RenderThread(FRHICommandListImmediate&, bool) Address = 0x10d75fbc2 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Engine/Private/UserInterface/Canvas.cpp, line 681] [in UE4Editor-Engine.dylib]
FPreviewElement::DrawRenderThread(FRHICommandListImmediate&, void const*) Address = 0x11db6f4fa (filename not found) [in UE4Editor-GraphEditor.dylib]
FSlateRHIRenderingPolicy::DrawElements(FRHICommandListImmediate&, FSlateBackBuffer&, FMatrix const&, TArray<FSlateRenderBatch, FDefaultAllocator> const&, bool) Address = 0x12cd939e7 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/SlateRHIRenderer/Private/SlateRHIRenderingPolicy.cpp, line 649] [in UE4Editor-SlateRHIRenderer.dylib]
FSlateRHIRenderer::DrawWindow_RenderThread(FRHICommandListImmediate&, FSlateRHIRenderer::FViewportInfo const&, FSlateWindowElementList&, bool, bool) Address = 0x12cd798e6 [Runtime/Engine/Public/UnrealClient.h, line 32] [in UE4Editor-SlateRHIRenderer.dylib]
TGraphTask<FSlateRHIRenderer::DrawWindows_Private(FSlateDrawBuffer&)::EURCMacro_SlateDrawWindowsCommand>::ExecuteTask(TArray<FBaseGraphTask*, FDefaultAllocator>&, ENamedThreads::Type) Address = 0x12cdab837 [Runtime/Core/Public/Stats/Stats2.h, line 1537] [in UE4Editor-SlateRHIRenderer.dylib]
FNamedTaskThread::ProcessTasksNamedThread(int, bool) Address = 0x10a61ead0 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Core/Private/Async/TaskGraph.cpp, line 259] [in UE4Editor-Core.dylib]
FNamedTaskThread::ProcessTasksUntilQuit(int) Address = 0x10a61a4d5 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Core/Private/GenericPlatform/GenericPlatformProcess.cpp, line 498] [in UE4Editor-Core.dylib]
FTaskGraphImplementation::ProcessThreadUntilRequestReturn(ENamedThreads::Type) Address = 0x10a616a91 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Core/Private/Async/TaskGraph.cpp, line 1725] [in UE4Editor-Core.dylib]
RenderingThreadMain(FEvent*) Address = 0x11109eea4 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/RenderCore/Private/RenderingThread.cpp, line 319] [in UE4Editor-RenderCore.dylib]
FRenderingThread::Run() Address = 0x1110b57e7 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/RenderCore/Private/RenderingThread.cpp, line 459] [in UE4Editor-RenderCore.dylib]
FRunnableThreadPThread::Run() Address = 0x10a66e548 [/Users/build/Build/++UE4+Release-4.12+Compile/Sync/Engine/Source/Runtime/Core/Private/HAL/PThreadRunnableThread.cpp, line 26] [in UE4Editor-Core.dylib]
FRunnableThreadPThread::_ThreadProc(void*) Address = 0x10a630621 [Runtime/Core/Private/GenericPlatform/../HAL/PThreadRunnableThread.h, line 172] [in UE4Editor-Core.dylib]
_pthread_body Address = 0x7fff831c199d (filename not found) [in libsystem_pthread.dylib]
_pthread_body Address = 0x7fff831c191a (filename not found) [in libsystem_pthread.dylib]
thread_start Address = 0x7fff831bf351 (filename not found) [in libsystem_pthread.dylib]

Have Comments or More Details?

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

1
Login to Vote

Fixed
ComponentUE - Graphics Features
Affects Versions4.11.04.12
Target Fix4.12
Fix Commit2967998
Main Commit3023490
CreatedMay 2, 2016
ResolvedMay 16, 2016
UpdatedMay 2, 2018
View Jira Issue