Reported alongside [Link Removed]
Context: Some ActorComponents can schedule end-of-frame work which UWorld executes later in the frame in UWorld::SendAllEndOfFrameUpdates(). By-design it appears that it's not allowed to schedule more end-of-frame work while executing such work, since this assertion in MarkActorComponentForNeededEndOfFrameUpdate() is meant to catch that:
check(!bPostTickComponentUpdate); // can't call this while we are doing the updates
The provided callstack shows EOF work scheduling more EOF work so this should be addressed.
Issue: No specific repro steps provided except that NiagaraMeshRenderer is involved and the crash isn't reliable to repro. Looking at the callstack it seems that
UNiagaraComponent::CreateRenderState_Concurrent can cause FStaticMeshCompilingManager::FinishCompilation to be called, which causes some component to ultimately call UActorComponent::MarkRenderStateDirty(). This is not allowed while inside SendAllEndOfFrameUpdates() so should be addressed somewhere along the callstack.
KERNELBASE!RaiseException() [:-1]
UnrealEditor_Core!ReportAssert(wchar_t* ErrorMessage, void* ProgramCounter) [WindowsPlatformCrashContext.cpp:1834]
UnrealEditor_Core!FWindowsErrorOutputDevice::Serialize(wchar_t* Msg, ELogVerbosity::Type Verbosity = SetColor (0n64), FName* Category) [WindowsErrorOutputDevice.cpp:84]
UnrealEditor_Core!FOutputDevice::LogfImpl(wchar_t* Fmt) [OutputDevice.cpp:70]
UnrealEditor_Core!FOutputDevice::Logf() [OutputDevice.h:250]
UnrealEditor_Core!AssertFailedImplV(char* Expr, char* File, int Line = 0n889, void* ProgramCounter, wchar_t* Format, char* Args) [AssertionMacros.cpp:148]
UnrealEditor_Core!FDebug::CheckVerifyFailedImpl2(char* Expr, char* File, int Line = 0n889, wchar_t* Format) [AssertionMacros.cpp:649]
UnrealEditor_Engine!UWorld::MarkActorComponentForNeededEndOfFrameUpdate(UActorComponent* Component, bool bForceGameThread = false) [LevelTick.cpp:889]
UnrealEditor_Engine!UActorComponent::MarkRenderStateDirty() [ActorComponent.cpp:1961]
UnrealEditor_Engine!FShaderCompilingManager::PropagateMaterialChangesToPrimitives(TMap<TRefCountPtr<FMaterial>,TRefCountPtr<FMaterialShaderMap>,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<TRefCountPtr<FMaterial>,TRefCountPtr<FMaterialShaderMap>,0>>* MaterialsToUpdate) [ShaderCompiler.cpp:7048]
UnrealEditor_Engine!FShaderCompilingManager::ProcessCompiledShaderMaps(TMap<int,FShaderMapCompileResults,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<int,FShaderMapCompileResults,0>>* CompiledShaderMaps, float TimeBudget = 0.005865002051) [ShaderCompiler.cpp:7020]
UnrealEditor_Engine!FShaderCompilingManager::ProcessAsyncResults(float TimeSlice, bool bBlockOnGlobalShaderCompletion = false) [ShaderCompiler.cpp:7554]
UnrealEditor_Engine!AsyncCompilationHelpers::FinishCompilation(TFunctionRef<AsyncCompilationHelpers::ICompilable & __cdecl(int)>* Getter, int Num = 0n1, FText* AssetType, FLogCategoryBase* LogCategory, TFunctionRef<void __cdecl(AsyncCompilationHelpers::ICompilable*)>* PostCompileSingle) [AsyncCompilationHelpers.cpp:187]
UnrealEditor_Engine!FStaticMeshCompilingManager::FinishCompilation(TArrayView<UStaticMesh* const,int>* InStaticMeshes) [StaticMeshCompiler.cpp:406]
UnrealEditor_Engine!UStaticMesh::WaitUntilAsyncPropertyReleased(EStaticMeshAsyncProperties AsyncProperties = 0n1205876736 (No matching enumerant)) [StaticMesh.cpp:3471]
UnrealEditor_Engine!UStaticMesh::GetRenderData() [StaticMesh.cpp:3498]
UnrealEditor_Niagara!NiagaraMeshRendererPropertiesInternal::ResolveRenderableMeshInternal(FNiagaraMeshRendererMeshProperties* MeshProperties, FNiagaraEmitterInstance* EmitterInstance, INiagaraRenderableMeshInterface** OutInterface, UStaticMesh** OutStaticMesh) [NiagaraMeshRendererProperties.cpp:203]
UnrealEditor_Niagara!UNiagaraMeshRendererProperties::GetUsedMaterials(FNiagaraEmitterInstance* EmitterInstance, TArray<UMaterialInterface*,TSizedDefaultAllocator<32>>* OutMaterials) [NiagaraMeshRendererProperties.cpp:741]
UnrealEditor_Niagara!`FNiagaraSystemInstanceController::GetUsedMaterials'::`9'::<lambda_1>::operator()(UNiagaraRendererProperties* Properties) [NiagaraSystemInstanceController.cpp:140]
UnrealEditor_Niagara!FNiagaraEmitterInstance::ForEachEnabledRenderer() [NiagaraEmitterInstance.h:135]
UnrealEditor_Niagara!FNiagaraSystemInstanceController::GetUsedMaterials(TArray<UMaterialInterface*,TSizedDefaultAllocator<32>>* OutMaterials) [NiagaraSystemInstanceController.cpp:133]
UnrealEditor_Niagara!UNiagaraComponent::GetUsedMaterials(TArray<UMaterialInterface*,TSizedDefaultAllocator<32>>* OutMaterials, bool bGetDebugMaterials = true) [NiagaraComponent.cpp:2428]
UnrealEditor_Engine!FPrimitiveSceneProxy::FPrimitiveSceneProxy(FPrimitiveSceneProxyDesc* InProxyDesc, FName* InResourceName) [PrimitiveSceneProxy.cpp:716]
UnrealEditor_Engine!FPrimitiveSceneProxy::FPrimitiveSceneProxy(UPrimitiveComponent* InComponent, FName* InResourceName) [PrimitiveSceneProxy.cpp:465]
UnrealEditor_Niagara!FNiagaraSceneProxy::FNiagaraSceneProxy(UNiagaraComponent* InComponent) [NiagaraComponent.cpp:192]
UnrealEditor_Niagara!UNiagaraComponent::CreateSceneProxy() [NiagaraComponent.cpp:2406]
UnrealEditor_Engine!FActorPrimitiveComponentInterface::CreateSceneProxy() [PrimitiveComponent.cpp:5316]
UnrealEditor_Renderer!FScene::BatchAddPrimitivesInternal<UPrimitiveComponent>(TArrayView<UPrimitiveComponent*,int>* InPrimitives) [RendererScene.cpp:2131]
UnrealEditor_Renderer!FScene::AddPrimitive(UPrimitiveComponent* Primitive) [RendererScene.cpp:2040]
UnrealEditor_Engine!UPrimitiveComponent::CreateRenderState_Concurrent(FRegisterComponentContext* Context) [PrimitiveComponent.cpp:637]
UnrealEditor_Niagara!UNiagaraComponent::CreateRenderState_Concurrent(FRegisterComponentContext* Context) [NiagaraComponent.cpp:2247]
UnrealEditor_Engine!UActorComponent::RecreateRenderState_Concurrent() [ActorComponent.cpp:1852]
UnrealEditor_Engine!UActorComponent::DoDeferredRenderUpdates_Concurrent() [ActorComponent.cpp:1928]
UnrealEditor_Engine!`UWorld::SendAllEndOfFrameUpdates'::`2'::<lambda_3>::operator()() [LevelTick.cpp:1129]
UnrealEditor_Engine!UWorld::SendAllEndOfFrameUpdates() [LevelTick.cpp:1149]
UnrealEditor_UnrealEd!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode = false) [EditorEngine.cpp:2176]
UnrealEditor_UnrealEd!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) [UnrealEdEngine.cpp:563]
UnrealEditor_GbxNetGameEditor!UGbxNetGameUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) [GbxNetGameUnrealEdEngine.cpp:17]
UnrealEditor!FEngineLoop::Tick() [LaunchEngineLoop.cpp:6165]
UnrealEditor!EngineTick() [Launch.cpp:64]
UnrealEditor!GuardedMain(wchar_t* CmdLine) [Launch.cpp:198]
I am not able to find world outliner how to enable it?
How can i modify the param name in EQS node
not get the sound when record the movie? matinee-UE4
Lighting Turns Black in Play Mode
Bullet replication problem. The players sees each other but does not see the bullet
How to achieve HLSL Multiple Render Target in Material blueprints?
Undefined sysmbol: typeinfo for AActor when cross-compile linux dedicated server on windows
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-220015 in the post.
1 |
Component | UE - Niagara - Rendering |
---|---|
Affects Versions | 5.4 |
Target Fix | 5.5 |
Fix Commit | 33520713 |
---|
Created | Jul 23, 2024 |
---|---|
Resolved | Jul 24, 2024 |
Updated | Sep 20, 2024 |