Fix for FAsyncLoadingThread2::FlushLoading getting stuck in an infinite loop (constructur reentrancy) on projects where native class CDOs are loading blueprints.
#jira UE-165541
#rb carlmagnus.nordin
#rnx
#preflight 6335ef34f76de2d4d567888c
[CL 22271555 by pj kack in ue5-main branch]
- configurable severity
- separate cvar for shipping configuration
- strip sublevels from list to check if the owning world was also leaked
- optional minimal mode that searches for direct, external references to the target objects or one of their inner objects (e.g. actors in a world) for less memory overhead - uses about 225kb in one test (vs hundreds of mb)
- fix fatal logging option to log all errors before crashing
- optimize reference graph to skip leaf nodes, reduces cost from 500mb -> 335mb in one test
- only store a callstack in nodes that actually need it, reduces cost from 335mb -> 100mb in testing
#rb mickael.gilabert, robert.manuszewski, evgenii.babinets
[CL 22271311 by robert millar in ue5-main branch]
otherwise an unresolve `TObjectPtr` could resolve to nullptr causing determinism issues
#rb matt.peters zousar.shaker
#rnx
#preflight 6335c8cb5c2225fe5f12a7d6
[CL 22263392 by joe pribele in ue5-main branch]
- Hexdump of the whole compressed shader will be dumped if small enough (which is what we're seeing mostly).
#rb Jason.Nadro
[REVIEW] [at]Jason.Nadro
#jira UE-159777
#preflight 6335b508f76de2d4d55a858c
[CL 22262833 by arciel rekman in ue5-main branch]
#rb Matt.Peters
#jira UE-163504
#rnx
#preflight 63344a9ec7791417aafe4d8e
- This fix an issue where Niagara emitters being loaded from templates could end up with duplicate unique identifier as they were first being duplicated to a transient package before being moved (via UObject::Rename) to the final package. This meant we had no way to produce a unique guid for the editor bulkdata.
- This solution does mean that we are not producing stable guids between multiple runs of the editor (the above scenario occurs every time the Niagara package is loaded) but that requirement is for future features that are not yet online. We will revisit this code in 5.2 to implement a solution that does produce stable guids.
[CL 22239135 by paul chipchase in ue5-main branch]
This is to faliciate validation by inspecting the header as well as allow asset patching using solely the header without export loading.
Deprecate FolderName in UPackage and replace it in PackageSummary with the PackageName
Use to replaced PackageName to generate relative path loading when detecting a package has been relocated which allows some support for asset manipulation through normal file operation
#jira UE-157843, FORT-516887
#rb Matt.Peters
#lockdown Marc.Audy
#preflight 6331bb81665f6b8f7fed4f98
[CL 22239099 by francis hurteau in ue5-main branch]
Fix for destroying ChildActorComponent sometimes fails assert in UObjectBase destructor checking for NAME_None.
Previously GIsGarbageCollecting was only set during the internal IncrementalDestroyGarbage function, and was missing for the UnhashUnreachableObjects function that is responsible for calling UObject::BeginDestroy.
This was probably a mistake when incremental GC was first introduced, and not what client code like UChildActorComponent::DestroyChildActor is expecting.
We always want BeginDestroy to the behave the same no matter if it is called from a full blocking GC (when GIsGarbageCollecting=true is already true) or from an incremental GC step.
Change type of GIsGarbageCollecting from FThreadSafeBool to a normal bool. It is only set from GT, and it should only be read from GT (it does not make sense on other threads, nothing that cares about it should run at this time).
Explicitly silence ~SObjectWidget ensure on engine shutdown since GIsGarbageCollecting is now set in this scneario too (no actual change in behaviour).
#jira UE-165192
#rb francis.hurteau, robert.manuszewski, robert.millar
#rnx
#preflight 6333e9da665f6b8f7f62ad09
[CL 22231505 by pj kack in ue5-main branch]
New asset tag added for vpaths, displayed in the content browser.
#rb dave.belanger
#preflight 63330acea4769ad714f8ea2d
[CL 22228539 by Dave Belanger in ue5-main branch]
The new FCookedData has been used to clean up the FLinkerSave API and the implementation of FDerivedData.
#preflight 63344bde0530d7c4b9c115d0
#rb Zousar.Shaker
#rnx
[CL 22221553 by Devin Doucette in ue5-main branch]