Added UE::Mass::ProcessorGroupNames::LOD to ExecuteAfter dependencies for UMassRepresentationProcessor by default, to ensure LOD computation occurs before MassRepresentationProcessor tries to enact the requested LOD's representation changes.
Also put UMassStationaryISMSwitcherProcessor.cpp in the Representation processor group, still keeping it's explicit ExecuteAfter of UMassVisualizationProcessor within the group.
[REVIEW] [at]Mieszko.Zielinksi
[CL 27753377 by dan smith in ue5-main branch]
The core of the issue was that crowd representation relies on ISM IDs magic to remove instances that are no longer being updated, while this information is not explicitly available on MassVisualizationComponent side. Because of that the ISM components that just became "empty" were not marked as "dirty" (because they were being made "empty" by not having anything added to them) and as such were not being processed by UMassVisualizationComponent::EndVisualChanges
#jira UE-184840
[CL 27549930 by mieszko zielinski in ue5-main branch]
Main point, added "Total Mass" stat, that in principle should sum up all of the work performed by Mass as part of regular every-frame work
[CL 27437083 by mieszko zielinski in ue5-main branch]
This change skips needlessly processing thousands of dormant entries in UMassVisualizationComponent::ISMCSharedData
[CL 27303203 by mieszko zielinski in ue5-main branch]
[FYI] Mieszko.Zielinski
Original CL Desc
-----------------------------------------------------------------
Mass visualization changes aimed at visualization data reuse in scenarios where an ISMComponent gets removed and then added again later (the same object path, but different pointers).
In addition I changed how we initialize newly added InstancedStaticMeshInfos entries - we no longer linearly go through the whole array to detect uninitialized entries, instead upon creation we collect indices to be processed when the time comes
[CL 26981720 by james studdart in ue5-main branch]
In addition I changed how we initialize newly added InstancedStaticMeshInfos entries - we no longer linearly go through the whole array to detect uninitialized entries, instead upon creation we collect indices to be processed when the time comes
[CL 26952191 by mieszko zielinski in ue5-main branch]