Files
UnrealEngineUWP/Engine/Source/Developer/NaniteBuilder
rune stubbe 8292810479 Fixed potential streamer crash by fixing the non-determinism issues in the Nanite builder.
Because of assumptions in the DDC system about cooking being deterministic, we could under various circumstances end up in a situations where StaticMesh and the associated Nanite streaming data was coming from two different cooks.
This could easily cause a crash as the StaticMesh chunk contains explicit page and offset references into the streaming data.

Determinism fixes:
-Added sorting step during initial clustering in the case where an edge is shared by more than 2 triangles.
-Added sorting step to sort parent clusters after they have been generated.
-Changed cluster GUID from 32bit to 64bit. When cooking CitySample there was one case where two clusters that were compared ended up with the same GUID, resulting in undefined order.
-Initialized GUID in the cluster constructor that takes a list of clusters to merge. Before it would just be 0.
-Added missing initialization of vertex color on fallback meshes that don't use vertex color.

#jira UE-146347
#rb brian.karis, michal.valient
#preflight 6238817789625f06129f616f

#ushell-cherrypick of 19458684 by Rune.Stubbe
#lockdown Marc.Audy

#ROBOMERGE-AUTHOR: rune.stubbe
#ROBOMERGE-SOURCE: CL 19467008 in //UE5/Release-Engine-Staging/...
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v935-19464907)

[CL 19468567 by rune stubbe in ue5-main branch]
2022-03-22 13:10:29 -04:00
..