UActorComponent::SendRenderDynamicData_Concurrent()

Hello,

We hit the occasional check(bRenderStateCreated) in UActorComponent::SendRenderDynamicData_Concurrent().

The call to this function is in FRegisterComponentContext::Process() which already checks for ::IsValid(Primitive) for which the comment right above explains is to guard against potential lifetime issues. We propose to also check for Primitive->IsRenderStateCreate() to ensure the check never fires.

Do you think this makes sense?

The same pattern is found in AsyncRegisterLevelContext.cpp but this file has been deleted from your mainline.

Thanks!

if (::IsValid(Primitive) && Primitive->IsRenderStateCreated())
{
	Primitive->SendRenderDynamicData_Concurrent();
}

[Attachment Removed]

Steps to Reproduce
No consistent repro. The check fires occasionally while playing the game.

[Attachment Removed]

Hello,

Thanks for reporting this, we’ll probably implement a similar fix. I’ve created the following issue for tracking which should be visible publicly soon https://issues.unrealengine.com/issue/UE\-380279

[Attachment Removed]