Commit Graph

4093 Commits

Author SHA1 Message Date
Matt Peters
e6687c56ac BulkDataRegistry: Fix EditorBuildInputResolver to set Status to Error in the cases where a registered BulkData is found but it cannot find its payload.
Remove bValid from FMetaData and FData return structs; it is redundant with the RawHash/Buffer data already present in those structs.
#preflight 62680b42430b9997ebe0a46d
#rb Devin.Doucette
#rnx

[CL 19923039 by Matt Peters in ue5-main branch]
2022-04-26 12:47:22 -04:00
brian bekich
e323a2acda Moving custom property conditions out of the net driver
Stored per object, and can be set from any game code, not just PreReplication

#rb ryan.gerleve, peter.engstrom

#ROBOMERGE-AUTHOR: brian.bekich
#ROBOMERGE-SOURCE: CL 19909058 via CL 19911194 via CL 19911458
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 19913111 by brian bekich in ue5-main branch]
2022-04-25 20:29:52 -04:00
pj kack
c500f3e469 GC: Restrict the giant FGCCSyncObject and FUObjectHashTables locks to the reachability analysis phase.
It is possible to toggle to the previous/legacy behavior with gc.GCLockBehavior=1.

Legacy behavior:
A giant FGCCSyncObject lock for the complete duration of CollectGarbageInternal.
A giant FUObjectHashTables lock for most of CollectGarbageInternal except the execution of the GetPreGarbageCollectDelegate and GetPostGarbageCollect callbacks.
Giant FGCCSyncObject and FUObjectHashTables locks for IncrementalPurgeGarbage (inluding both UnhashUnreachableObjects and IncrementalDestroyGarbage).

Unchanged behavior:
The GIsGarbageCollecting contract is fuzzy and the behavior is not changed at this point to reduce risk.
GIsGarbageCollecting is set during CollectGarbageInternal.
GIsGarbageCollecting is also set during the IncrementalDestroyGarbage phase of IncrementalPurgeGarbage, but not during UnhashUnreachableObjects. Why???
Many use cases seems to be as simple as to avoid the StaticFindObject asserts, but there are definitely use cases that are harder to reason about like UObject::GetDefaultSubobjectByName, UObject::CanModify, UChildActorComponent::DestroyChildActor, AActor::ProcessEvent, AGroupActor::PostRemove, UEditorEngine::UndoTransaction, UEditorEngine::RedoTransaction, DatasmithRuntime::FSceneImporter, ...

Changed legacy and default behavior:
Move PostReachabilityAnalysis.Broadcast after GatherUnreachableObjects, NotifyUnreachableObjects and ClearWeakReferences.
StaticAllocateObject and the StaticFindObject functions are now checking IsGarbageCollectingAndLockingUObjectHashTables instead of IsGarbageCollecting/IsGarbageCollectingOnGameThread,
but when using the legacy behavior IsGarbageCollectingAndLockingUObjectHashTables should have the same meaning as IsGarbageCollecting.

New default behavior:
Restrict the giant scope of locking FGCCSyncObject and FUObjectHashTables during CollectGarbageInternal to DissolveClusters, VerifyGCAssumptions, PerformReachabilityAnalysis, GatherUnreachableObjects, NotifyUnreachableObjects and ClearWeakReferences.
Remove the giant FGCCSyncObject lock completely during IncrementalPurgeGarbage (including UnhashUnreachableObjects and IncrementalDestroyGarbage).
Remove the giant FUObjectHashTables lock completely during IncrementalDestroyGarbage.
This means BeginDestroy, FinishDestroy, destructors and callbacks are all executed without the giant FGCCSyncObject and FUObjectHashTables locks and they are all relying on existing smaller thread safety locks for for accessing the global uboject array and global hash tables.

#jira UE-145217, UE-144461, FORT-369252
#rb francis.hurteau, danny.couture, robert.manuszewski, robert.millar
#rnx

#ROBOMERGE-OWNER: pj.kack
#ROBOMERGE-AUTHOR: pj.kack
#ROBOMERGE-SOURCE: CL 19898875 via CL 19899297 via CL 19899332 via CL 19899335
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19902015 by pj kack in ue5-main branch]
2022-04-25 10:13:44 -04:00
Matt Peters
6da6eb0ffc BulkDataRegistry: Add an ini setting for projects to suppress the warning about duplicate ids.
#rb Zousar.Shaker
#rnx
#preflight 62668f947e06ec75059dd40e

[CL 19900672 by Matt Peters in ue5-main branch]
2022-04-25 08:24:25 -04:00
CarlMagnus Nordin
63b8cbc9dd AsyncLoading2: Implemented loading of optional package segments
#rnx
#preflight 62627548ac29fcf6a213fe33
#rb francis.hurteau

[CL 19900368 by CarlMagnus Nordin in ue5-main branch]
2022-04-25 07:37:07 -04:00
Johan Torp
0e9b08816d AssetRegistry loading optimization, zero out less memory
Saves ~400ms from asset data gatherer during editor startup, which is not on current critical path, for an internal project. Probably saves bit of critical path time in runtime startup.
#preflight 62664b911a71643e8b8806e8

[CL 19899015 by Johan Torp in ue5-main branch]
2022-04-25 03:31:47 -04:00
keith yerex
b321f0b4ee Fix for race condition in Property Access PostLoad code.
#preflight 6262023aa2579b4c772bfc75

#ROBOMERGE-AUTHOR: keith.yerex
#ROBOMERGE-SOURCE: CL 19865362 via CL 19865432 via CL 19866497 via CL 19868767 via CL 19869044
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19874250 by keith yerex in ue5-main branch]
2022-04-22 17:41:19 -04:00
robert manuszewski
f83b07d02e Reverting unnecessary changes to GetImportPathName introduced in a previous check-in.
#preflight none
#rb trivial

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19862482 via CL 19866727 via CL 19866954
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19871390 by robert manuszewski in ue5-main branch]
2022-04-22 16:05:45 -04:00
robert manuszewski
9433f67575 Moving utility functions related to linker tables from FLinker to FLinkerTables to have access to these functions from the AssetRegistry code (required for ANY_PACKAGE removal)
#preflight 62624275d929bc34a314904f
#rb PJ.Kack, Francis.Hurteau, Johan.Torp

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19862123 via CL 19866075 via CL 19866162
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19871312 by robert manuszewski in ue5-main branch]
2022-04-22 16:03:25 -04:00
robert manuszewski
6eb66dac53 New StaticFind*Object(s) helper functions related to ANY_PACKAGE removal
#preflight 62622f90fa2fe71a2d1797ba
#rb Steve.Robb

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19861451 via CL 19865767 via CL 19865981
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19871301 by robert manuszewski in ue5-main branch]
2022-04-22 16:03:10 -04:00
robert manuszewski
6f607bdd0c Exposing FTopLevelAssetPath to Blueprints
#preflight 62622fd702627605e76deeaa
#rb Robert.Millar

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19861424 via CL 19865756 via CL 19865975
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19871291 by robert manuszewski in ue5-main branch]
2022-04-22 16:02:57 -04:00
carlmagnus nordin
860086a14a Disable fix from 19830106 while investigating why it doesn't work
#rnx
#rb trivial
#preflight skipped

#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 19848197 via CL 19850407 via CL 19861127 via CL 19861185
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19869796 by carlmagnus nordin in ue5-main branch]
2022-04-22 15:12:27 -04:00
nathan green
7f33cf7670 - Adding safety checks to FAsynPackage2::PostLoadInstances
#jira: FORT-456060
[REVIEW] [at]Josh.May, [at]Cory.Kolek, [at]Kevin.Hamilton, [at]Kris.Pelley, [at]robert.manuszewski

#ROBOMERGE-AUTHOR: nathan.green
#ROBOMERGE-SOURCE: CL 19840451 via CL 19840554 via CL 19848692 via CL 19860911 via CL 19861002
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19869673 by nathan green in ue5-main branch]
2022-04-22 15:07:32 -04:00
robert manuszewski
a6f498fc81 FTopLevelAssetPath to represent the path of an object whose direct outer is its containing package, e.g. /Path/To/Package.AssetName.
(edigrating CL 19759640 by Robert.Millar)

#rb robert.manuszewski
#preflight

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19847207 via CL 19860769 via CL 19860772
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19869626 by robert manuszewski in ue5-main branch]
2022-04-22 15:05:23 -04:00
paul chipchase
2bf295174e The package trailer can now be polled for the size of a payload on disk based on it's FIoHash
#rb Sebastian.Nordgren
#rnx
#preflight 62629097a2579b4c773d4d26

- Note that the size of disk we return is the payload's compressed size, which should probably be renamed in the package trailer to SizeOnDisk since we don't keep a record of it once the payload is virtualized (as we don't really know if a virtualization backend might change the compression of the payload while it is being stored etc)

[CL 19863102 by paul chipchase in ue5-main branch]
2022-04-22 08:06:06 -04:00
Matt Peters
41c7a0fc0b CoreRedirect duplicate struct redirect errors: CL 19809751 made duplicates unnecessary as the full-path redirects will now also apply to Object-Name-only redirect requests, and added an error for any duplicates. Error severity is not necessary; downgrade it to a warning.
Remove the now-unnecessary duplicates to remove the warning.
#jira UE-149739
#rb Francis.Hurteau
#rnx
#preflight 626186166119a1a496ac8c3d

[CL 19855349 by Matt Peters in ue5-main branch]
2022-04-21 16:32:53 -04:00
jamie dale
15668d1603 Avoid copying sparse class archetype state for ABPGC as they don't need it and there's a race condition
#rb Phillip.Kavan, Laurent.Delayen, Thomas.Sarkanen
#rnx

#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 19831984 via CL 19832417 via CL 19836865 via CL 19853316 via CL 19853704
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19855267 by jamie dale in ue5-main branch]
2022-04-21 16:28:54 -04:00
marc audy
006002155d Fix non-unity no-pch issues
#preflight 626180076119a1a496ab2bdf
#rnx

[CL 19852196 by marc audy in ue5-main branch]
2022-04-21 13:34:58 -04:00
Matt Peters
657ada7efa BulkDataRegistry: Fix code that can create duplicate BulkData identifiers. When loading a duplicate from an existing package, give a warning and update the BulkData during Serialize. Add resaveondemand=bulkdataduplicates argument in resave packages to resave these existing packages.
#rb Zousar.Shaker, Paul.Chipchase
#rnx
#preflight 62616e8f6119a1a496a8fe90

[CL 19850627 by Matt Peters in ue5-main branch]
2022-04-21 12:03:36 -04:00
Zousar Shaker
0ed5544d2f Added 2nd missing include.
#rb none,Trivial
#rnx
#preflight 6260dfc9e30cb43e8cd80ffa

[CL 19844577 by Zousar Shaker in ue5-main branch]
2022-04-21 01:04:59 -04:00
marc audy
30afcb3d6c EditorPackageLoader: Fixed issue with recursive imports of cooked packages when all three loaders are involved in loading a package.
#rnx
#preflight 625ffb80e30cb43e8cb448f4
#rb per.larsson

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 19830106 via CL 19833489 via CL 19843873 via CL 19843888
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19844167 by marc audy in ue5-main branch]
2022-04-20 23:27:42 -04:00
Marc Audy
aae8afb274 Fix error language
#rb Matt.Peters
#preflight
#rnx

[CL 19836053 by Marc Audy in ue5-main branch]
2022-04-20 15:18:34 -04:00
chris constantinescu
28111d40fc Redundancy cleanup in UBT Low Level Tests:
- test-specific targets and modules are constructed by RulesAssembly which removes a lot of spaghetti code
- no more excluding the Tests folder by default which is guaranteed to mislead users #fyi Jon.Nabozny
- test compilation in Tests is controlled through WITH_LOW_LEVEL_TESTS
- preparation code for switching tests between Catch2 / TestAutomation Fmwk

Nightly LLT PF 6260431391376845adeb4c40

#rnx
#preflight 62602d50dd47b4ad2173c30b

[CL 19834665 by chris constantinescu in ue5-main branch]
2022-04-20 14:24:59 -04:00
Francis Hurteau
d0bf8ff821 Do not selectively process async package when using the old async loading EDL
Do not pop when peeking flush requests, they are removed from the GT

#rb CarlMagnus.Nordin, PJ.Kack
#jira UE-148465
#preflight 625d71b848670f31a61e9e95

[CL 19832325 by Francis Hurteau in ue5-main branch]
2022-04-20 12:24:02 -04:00
Matt Peters
c54dcb349e CoreRedirects: Fix bug in CL 19809751 that blocked matching of enum value redirects by the full objectpath.
#preflight 625f1fea3e0f6f80adc50b36
#rb Francis.Hurteau
#rnx
#jira UE-149634

[CL 19817362 by Matt Peters in ue5-main branch]
2022-04-19 16:54:36 -04:00