There is this line in the constructor for FDuplicateDataReader (and Writer):
this->SetUseUnversionedPropertySerialization(((InPortFlags & PPF_DuplicateForPIE) == 0));
The unversioned property serialization is faster than regular property serialization, but it assumes that writing and reading are always going to be perfectly symmetric. That should be a safe assumption when duplicating stuff - wouldn’t necessarily work when saving to disk and reading later, when some code might have changed. Doesn’t this look inverted, though? It’s setting unversioned serialization when the duplicate for PIE flag is not set, right?
For a large world, with a large number of actors, there is a significant performance boost when starting Play In Editor from inverting this condition. Is this just a simple bug? Or am I missing something here?
[Attachment Removed]