Fixed recursive post loads not being tracked properly
Fixed time calculations for recursive scopes
Added support for load time tracing in the editor
Added time selection filtering to the requests tab
#rb ionut.matasaru
#preflight 635fa5cd1803be35c7ff3bc8
[CL 22858164 by CarlMagnus Nordin in ue5-main branch]
[FYI] Steve.Robb
Original CL Desc
-----------------------------------------------------------------
TMap and TSet can now be declared as members with forward-declared key and value parameters.
KeyFuncs::KeyInitType and KeyFuncs::ElementInitType typedefs are no longer used and user-defined KeyFuncs do not need to provide them. Deprecated placeholders for these typedefs exist though they may not be defined exactly as they were before. A new KeyType typedef needs to be provided by custom KeyFuncs which don't already inherit from BaseKeyFuncs or TDefaultMapKeyFuncs.
KeyConstPointerType, KeyInitType, ValueInitType and ElementInitType typedefs have been deprecated across TMap, TSet and TSortedMap. Regular C++ parameter-passing semantics should be used instead (const T& Ref or T Value, depending on T).
Added missing FSetElementId::operator!=().
[FYI] steve.robb
#rb james.hopkin
[FYI] henrik.karlsson
#preflight 635a56c15d49a96f7b31938f
[CL 22850782 by graeme thornton in ue5-main branch]
Change WebRemoteControlInternalUtils.cpp to use WIDECHAR
[FYI] aurel.cordonnier
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL22811007
[FYI] Justin.Marcus
Original CL Desc
-----------------------------------------------------------------
Fix JSON Reader UTF8 parsing.
Add ability to use JSON Reader with a string view.
Add explicit UTF8 smoke tests.
Change uses of TJsonReader<UCS2CHAR> to TJsonReader<WIDECHAR> since TStringBuilder<UCS2CHAR> doesn't compile.
Change uses of TJsonReader<char> to TJsonReader<UTF8CHAR>. There isn't much use for TJsonReader<char> as ASCII is a subset of UTF8 so TJsonReader<UTF8CHAR> is always preferable.
#rb [at]Steve.Robb
#preflight https://horde.devtools.epicgames.com/job/635980ead86d91ca2cfabc77
[CL 22835909 by justin marcus in ue5-main branch]
This is required for c++ modules/header units in order to decide if constexpr/const value should be available to outside module
#preflight 635c0b5c1803be35c767e0ea
#rb none
[CL 22835882 by henrik karlsson in ue5-main branch]
[FYI] Justin.Marcus
Original CL Desc
-----------------------------------------------------------------
Fix JSON Reader UTF8 parsing.
Add ability to use JSON Reader with a string view.
Add explicit UTF8 smoke tests.
Change uses of TJsonReader<UCS2CHAR> to TJsonReader<WIDECHAR> since TStringBuilder<UCS2CHAR> doesn't compile.
Change uses of TJsonReader<char> to TJsonReader<UTF8CHAR>. There isn't much use for TJsonReader<char> as ASCII is a subset of UTF8 so TJsonReader<UTF8CHAR> is always preferable.
#rb [at]Steve.Robb
#preflight https://horde.devtools.epicgames.com/job/635980ead86d91ca2cfabc77
[CL 22823854 by aurel cordonnier in ue5-main branch]
Printing full stack trace could quickly bloat log, but we can print only top level caller actor to narrow down what BP is responsible for the warning.
Main use case is to catch BP which causes Script Msg: Divide by zero: Divide_VectorFloat and other UKismetMathLibrary errors.
#rb andrew.ladenberger, Steve.Robb
#tests replay run
[CL 22823605 by anton dunchev in ue5-main branch]
Add ability to use JSON Reader with a string view.
Add explicit UTF8 smoke tests.
Change uses of TJsonReader<UCS2CHAR> to TJsonReader<WIDECHAR> since TStringBuilder<UCS2CHAR> doesn't compile.
Change uses of TJsonReader<char> to TJsonReader<UTF8CHAR>. There isn't much use for TJsonReader<char> as ASCII is a subset of UTF8 so TJsonReader<UTF8CHAR> is always preferable.
#rb [at]Steve.Robb
#preflight https://horde.devtools.epicgames.com/job/635980ead86d91ca2cfabc77
[CL 22823191 by justin marcus in ue5-main branch]
KeyFuncs::KeyInitType and KeyFuncs::ElementInitType typedefs are no longer used and user-defined KeyFuncs do not need to provide them. Deprecated placeholders for these typedefs exist though they may not be defined exactly as they were before. A new KeyType typedef needs to be provided by custom KeyFuncs which don't already inherit from BaseKeyFuncs or TDefaultMapKeyFuncs.
KeyConstPointerType, KeyInitType, ValueInitType and ElementInitType typedefs have been deprecated across TMap, TSet and TSortedMap. Regular C++ parameter-passing semantics should be used instead (const T& Ref or T Value, depending on T).
Added missing FSetElementId::operator!=().
#rb james.hopkin
[FYI] henrik.karlsson
#preflight 635a56c15d49a96f7b31938f
[CL 22810695 by steve robb in ue5-main branch]
moved test classes outside of namespace as that was causing problems for the compiler
#preflight 6356dcc73a547c3da332a751
[CL 22733737 by joe pribele in ue5-main branch]
resolved pointers where comparing uintptr_t instead of the raw pointers which allow for inheritance
#jira https://jira.it.epicgames.com/browse/UE-168013
#rb zousar.shaker
#preflight 6356c19a9e14ee3c795a2b6f
[CL 22731180 by joe pribele in ue5-main branch]
#rb Devin.Doucette
#jira UE-167928
#rnx
#preflight 6352b20f3a547c3da37635e6
- Converting the in memory payload (FSharedBuffer) to a non-compressed FCompressedBuffer will cause the payload to be hashed. Given that we are not compressing the buffer and it will just be loaded and converted back to FSharedBuffer, this hash is pointless.
- This first started when we changed editor bulkdata to serialize the payload as a FCompressedBuffer during normal serialization, since the transaction serialization was using the same ::SerializeData method as FSharedBuffer does not have native FArchive serialization support.
- We can add our own serialization support for FSharedBuffer and then not convert it to FCompressedBuffer to avoid the whole problem.
- Profiling showed that this changed reduces the time spent serializing a 100MiB payload from 100ms to 30ms (average)
[CL 22710494 by paul chipchase in ue5-main branch]
Handle loaded objects being moved to another (transient) package by cleaning up all public export state when removing a loaded package.
Handle reloading of a package with internally renamed objects by allowing StoreGlobalObject to replace the previous public export.
Note: Renaming of loaded packages is still only supported via the delegate GetOnLeakedPackageRenameDelegate.
Compile all debug verification in all builds and make it possible to toggle with s.VerifyUnreachableObject=0/1 and s.VerifyObjectLoadFlags=0/1, while enabling it by default it debug and development builds.
#jira UE-167186, FORT-524537
#rb carlmagnus.nordin
[FYI] robert.millar
#preflight 63526bdc9e14ee3c798aa429, 63527f560313c24974216206
#rnx
[CL 22710443 by pj kack in ue5-main branch]
#rb Per.Larsson
#jira UE-161062
#rnx
#preflight 63526ad83d41a4455a831dd8
- The repro in question was to edit an asset with editor bulkdata (sound wave), save, undo, then try to access the editor bulkdata payload which would fail.
- The problem is when the asset is edited we store the state of the bulkdata, then when we save the package that bulkdata is detached from its file on disk and is no longer allowed to try loading from it. When the undo is applied the flag stating that the bulkdata is detached was removed and the original files offset was set back in the bulkdata. So not only did it think it should load the payload from disk, but it would now load it from the offset of the file from before it was saved.
- This problem comes from us storing the transient flags in the same enum as the non-transient. The transient flags should not be serialized to the transaction buffer nor should they be restored from there.
- The fix for now is to record the transient flags before serializing from the transaction buffer then reapplying those flags after the fact. In 5.2 we should bite the bullet and try splitting the flags properly to prevent future issues/
[CL 22707954 by paul chipchase in ue5-main branch]
[FYI] vincent.beauchemin
Original CL Desc
-----------------------------------------------------------------
Move warning to Log on : Short type name \"%s\" provided for TryFindType. Please convert it to a path name since we would need to resaved all previous Level Instance and map done by Quixel forAncient Game project.
#rb jeanfrancois.dube
#jira UE-163818
#preflight n/a
[CL 22660508 by jeanfrancois dube in ue5-main branch]