Description

Tested in:
//UE5/Release-5.1 CL22346211 Crashed with Assertion
//UE5/Release-5.0 CL20979098 Crashed with Assertion

Crash occurs when a Constant Vector 4 and a Screen Position node are passed into a LERP then connected to the Result Node in a Material.

Steps to Reproduce
  1. Create or open any project
  2. Create a New Material
  3. Create a Constant Vector 4 node
  4. Create a Screen Position node
  5. Create Linear Interpolation node
  6. Connect the Vector 4 to input A
  7. Connect the Screen Position node to Input B
  8. Connect the LERP's results to any of the input pins of the Result node

Expected Results:
The results are reflected on the materials or a warning is thrown

Actual Results:
The Editor crashes with an Assertion

Callstack
Assertion failed: bAllowNonFloat [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Materials\HLSLMaterialDerivativeAutogen.cpp] [Line: 156]
UnrealEditor-Engine!GetDerivType(EMaterialValueType,bool) [HLSLMaterialDerivativeAutogen.cpp:156]
UnrealEditor-Engine!FMaterialDerivativeAutogen::GenerateLerpFunc(FHLSLMaterialTranslator &,int,int,int) [HLSLMaterialDerivativeAutogen.cpp:1085]
UnrealEditor-Engine!FHLSLMaterialTranslator::Lerp(int,int,int) [HLSLMaterialTranslator.cpp:7963]
UnrealEditor-Engine!FHLSLMaterialTranslator::CallExpression(FMaterialExpressionKey,FMaterialCompiler *) [HLSLMaterialTranslator.cpp:3737]
UnrealEditor-Engine!FExpressionInput::Compile(FMaterialCompiler *) [MaterialShared.cpp:342]
UnrealEditor-Engine!FColorMaterialInput::CompileWithDefault(FMaterialCompiler *,EMaterialProperty) [MaterialShared.cpp:620]
UnrealEditor-Engine!UMaterial::CompilePropertyEx(FMaterialCompiler *,FGuid const &) [Material.cpp:5948]
UnrealEditor-Engine!UMaterialInterface::CompileProperty(FMaterialCompiler *,EMaterialProperty,unsigned int) [MaterialShared.cpp:4806]
UnrealEditor-Engine!FMaterialResource::CompilePropertyAndSetMaterialProperty(EMaterialProperty,FMaterialCompiler *,EShaderFrequency,bool) [Material.cpp:256]
UnrealEditor-Engine!FHLSLMaterialTranslator::Translate() [HLSLMaterialTranslator.cpp:840]
UnrealEditor-Engine!FMaterial::Translate_Legacy(FMaterialShaderMapId const &,FStaticParameterSet const &,EShaderPlatform,ITargetPlatform const *,FMaterialCompilationOutput &,TRefCountPtr<FSharedShaderCompilerEnvironment> &) [MaterialShared.cpp:2813]
UnrealEditor-Engine!FMaterial::BeginCompileShaderMap(FMaterialShaderMapId const &,FStaticParameterSet const &,EShaderPlatform,EMaterialShaderPrecompileMode,ITargetPlatform const *) [MaterialShared.cpp:2902]
UnrealEditor-Engine!static bool <lambda_051d949613a39eb8dd496958802ab1b5>::operator() [MaterialShared.cpp:2576]
UnrealEditor-Engine!FMaterial::FinishCacheShaders() [MaterialShared.cpp:2710]
UnrealEditor-Engine!FMaterial::CacheShaders(EShaderPlatform,EMaterialShaderPrecompileMode,ITargetPlatform const *) [MaterialShared.cpp:2387]
UnrealEditor-Engine!UMaterial::CacheResourceShadersForRendering(bool,EMaterialShaderPrecompileMode) [Material.cpp:2302]
UnrealEditor-Engine!UMaterial::PostEditChangePropertyInternal(FPropertyChangedEvent &,UMaterial::EPostEditChangeEffectOnShaders) [Material.cpp:4402]
UnrealEditor-CoreUObject!UObject::PostEditChange() [Obj.cpp:370]
UnrealEditor-MaterialEditor!FMaterialEditor::UpdatePreviewMaterial(bool) [MaterialEditor.cpp:2517]
UnrealEditor-MaterialEditor!FMaterialEditor::UpdateMaterialAfterGraphChange() [MaterialEditor.cpp:5915]
UnrealEditor-MaterialEditor!FMaterialEditorUtilities::UpdateMaterialAfterGraphChange(UEdGraph const *) [MaterialEditorUtilities.cpp:129]
UnrealEditor-UnrealEd!7ffdbd040000  + d03f05
UnrealEditor-GraphEditor!FDragConnection::DroppedOnPin(UE::Math::TVector2<double>,UE::Math::TVector2<double>) [DragConnection.cpp:251]
UnrealEditor-GraphEditor!SGraphPin::OnDrop(FGeometry const &,FDragDropEvent const &) [SGraphPin.cpp:860]
UnrealEditor-Slate!7ffdd1d70000  + 2a6ed
UnrealEditor-Slate!7ffdd1d70000  + e633
UnrealEditor-Slate!7ffdd1d70000  + 76f0a
UnrealEditor-Slate!7ffdd1d70000  + 65933
UnrealEditor-Slate!7ffdd1d70000  + 5b60c
UnrealEditor-ApplicationCore!FWindowsApplication::ProcessDeferredMessage(FDeferredWindowsMessage const &) [WindowsApplication.cpp:2219]
UnrealEditor-ApplicationCore!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,1> &,HWND__ *,unsigned int,unsigned __int64,__int64,int,int,unsigned int) [WindowsApplication.cpp:2726]
UnrealEditor-ApplicationCore!FWindowsApplication::ProcessMessage(HWND__ *,unsigned int,unsigned __int64,__int64) [WindowsApplication.cpp:1895]
UnrealEditor-ApplicationCore!FWindowsApplication::AppWndProc(HWND__ *,unsigned int,unsigned __int64,__int64) [WindowsApplication.cpp:925]
USER32!7ffe63aa0000  + e858
USER32!7ffe63aa0000  + e4ee
InkObj!7ffd94d10000  + e7e59
atlthunk!7ffe528f0000  + 1028
USER32!7ffe63aa0000  + e858
USER32!7ffe63aa0000  + e299
UnrealEditor-ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages(bool) [WindowsPlatformApplicationMisc.cpp:142]
UnrealEditor!7ff76ae40000  + 734b
UnrealEditor!7ff76ae40000  + 227cd
UnrealEditor!7ff76ae40000  + 228ba
UnrealEditor!7ff76ae40000  + 255d0
UnrealEditor!7ff76ae40000  + 36f34
UnrealEditor!7ff76ae40000  + 3a296
KERNEL32!7ffe64950000  + 17034
ntdll!7ffe655b0000  + 526a1

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-167126 in the post.

1
Login to Vote

Fixed
ComponentUE - Rendering Architecture - Materials
Affects Versions5.1
Target Fix5.2
Fix Commit23406978
Main Commit23406978
CreatedOct 13, 2022
ResolvedDec 6, 2022
UpdatedFeb 4, 2023