Commit Graph

3604 Commits

Author SHA1 Message Date
carlmagnus nordin
d0a7f9a0ad ZenLoader: Fixed incorrect calling of CreateAsyncPackagesFromQueue when running without the ALT
#preflight 633b01932a5690003a171881
#rb pj.kack

[CL 22322234 by carlmagnus nordin in ue5-main branch]
2022-10-03 20:38:22 -04:00
carlmagnus nordin
fa887104cb ZenLoader: Ensure that packages for sync load requests are created as soon as possible so that we don't waste time looking for them in the event queue
#rb pj.kack
#preflight 633aa141b34118b9b4403c8b

[CL 22307506 by carlmagnus nordin in ue5-main branch]
2022-10-03 12:52:58 -04:00
danny couture
289557bb5f Handle a very obtuse case of weak reference when validating object deletion
#jira UE-165426
#rb Robert.Manuszewski
#preflight 633adc8c2a5690003a0f099b

[CL 22300002 by danny couture in ue5-main branch]
2022-10-03 09:07:58 -04:00
robert millar
a41909375d Fix FAssetData::GetObjectPathString to return the empty string rather than None.None for empty/default initialized asset data.
#jira UE-165277
#rb phillip.kavan
#preflight 63375f615c2225fe5f99bd09

[CL 22285207 by robert millar in ue5-main branch]
2022-09-30 20:30:28 -04:00
francis hurteau
92fab5d127 Properly skip soft object path list for text asset
#rb Dan.OConnor
#jira UE-165714
#preflight 633759710d2b0d7bd8c7d63f

[CL 22284582 by francis hurteau in ue5-main branch]
2022-09-30 19:36:36 -04:00
joe pribele
9571d4eec5 [AssetRegistry] changed TryGetAssetByObjectPath to use FSoftObjectPath to match the rest of the API
#rb zousar.shaker
#preflight 63376f4d0d2b0d7bd8ce92c1

[CL 22283581 by joe pribele in ue5-main branch]
2022-09-30 19:00:07 -04:00
pj kack
5da047bb3e AsyncLoading2: Only process/create pending CDOs when absolutely required to unblock the current FlushAsyncLoading stack during initial load.
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]
2022-09-30 11:27:56 -04:00
per larsson
c25048d9df Bulk Data - deprecate GetPackagePath/PackageSegment
#rb Paul.Chipchase
#jira UE-165473
#preflight 63359b2e3041fbb5665410c3

[CL 22271509 by per larsson in ue5-main branch]
2022-09-30 11:25:58 -04:00
robert millar
9b93b51994 Expansions to LoadMap world leak tracking.
- 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]
2022-09-30 11:17:22 -04:00
CarlMagnus Nordin
586a6b4d42 Fixed an issue where a uobject intended to replace another uobject in the object array could get a new internal index if other threads were creating objects at the same time
#preflight 6336e5c7466fb436690e7173
#rb pj.kack

[CL 22269849 by CarlMagnus Nordin in ue5-main branch]
2022-09-30 09:32:12 -04:00
CarlMagnus Nordin
00d5e7a4bd Propagate the LoaderImport internal flag when replacing an object in the object array
#rb pj.kack
#preflight 6336df05466fb436690c09a5

[CL 22269372 by CarlMagnus Nordin in ue5-main branch]
2022-09-30 08:44:29 -04:00
danny couture
e52aab5513 Move BP reinstanciation to happen on async loading thread before postloads are called
#rb CarlMagnus.Nordin, Dan.OConnor
#preflight 6335d7b5d165c45137abf76f

[CL 22267626 by danny couture in ue5-main branch]
2022-09-30 05:32:59 -04:00
joe pribele
7469de56de [CoreUObject] compile fix for bad merge
[CL 22264030 by joe pribele in ue5-main branch]
2022-09-30 01:35:49 -04:00
joe pribele
3db3104b1c [AssetRegistry] added two new methods TryGetAssetByObjectPath and TryGetAssetPackageData to allow lazy load to be able to accurately validate that objects and paths exist
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]
2022-09-30 00:54:16 -04:00
arciel rekman
1facaa88b2 Add more logging to investigate shader decompression errors (UE-159777).
- 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]
2022-09-29 23:45:42 -04:00
Matt Peters
e116834785 Suppress the BulkData duplicate guid warning until we have eliminated all sources of duplication.
#rb Paul.Chipchase
#rnx
#preflight 633480a0e41069160680aac8

[CL 22248339 by Matt Peters in ue5-main branch]
2022-09-29 11:32:13 -04:00
danny couture
5fb4fc84e9 Avoid async loading thread to touch the transaction buffer or to trigger an object modified event
#rb Francis.Hurteau
#preflight 631f44f55b06877acb9533c4

[CL 22246989 by danny couture in ue5-main branch]
2022-09-29 10:10:11 -04:00
paul chipchase
aafc08afb4 EditorBulkData will now generate a new identifier when loaded into a transient package
#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]
2022-09-28 21:41:54 -04:00
francis hurteau
be29f20c37 Add a softobject path table to the package summary header
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]
2022-09-28 21:41:00 -04:00
john vanderburg
238cdeb96f Optimization in the LinkerLoad, when it has many bulk data loaders. This could do like a linear search through the large array thousands of times, which got very slow. Turned the TArray into a TSet. This speeds up loading certain geometry caches significantly.
#preflight 63346317e25f11e51a14db4b

[CL 22238994 by john vanderburg in ue5-main branch]
2022-09-28 21:38:30 -04:00
danny couture
ba7fe78263 Avoid postloading duplicates during async loading as they will be postloaded on the GT instead
#rb Francis.Hurteau, Dan.OConnor
#preflight 6334e7cbf418a1071a3cafc6

[CL 22237766 by danny couture in ue5-main branch]
2022-09-28 20:55:51 -04:00
steve robb
f8903a272e Test code removed.
#rb trivial
#preflight none

[CL 22231642 by steve robb in ue5-main branch]
2022-09-28 17:41:56 -04:00
pj kack
3407487275 GC: Make sure to set GIsGarbageCollecting=true for the complete IncrementalPurgeGarbage phase (cleanup step left out of the bigger change 19898875).
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]
2022-09-28 17:36:06 -04:00
Dave Belanger
453d3b16dd UE::Core::FVersePath added.
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]
2022-09-28 15:09:48 -04:00
Devin Doucette
e80df527fd DerivedData: Extracted private FCookedData from FDerivedData
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]
2022-09-28 10:07:08 -04:00