UGroomComponent doesn't precache PSOs unless it is loaded from disk

`UGroomComponent` calls `PrecachePSOs()` from exactly one place — `UGroomComponent::PostLoad()` (`GroomComponent.cpp:3421`).

As a result, any groom component that is not loaded from disk, or that is unregistered and re-registered, reaches `CreateSceneProxy()` with `FPSOPrecacheComponentData::bPSOPrecacheCalled == false`, which trips:

```

Engine/Source/Runtime/Engine/Private/PSOPrecache.cpp:296

ensure(!IsComponentPSOPrecachingEnabled() || bPSOPrecacheCalled);

```

Suggested fix:

Add a `PrecachePSOs()` call at the end of `UGroomComponent::OnRegister()`, matching `USkinnedMeshComponent::OnRegister()`.

[Attachment Removed]

Steps to Reproduce
1. Enable component PSO precaching (default).

2. At runtime, `NewObject<UGroomComponent>()` on an actor, `SetGroomAsset(GroomAsset, BindingAsset)`, `AttachToComponent(…)`, `RegisterComponent()`.

3. The ensure fires on the first `CreateSceneProxy()`.

[Attachment Removed]

Hey, I think we fixed this issue with CL 55798320. That change did not make it into the UE5-Main stream, but since it’s a trivial fix, you should be able to cherry-pick it. Let me know if that works for you

[Attachment Removed]

Hi, yes it’s the same bug. We have cherry-picked the CL and it works. Thank you

[Attachment Removed]

Ok, great to hear. I will close out this ticket then. Please let us know in case anything else comes up

[Attachment Removed]