Error message:
Assertion failed: BoundState.Texture == nullptr || BoundState.Texture == Texture2D [Link Removed] [Line: 371]
Source Context:
358 if (LevelIndex) // If the index is found in the map, the index is valid in BoundStates 359 { 360 Texture2D->LevelIndex = *LevelIndex; 361 BoundStates[*LevelIndex].Texture = Texture2D; // Update the mapping now! 362 } 363 else // Otherwise add a dummy entry to prevent having to search in the map multiple times. 364 { 365 Texture2D->LevelIndex = BoundStates.Add(FTextureBoundState(Texture2D)); 366 } 367 } 368 369 FTextureBoundState& BoundState = BoundStates[Texture2D->LevelIndex]; 370 check(BoundState.Texture == nullptr || BoundState.Texture == Texture2D); 371 372 ***** if (BoundState.BuildDataTimestamp == BuildDataTimestamp && BoundState.Texture == Texture2D) 373 { 374 return &BoundState.BuildDataIndex; // Only return the bound static if it has data relative to this component. 375 } 376 } 377 return nullptr; 378 } 379 380 void FStreamingTextureLevelContext::ProcessMaterial(const FBoxSphereBounds& ComponentBounds, const FPrimitiveMaterialInfo& MaterialData, float ComponentScaling, TArray<FStreamingTexturePrimitiveInfo>& OutStreamingTextures) 381 { 382 ensure(MaterialData.IsValid()); 383 384 TArray<UTexture*> Textures; 385 MaterialData.Material->GetUsedTextures(Textures, QualityLevel, false, FeatureLevel, false); 386 387 for (UTexture* Texture : Textures)
Most recent user affected CL: 3299760
Logs:
*Issue call stack shares some similarities with This Jira * [Link Removed]
CrashReporter User Descriptions:
Use several duplicated texture on a static mesh (not 100%).
This risks leaving an uncleared value in Texture2D->LevelIndex, which can interfere later.
UE4Editor_Engine!FStreamingTextureLevelContext::GetBuildDataIndexRef() texturestreamingbuild.cpp:373
UE4Editor_Engine!FStreamingTextureLevelContext::ProcessMaterial() texturestreamingbuild.cpp:396
UE4Editor_Engine!UMeshComponent::GetStreamingTextureInfoInner() meshcomponent.cpp:368
UE4Editor_Engine!UStaticMeshComponent::GetStreamingTextureInfo() staticmeshcomponent.cpp:837
UE4Editor_Engine!UPrimitiveComponent::GetStreamingTextureInfoWithNULLRemoval() primitivecomponent.cpp:292
UE4Editor_Engine!FTextureInstanceState::AddComponent() textureinstancemanager.cpp:476
UE4Editor_Engine!FLevelTextureManager::IncrementalBuild() textureinstancemanager.cpp:1459
UE4Editor_Engine!FLevelTextureManager::IncrementalUpdate() textureinstancemanager.cpp:1548
UE4Editor_Engine!FStreamingManagerTexture::IncrementalUpdate() streamingmanagertexture.cpp:360
UE4Editor_Engine!FStreamingManagerTexture::UpdateResourceStreaming() streamingmanagertexture.cpp:1170
UE4Editor_Engine!FStreamingManagerCollection::UpdateResourceStreaming() contentstreaming.cpp:709
UE4Editor_Engine!FStreamingManagerCollection::Tick() contentstreaming.cpp:680
UE4Editor_UnrealEd!UEditorEngine::Tick() editorengine.cpp:1833
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() unrealedengine.cpp:391
UE4Editor!FEngineLoop::Tick() launchengineloop.cpp:3025
UE4Editor!GuardedMain() launch.cpp:166
UE4Editor!GuardedMainWrapper() launchwindows.cpp:134
UE4Editor!WinMain() launchwindows.cpp:210
UE4Editor!__scrt_common_main_seh() exe_common.inl:264
kernel32!BaseThreadInitThunk()
ntdll!RtlUserThreadStart()
Why does the REMOVE method of map container remove elements have memory leaks?
How does TextureRenderTarget2D get TArray<uint8> type data?
How do I set a material as a post-processing material?
How to delete some elements correctly when deleting an array loop?
What is the difference between Camera and CineCamera?
How does TArray loop correctly remove elements in blueprints?
How to assign a value to a member of UMG's UMaterialInterface pointer type in C++?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-42179 in the post.
0 |
Component | UE - Graphics Features |
---|---|
Affects Versions | 4.15 |
Target Fix | 4.15.1 |
Fix Commit | 3315100 |
---|
Created | Feb 20, 2017 |
---|---|
Resolved | Feb 21, 2017 |
Updated | Apr 27, 2018 |