Description

Issue was traced to CL4018267. Shader hashes are not preserved during cooking anymore. This is failing the check in

void FShader::Register()
{
FShaderId ShaderId = GetId();
check(ShaderId.MaterialShaderMapHash != FSHAHash());
-----> check(ShaderId.SourceHash != FSHAHash() || FPlatformProperties::RequiresCookedData());

 

NOTE: This bug should have been caught by UEQATC-4994 but it seems the tests uses a material cooked in a previous version that was preserving the SourceHash.

Steps to Reproduce

Load the project from the GDrive location in version 4.20 ([Link Removed])

Click on the Twinmotion button

Open the 'tm' file in the same folder that the uproject

Callstack
UE4Editor-CoreUObject.dll!FLinkerLoad::SerializePackageFileSummary() Line 1176 C++
 UE4Editor-CoreUObject.dll!FLinkerLoad::Tick(float InTimeLimit, bool bInUseTimeLimit, bool bInUseFullTimeLimit) Line 673 C++
 UE4Editor-CoreUObject.dll!FLinkerLoad::CreateLinker(UPackage * Parent, const wchar_t * Filename, unsigned int LoadFlags, FArchive * InLoader) Line 452 C++
 UE4Editor-CoreUObject.dll!GetPackageLinker(UPackage * InOuter, const wchar_t * InLongPackageName, unsigned int LoadFlags, UPackageMap * Sandbox, FGuid * CompatibleGuid, FArchive * InReaderOverride) Line 716 C++
 UE4Editor-CoreUObject.dll!LoadPackageInternal(UPackage * InOuter, const wchar_t * InLongPackageNameOrFilename, unsigned int LoadFlags, FLinkerLoad * ImportLinker, FArchive * InReaderOverride) Line 1276 C++
 UE4Editor-CoreUObject.dll!FLinkerLoad::VerifyImportInner(const int ImportIndex, FString & WarningSuffix) Line 2602 C++
 UE4Editor-CoreUObject.dll!FLinkerLoad::VerifyImport(int ImportIndex) Line 2345 C++
 UE4Editor-CoreUObject.dll!FLinkerLoad::Verify() Line 2124 C++
 UE4Editor-CoreUObject.dll!FLinkerLoad::FinalizeCreation() Line 2034 C++
 UE4Editor-CoreUObject.dll!FLinkerLoad::Tick(float InTimeLimit, bool bInUseTimeLimit, bool bInUseFullTimeLimit) Line 749 C++
 UE4Editor-CoreUObject.dll!FLinkerLoad::CreateLinker(UPackage * Parent, const wchar_t * Filename, unsigned int LoadFlags, FArchive * InLoader) Line 452 C++
 UE4Editor-CoreUObject.dll!GetPackageLinker(UPackage * InOuter, const wchar_t * InLongPackageName, unsigned int LoadFlags, UPackageMap * Sandbox, FGuid * CompatibleGuid, FArchive * InReaderOverride) Line 716 C++
 UE4Editor-CoreUObject.dll!LoadPackageInternal(UPackage * InOuter, const wchar_t * InLongPackageNameOrFilename, unsigned int LoadFlags, FLinkerLoad * ImportLinker, FArchive * InReaderOverride) Line 1276 C++
 UE4Editor-CoreUObject.dll!LoadPackage(UPackage * InOuter, const wchar_t * InLongPackageName, unsigned int LoadFlags, FArchive * InReaderOverride) Line 1471 C++
 UE4Editor-CoreUObject.dll!ResolveName(UObject * & InPackage, FString & InOutName, bool Create, bool Throw, unsigned int LoadFlags) Line 828 C++
 UE4Editor-CoreUObject.dll!StaticLoadObjectInternal(UClass * ObjectClass, UObject * InOuter, const wchar_t * InName, const wchar_t * Filename, unsigned int LoadFlags, UPackageMap * Sandbox, bool bAllowObjectReconciliation) Line 916 C++
 UE4Editor-CoreUObject.dll!StaticLoadObjectInternal(UClass * ObjectClass, UObject * InOuter, const wchar_t * InName, const wchar_t * Filename, unsigned int LoadFlags, UPackageMap * Sandbox, bool bAllowObjectReconciliation) Line 967 C++
 UE4Editor-CoreUObject.dll!StaticLoadObject(UClass * ObjectClass, UObject * InOuter, const wchar_t * InName, const wchar_t * Filename, unsigned int LoadFlags, UPackageMap * Sandbox, bool bAllowObjectReconciliation) Line 983 C++
 UE4Editor-TwinmotionCore.dll!UResourceMaterial::onNativeObjectPathChanged() Line 419 C++
 UE4Editor-CoreUObject.dll!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Z_Param__Result) Line 4728 C++
 UE4Editor-CoreUObject.dll!UObject::ProcessEvent(UFunction * Function, void * Parms) Line 1344 C++
 UE4Editor-TwinmotionStorage.dll!CObjectTools::findAndCallPropertyCallback<UBaseResource>(UBaseResource & iTarget, const FString & iCallbackName, const char * iSuffix) Line 280 C++
 [Inline Frame] UE4Editor-TwinmotionStorage.dll!CObjectTools::findAndCallPropertyChangedCallback(UBaseResource &) Line 291 C++
 [Inline Frame] UE4Editor-TwinmotionStorage.dll!CObjectTools::setPropertySafe_(UBaseResource &) Line 478 C++
 [Inline Frame] UE4Editor-TwinmotionStorage.dll!CObjectTools::setPropertySafe(UBaseResource &) Line 495 C++
 [Inline Frame] UE4Editor-TwinmotionStorage.dll!UBaseResource::setPropertySafe(const FString &) Line 859 C++
 UE4Editor-TwinmotionStorage.dll!CStorageConverterTwinmotionLoad2020::applyPropertyValueAsString(const FString & iPropertyName, FString & iValue) Line 89 C++
 UE4Editor-TwinmotionToUnreal.dll!CStorageConverterTwinmotionPlugin::applyPropertyValueAsString(const FString & iPropertyName, FString & iValue) Line 1191 C++
 [Inline Frame] UE4Editor-TwinmotionStorage.dll!CStorageConverter::setValueAsString(const FString &) Line 89 C++
 UE4Editor-TwinmotionStorage.dll!CStorageReaderUnreal::read(TSharedPtr<CStorageConverter,0> iConverter) Line 191 C++
 UE4Editor-TwinmotionToUnreal.dll!CImportTwinmotionToUnreal::loadFile(const FString & iFullPath, TArray<FString,FDefaultAllocator> iExcludedTypes) Line 106 C++
 UE4Editor-TwinmotionToUnreal.dll!CImportTwinmotionToUnreal::importTwinmotionFileToUnreal(const FString & iTwinmotionFilePath) Line 83 C++
 UE4Editor-TwinmotionToUnreal.dll!FTwinmotionToUnrealModule::PluginButtonClicked() Line 73 C++
 [Inline Frame] UE4Editor-TwinmotionToUnreal.dll!TMemberFunctionCaller<FTwinmotionToUnrealModule,void (__cdecl FTwinmotionToUnrealModule::*)(void)>::operator()() Line 156 C++
 [Inline Frame] UE4Editor-TwinmotionToUnreal.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter(TMemberFunctionCaller<FTwinmotionToUnrealModule,void (__cdecl FTwinmotionToUnrealModule::*)(void)> &&) Line 498 C++
 [Inline Frame] UE4Editor-TwinmotionToUnreal.dll!TBaseRawMethodDelegateInstance<0,FTwinmotionToUnrealModule,TTypeWrapper<void> __cdecl(void)>::Execute() Line 443 C++
 UE4Editor-TwinmotionToUnreal.dll!TBaseRawMethodDelegateInstance<0,FTwinmotionToUnrealModule,void __cdecl(void)>::ExecuteIfSafe() Line 503 C++
 [Inline Frame] UE4Editor-Slate.dll!TBaseDelegate<void>::ExecuteIfBound() Line 624 C++
 [Inline Frame] UE4Editor-Slate.dll!FUIAction::Execute() Line 139 C++
 UE4Editor-Slate.dll!FUICommandList::ExecuteAction(const TSharedRef<FUICommandInfo const ,0> InUICommandInfo) Line 97 C++
 UE4Editor-Slate.dll!SToolBarButtonBlock::OnClicked() Line 300 C++
 [Inline Frame] UE4Editor-Slate.dll!TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void)>::operator()() Line 156 C++
 [Inline Frame] UE4Editor-Slate.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter(TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void)> &&) Line 498 C++
 UE4Editor-Slate.dll!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl(void)>::Execute() Line 269 C++
 [Inline Frame] UE4Editor-Slate.dll!TBaseDelegate<FReply>::Execute() Line 537 C++
 UE4Editor-Slate.dll!SButton::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 290 C++
 [Inline Frame] UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent::__l8::<lambda_1002768c627006711ef2f351a87ec0e7>::operator()(const FArrangedWidget &) Line 5483 C++
 UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_1002768c627006711ef2f351a87ec0e7> >(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::__l8::<lambda_1002768c627006711ef2f351a87ec0e7> & Lambda) Line 268 C++
 UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent(FWidgetPath & WidgetsUnderPointer, FPointerEvent & PointerEvent) Line 5472 C++
 UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent(FPointerEvent & MouseEvent) Line 5979 C++
 UE4Editor-Slate.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const FVector2D CursorPos) Line 5959 C++
 UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 1736 C++
 UE4Editor-ApplicationCore.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,0> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2182 C++
 UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 895 C++
 UE4Editor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 732 C++
 [External Code] 
 [Inline Frame] UE4Editor-ApplicationCore.dll!WinPumpMessages() Line 106 C++
 UE4Editor-ApplicationCore.dll!FWindowsPlatformApplicationMisc::PumpMessages(bool bFromMainLoop) Line 129 C++
 UE4Editor.exe!FEngineLoop::Tick() Line 3417 C++
 [Inline Frame] UE4Editor.exe!EngineTick() Line 62 C++
 UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 166 C++
 UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 209 C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-63935 in the post.

1
Login to Vote

Duplicate
ComponentRendering
Affects Versions4.20
Target Fix4.22
CreatedSep 10, 2018
ResolvedNov 12, 2018
UpdatedJan 18, 2019