From licensee:
"USkinnedMeshComponents have the option to double-buffer their bone transform data, and UE5.2 changed when the buffers are swapped. Previously it would happen during the PrePhysics tick (e.g. inside USkinnedMeshComponent::FlipEditableSpaceBases()), but now it occurs during the parallel end-of-frame render data update (downstream of USkinnedMeshComponent::SendRenderDynamicData_Concurrent()), which happens concurrently for all relevant components. This means that on some frames, some of the pose-follower components may be processed before the pose-leader, causing the follower to use the previous frame's bone data because the leader's buffers haven't yet been swapped.
We do have a tentative fix, namely separating out pose-loader components (USkinnedMeshComponents with "GetFollowerPoseComponents().Num() > 0") into their own array, instead of placing them into UWorld::ComponentsThatNeedEndOfFrameUpdate. Then inside UWorld::SendAllEndOfFrameUpdates() we fully process the pose-leader array (using an adapted version of the "ParallelWork" lambda) before processing the original array. This looks good in early tests and we're in the process of vetting it more thoroughly."
Also reported by another licensee: https://udn.unrealengine.com/s/question/0D54z00009RFRzOCAX/skin-cache-and-setleaderposecomponent
This is a race condition, I am only able to repro it by artificially staging it by messing in code.
How do I set a material as a post-processing material?
Why does the REMOVE method of map container remove elements have memory leaks?
How does TextureRenderTarget2D get TArray<uint8> type data?
What is the difference between Camera and CineCamera?
What controls of umg have mouse wheel events in UE4.27?
What ConsoleCommand can be executed to improve the quality of pixel stream images?
Why does the volume fog disappear from a distant view?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-191796 in the post.
6 |
Component | UE - Rendering Architecture |
---|---|
Target Fix | 5.4 |
Fix Commit | 30718389 |
---|---|
Main Commit | 30718636 |
Created | Aug 2, 2023 |
---|---|
Resolved | Jan 19, 2024 |
Updated | Apr 5, 2024 |