Why does rebuilding meshes on project open only use one thread?

I selected the “city park environment” in my content library, and selected “create new project” from it.
Then I opened 4.26 engine, and selected the CityParkEnvironmentCollec project to open up.
It’s now been building static mesh distance fields for over an hour, stuck at 95% project opening. Tailing the log in Saved/Logs shows that the main work is building distance fields for all the meshes.

However, Process Monitor only shows Unreal Engine using 3.3% of the CPU, which corresponds to a single thread on a 16-core/32-thread CPU.
This feels like work that could be very easily parallelized, so why isn’t it?

It depends, if it’s down to the last object then it likely can only build the distance fields on one mesh per thread at a time (like Lightmass) so it might have a big object being built on one thread and it simply takes longer.

It’s absolutely just building distance meshes for a bunch of separate objects.


[2021.01.25-18.14.53:344] 0]LogStaticMesh: Built static mesh [41.95s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedBridge03.SM_MergedBridge03
[2021.01.25-18.14.53:770] 0]LogStaticMesh: Building static mesh SM_MergedFence01_1...
[2021.01.25-18.17.03:640] 0]LogStaticMesh: Built static mesh [129.87s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedFence01_1.SM_MergedFence01_1
[2021.01.25-18.17.06:245] 0]LogStaticMesh: Building static mesh SM_MergedFence01_2...
[2021.01.25-18.19.27:311] 0]LogStaticMesh: Built static mesh [141.07s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedFence01_2.SM_MergedFence01_2
[2021.01.25-18.19.30:151] 0]LogStaticMesh: Building static mesh SM_MergedFence01_3...
[2021.01.25-18.19.51:526] 0]LogStaticMesh: Built static mesh [21.37s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedFence01_3.SM_MergedFence01_3
[2021.01.25-18.19.51:943] 0]LogStaticMesh: Building static mesh SM_MergedFence01_4...
[2021.01.25-18.20.44:106] 0]LogStaticMesh: Built static mesh [52.16s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedFence01_4.SM_MergedFence01_4
[2021.01.25-18.20.45:152] 0]LogStaticMesh: Building static mesh SM_MergedFence01_5...
[2021.01.25-18.21.04:963] 0]LogStaticMesh: Built static mesh [19.81s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedFence01_5.SM_MergedFence01_5
[2021.01.25-18.21.05:316] 0]LogStaticMesh: Building static mesh SM_MergedFence01_6...
[2021.01.25-18.21.48:569] 0]LogStaticMesh: Built static mesh [43.25s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedFence01_6.SM_MergedFence01_6
[2021.01.25-18.21.49:492] 0]LogStaticMesh: Building static mesh SM_MergedFence02_4...
[2021.01.25-18.22.12:418] 0]LogStaticMesh: Built static mesh [22.93s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedFence02_4.SM_MergedFence02_4
[2021.01.25-18.22.12:786] 0]LogStaticMesh: Building static mesh SM_MergedFence02_1...
[2021.01.25-18.22.28:628] 0]LogStaticMesh: Built static mesh [15.84s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedFence02_1.SM_MergedFence02_1
[2021.01.25-18.22.28:865] 0]LogStaticMesh: Building static mesh SM_MergedFence02_2...
[2021.01.25-18.22.51:455] 0]LogStaticMesh: Built static mesh [22.59s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedFence02_2.SM_MergedFence02_2
[2021.01.25-18.22.51:834] 0]LogStaticMesh: Building static mesh SM_MergedFence02_3...
[2021.01.25-18.23.10:221] 0]LogStaticMesh: Built static mesh [18.39s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedFence02_3.SM_MergedFence02_3
[2021.01.25-18.23.10:526] 0]LogStaticMesh: Building static mesh SM_MergedFence03_1...
[2021.01.25-18.23.31:872] 0]LogStaticMesh: Built static mesh [21.35s] /Game/CityPark/Meshes/MergeMeshes/SM_MergedFence03_1.SM_MergedFence03_1
[2021.01.25-18.23.32:241] 0]LogStaticMesh: Building static mesh SM_MergedFence03_2...


Interspersed with shader compilation.

​​​​​​