Commit Graph

161 Commits

Author SHA1 Message Date
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
justin hare
9db3cf866c Repair-style fix for issue where deferred dependency class placeholders could remain in blueprints after loading. This is seen in an example project with complicated circular dependencies intertwining many assets.
#rb phillip.kavan
#jira UE-112428

#ROBOMERGE-SOURCE: CL 16660126 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v834-16658389)

[CL 16660138 by justin hare in ue5-release-engine-test branch]
2021-06-14 12:55:57 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
Zousar Shaker
bdee27c124 Systematic changes needed for SoundCue and SoundWave to successfully lazy load in editor in most circumstances when using the -LazyLoadImports commandline switch.
Changes control of the feature to uniformly require the -LazyLoadImports commandline switch.
Ensures that serialization of ObjectPtr fields for blueprints doesn't differ between raw pointer (Object) fields.  INSTANCES of these types were already serialized identically (wrote out the same type identifier in tagged property serialization), but the serialized type descriptors (used by blueprints) write out the FFieldClass::GetName, and that differed between FObjectProperty and FObjectPtrProperty, and this change addresses that discrepancy.
Allow ObjectPtr fields to be instantiated in place of Object fields in script/blueprint in editor builds while ensuring that they are serialization compatible and considered equal types.

#rb francis.hurteau
#rb marc.audy
#fyi devin.doucette
#fyi robert.manuszewski
#preflight 605cbf325e87c40001b74f5b

[CL 15827275 by Zousar Shaker in ue5-main branch]
2021-03-25 13:53:42 -04:00
Dave Belanger
cd95a938f5 Ensure that the class source object is marked standalone so it doesn't get GC'd in the editor. This is needed for a BPGC asset in a cooked package.
#rb Phillip.Kavan
#jira none

[CL 15644776 by Dave Belanger in ue5-main branch]
2021-03-08 15:52:23 -04:00
Zousar Shaker
c85c06f057 Revision 2 (with handling for uninitialized object references):
-Compile in lazy resolve functionality for editor binaries
-Add "-LazyResolveAllImports" commandline switch to allow lazy RESOLVE of all wrapped object references
  -Functionality confirmed: load default map in ShooterGame Editor, cook ShooterGame, load LumenReflectiveTest in FortGPUTestbed, load default map and P_Construct in Frosty
-Renamed "-DisableLoadingAllImports" to "-LazyLoadAllImports" commandline switch to allow lazy LOAD of all wrapped object references and ensured it works with AsyncLoading code path
  -Non functional when combined with lazy resolve - will be worked on afterwards
-Added CPU timing scopes to measure performance impact of lazy resolve

Fixed lazy resolve bugs:
-Ensure null check on an unresolved object reference resolves the object reference (a non-null unresolved reference can become a null resolved reference)
-Ensure hash of an unresolved object reference resolves the object reference and hashes the resultant address (otherwise we can't reliably ensure hash consistency in the face of object redirection or stale references)
-Avoid using package name hash internally as it immediately manifested in hash collisions on a moderately sized project
-Ensure StaticFindObjectFastInternal instead of StaticFindObjectFast to ensure we can find/resolve not fully loaded objects
-Ensure UObjectRedirectors are handled when resolving wrapped object pointers
-Ensure we handle the possibility that a package has been partially loaded and we may not find our target object within it because the object hasn't been created yet

Automated testing:
-Adding hash consistency and redirector resolve tests to ObjectPtr unit tests

#rb devin.doucette

[CL 15571874 by Zousar Shaker in ue5-main branch]
2021-03-02 14:39:53 -04:00
Zousar Shaker
0c60eda086 Editgrate-undo //UE5/Main/Engine/Source/Runtime/CoreUObject/... changelist 15514386 as it is suspected in a Frosty issue.
[CL 15524151 by Zousar Shaker in ue5-main branch]
2021-02-24 20:09:58 -04:00
Zousar Shaker
3470e2f356 -Compile in lazy resolve functionality for editor binaries
-Add "-LazyResolveAllImports" commandline switch to allow lazy RESOLVE of all wrapped object references
  -Functionality confirmed: load default map in ShooterGame Editor, cook ShooterGame, load LumenReflectiveTest in FortGPUTestbed, load default map and P_Construct in Frosty
-Renamed "-DisableLoadingAllImports" to "-LazyLoadAllImports" commandline switch to allow lazy LOAD of all wrapped object references and ensured it works with AsyncLoading code path
  -Non functional when combined with lazy resolve - will be worked on afterwards
-Added CPU timing scopes to measure performance impact of lazy resolve

Fixed lazy resolve bugs:
-Ensure null check on an unresolved object reference resolves the object reference (a non-null unresolved reference can become a null resolved reference)
-Ensure hash of an unresolved object reference resolves the object reference and hashes the resultant address (otherwise we can't reliably ensure hash consistency in the face of object redirection or stale references)
-Avoid using package name hash internally as it immediately manifested in hash collisions on a moderately sized project
-Ensure StaticFindObjectFastInternal instead of StaticFindObjectFast to ensure we can find/resolve not fully loaded objects
-Ensure UObjectRedirectors are handled when resolving wrapped object pointers
-Ensure we handle the possibility that a package has been partially loaded and we may not find our target object within it because the object hasn't been created yet

Automated testing:
-Adding hash consistency and redirector resolve tests to ObjectPtr unit tests

#rb devin.doucette

[CL 15514386 by Zousar Shaker in ue5-main branch]
2021-02-24 11:26:58 -04:00
Marc Audy
bf80889353 UE5/Release-Engine-Staging to UE5/Main
This represents UE4/Main up to CL# 14958402

[CL 15028197 by Marc Audy in ue5-main branch]
2021-01-08 19:56:07 -04:00
Phillip Kavan
23222d8321 Revert 14886445/14888213 to unblock projects from a new regression while I continue to investigate/resolve.
Note: This keeps the fix for incorrect nested DefaultSceneRoot ICH override template names in place, since that was a separate issue.

#rnx
#rb None
#jira UE-87133, UESP-4238
#fyi Jon.Nabozny

[CL 14897958 by Phillip Kavan in ue5-main branch]
2020-12-10 11:04:34 -04:00
Phillip Kavan
f4d2457f1a Fix outstanding issues with ICH override template object archetype lookups during serialization of child Blueprint class assets.
Change summary:
- Reordered FComponentOverrideRecord struct fields so that the key is serialized before the template object. Archetype lookups on the template object are now dependent on the key being valid as we now route these through the record table.
- ICH override template object serialization is now deferred in non-EDL builds (i.e. editor) as part of loading the Blueprint class asset. This ensures that the ICH override record key is valid in older assets before we let the linker instance the export object for the ICH override template object on load; per the above, this depends on a successful archetype lookup for its instantiation.
- Modified the signature of UClass::FindArchetype() to include an additional ObjectFlags input argument.
- Revised GetArchetypeFromRequiredInfoImpl() to now route ICH override template object archetype lookups through the owning class in place of the "old way" of doing a brute force subobject search through the outer class chain, which would sometimes fail and fall back to incorrectly return the archetype class's default object, resulting in data loss issues on load.
- Revised UBlueprintGeneratedClass::FindArchetype() to route ICH override template object archetype lookups through the parent class hierarchy, using the ICH override record's key to retrieve the original template as the basis for finding a match. This ensures that lookups won't fail due to things like SCS variable name changes in the base class and also that we now can properly handle archetype lookups for ICH records that override an inherited default scene root.

#jira UE-87133
#rb Marc.Audy

[CL 14886445 by Phillip Kavan in ue5-main branch]
2020-12-09 02:11:53 -04:00
Matt Peters
aae0fe62eb PackageResourceManager and PackagePaths
Create a new interface IPackageResourceManager that handles all attempts to load packages from storage. The default implementation passes through to loading from IFileManager. Future implementations will load from other services such as the EditorDomain and TargetDomain.
Add FPackagePath class that holds a LocalFilePath or LongPackageName, or a relative path to a package under a mounted content root (which can be converted into either the LocalFilePath or LongPackageName).
Modify LinkerLoad, BulkData, and AsyncLoader to use FPackagePath and IResourceManager.
Modify UPackage and FLinkerLoad to have a FPackagePath instead of a Filename.
#rb Paul.Chipchase, CarlMagnus.Nordin, Francis.Hurteau, Devin.Doucette
#rn Major Core

[CL 14814912 by Matt Peters in ue5-main branch]
2020-11-25 22:11:10 -04:00
Zousar Shaker
77d13185b7 Copying //UE5/Dev-Cooker@14539516 to Main (//UE5/Main)
[CL 14539954 by Zousar Shaker in ue5-main branch]
2020-10-21 17:56:05 -04:00
Marc Audy
7379fa99c5 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14229157
[CL 14233282 by Marc Audy in ue5-main branch]
2020-09-01 14:07:48 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
bob tellez
6a6f315379 Reintroduce 12676447 from FNMain, which now has a fix for a bug in the change where the packagename and classname where reversed in a call to FindImportClass
[FYI] Dan.Oconnor,Robert.Manuszewski

#ROBOMERGE-SOURCE: CL 12687021 via CL 12687035 via CL 12687039 via CL 12687044 via CL 12687050 via CL 12687054
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)

[CL 12687066 by bob tellez in Main branch]
2020-04-09 01:45:02 -04:00
dan oconnor
9e8f56b54a Undo changelist 12686346
#rb none
#rnx
#jira

#ROBOMERGE-SOURCE: CL 12686476 via CL 12686478 via CL 12686480 via CL 12686482 via CL 12686483 via CL 12686484
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)

[CL 12686486 by dan oconnor in Main branch]
2020-04-09 01:01:00 -04:00
bob tellez
9c03d8dc80 Submitted on behalf of Robert.Manuzsewski
#UE4 Fix load errors not being supressed for subclasses of BlueprintGeneratedClass


#ROBOMERGE-AUTHOR: Robert.Manuzsewski
#ROBOMERGE-SOURCE: CL 12676447 via CL 12676451 via CL 12676453
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)

[CL 12676455 by bob tellez in Main branch]
2020-04-08 14:53:24 -04:00
ryan vance
02bb20415f Copy up from DS to Main
#rb CopyUp



#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: ryan.vance
#ROBOMERGE-SOURCE: CL 12149088 via CL 12150247
#ROBOMERGE-BOT: (v659-12123632)

[CL 12150618 by ryan vance in Main branch]
2020-03-12 14:08:52 -04:00
ben zeigler
6c4adc71b3 Clear NeedPostLoadSubobjects in all the places that blueprint compilation clears NeedPostLoad
This prevents non-component subobjects that were trashed during compilation from sticking around forever with a bad AsyncLoading flag, causing corruption or crashes
Some of these fixes aren't currently needed because CDOs are hacked to never have NeedPostLoadSubobjects set on them, but this is safer in case we change that later

#jira UE-88129
#rb dan.oconnor

#ROBOMERGE-SOURCE: CL 12010702 in //UE4/Release-4.25/... via CL 12010728
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v656-11643781)

[CL 12010754 by ben zeigler in Main branch]
2020-03-06 14:23:55 -05:00
phillip kavan
cc33399069 Fix Find-in-Blueprint search thread deadlock caused by improper handling of unloaded LevelScript Blueprint assets.
#rnx
#jira UE-88780
#rb Ben.Hoffman


#ROBOMERGE-SOURCE: CL 11577288 via CL 11577289
#ROBOMERGE-BOT: (v654-11333218)
#robomerge[RELEASE] 4.25

[CL 11577291 by phillip kavan in Main branch]
2020-02-21 13:45:10 -05:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00
Robert Manuszewski
7b6f840f7f Copying //UE4/Dev-Core @ 10708550 to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 10708666 by Robert Manuszewski in Main branch]
2019-12-13 11:07:03 -05:00