Description

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.

Steps to Reproduce

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.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-230971 in the post.

1
Login to Vote

Unresolved
ComponentUE - Editor - UI Systems - UMG
Affects Versions5.4
Target Fix5.6
CreatedNov 19, 2024
UpdatedNov 21, 2024
View Jira Issue