UDN: [Link Removed]
In order to make it easier to track down (future) assets that could cause this crash we modified EmitNullShaderParameterFatalError() to also dump the asset filename if possible: void EmitNullShaderParameterFatalError(const TShaderRef<FShader>& Shader, const FShaderParametersMetadata* ParametersMetadata, uint16 MemberOffset) { FString MemberName = ParametersMetadata->GetFullMemberCodeName(MemberOffset); const TCHAR* ShaderClassName = Shader.GetType()->GetName(); FString OwnerName("File unknown"); #if !UE_BUILD_SHIPPING const FShaderMapBase* ShaderMap = Shader.GetShaderMap(); if (ShaderMap) { FShaderMapResource* ShaderResource = ShaderMap->GetResource(); if (ShaderResource) { OwnerName = ShaderResource->GetOwnerName().ToString(); } } #endif UE_LOG(LogShaders, Fatal, TEXT("%s's required shader parameter %s::%s was not set. [%s]"), ShaderClassName, ParametersMetadata->GetStructTypeName(), *MemberName, *OwnerName); } Q. Do we need to "guard" this with an #if RHI_ENABLE_RESOURCE_INFO ... #endif ?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-210422 in the post.