Setting the Phase Count of a RetainerBox to 2 or more may cause other widgets within the same UserWidget to flicker.
Upon investigation, we found that during frames where the flickering occurs, the LayerId of the RetainerBox is not properly updated. This results in the drawing order being reversed, causing other widgets to become hidden behind it.
This issue appears to depend on how the UserWidget is constructed.
In the case where bRenderRequested is false in SRetainerWidget::PaintRetainedContentImpl(), it seems that CachedMaxLayerId needs to be recalculated.
The reproduction project exceeds the attachment size limit, so please download it from UDN. In the SampleLevel, two UserWidgets are loaded. The first loaded UserWidget is designed to dynamically add and remove child Images.
1. Launch the attached reproduction project, open the SampleLevel, and play it.
2. You will observe that "FlickeringImage" and "FlickeringText," which are located hierarchically after the RetainerBox within the RetainerWidget, exhibit flickering.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-230971 in the post.
1 |
Component | UE - Editor - UI Systems - UMG |
---|---|
Affects Versions | 5.4 |
Created | Nov 19, 2024 |
---|---|
Updated | Nov 20, 2024 |