Invalidation Box Widget - Details of Caching/Usage?

In the Documentation for the Invalidation Box, it states that if a Widget placed inside an Invalidation box changes, it will become invalid and you will need to manually invalidate the cache which will throw it away essentially and force it to redraw on the next paint pass; anything that changes the visual appearance of the widget requires it to be invalidated.

I have tried wrapping a Progress Bar (Health which changes through property-binding), Text (Current Ammo that is function-binded and changes when you shoot) and Buttons (whose tint Color changes when you press/hover over it) with Invalidation Boxes but without manually invalidating the cache when the above 3 changes occur. The changes still occur as per normal even though the cache has not been invalidated and when I on the Widget Reflector’s Invalidation Debugging feature in game, the Invalidation Panel does not turn red (which signifies that the Cache is not invalidated).

Can I infer from this that Widgets whose visual appearances change through property and function bindings are exempt from being cached by the Invalidation Box since they are being called every tick anyway? And are the hover/pressed states of Buttons already cached by default and thus are not considered as a “visual appearance change”?

I am confused about what kind of “visual appearance change” for Widgets is actually necessary for manual invalidation of the Cache when an Invalidation Box is wrapped around the Widgets?

Additionally, does the Invalidation Box cache all children, grand-children grand-grand-children and e.t.c. widgets in the Hierarchy and thus we only need one Invalidation Box at the top of the Hierarchy for each UMG Blueprint?

2 Likes

Did you figure out anything about it?