Why is "Asnyc Load Asset" Causing Massive Frame drops?

UE Insights of the Frame Drops

My marco async loading the textures

I followed this offical UE guide on Soft Object References to load assets into memory on runtime in the background.

I am using blueprints and a list of soft object references to load the textures of a volumetric video. I am loading a 6k 8-bit grayscale texture and a 3k RGBA 8-bit texture every second. I delay loading the second texture for half the animation frame time per second. In theory they should be around the same size. But the 6k 8-bit grayscale texture cause a lot more lag than the second one. The UE insights recording is from the Editor, but this happens in the build version too but it loads a bit faster.

This slow animation should be more than enough time to load the textures from an SSD in the background. I am using Async Load Assets which should run in the background and not have an effect on Frames. But as you can see Async Load Asset clearly causes frame delays until it finishes and behaves like Load Asset Blocking instead.

Disabling the Async Load Asset and just letting the rest of the script do its thing without loading textures causes no framedrop or is even visible in UE Insights. Using smaller textures reduces the loadtime and the framedrop, but they still halt the frames which is not what Async load should be doing.

Can you help me find out why Async Load Asset does not load in the background like it should? Or how I can load assets in the background without disturbing the FPS?

1 Like