It may occur that during loading screens, materials using material layers will load with GWhiteTexture before the real textures are ready. This seems to be because of a race condition due to PostLoadGroup, causing material layers to PostLoad before textures do.

This shows when cached uniform expression updates are requested between render commands issued by PostLoad() calls.

To make sure the referenced textures get the chance to PostLoad() before the layers do, we need to issue calls ConditionalPostLoad() on all textures referenced by material functions/instances when they PostLoad().

From UDN [Link Removed]

Steps to Reproduce

Build command line:

Engine\Build\BatchFiles\RunUAT.bat BuildCookRun -project=PostLoadRace/PostLoadRace.uproject -configuration=Development -build -cook -pak -sign -stage -platform=Win64

Run the application. One of the boxes will be white from GWhiteTexture.

Have Comments or More Details?

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

Login to Vote

Fix Commit32054617
Main Commit32054852
CreatedMar 6, 2024
ResolvedMar 7, 2024
UpdatedMar 11, 2024