Commit Graph

3367 Commits

Author SHA1 Message Date
PJ Kack
72ef632ce7 Use UE_ASSET_LOG in LinkerLoad
#jira UE-156124
#rb matt.peters,carlmagnus.nordin
#rnx
#preflight 62a9d9492a1103ff5fbd8c53

[CL 20682467 by PJ Kack in ue5-main branch]
2022-06-16 02:48:11 -04:00
PJ Kack
70f75f6648 AsyncLoading2: Make sure to call PostLoadInstances and CreateClusters before ClearConstructedObjects, because after ClearConstructedObjects unreferenced private objects in the package may be garbage collected.
Fix the underlying problem for the workaround in 19840451.

#jira FORT-456060
#rb carlmagnus.nordin
#robomerge EngineMerge
#rnx
#preflight 62a983aa3774a57fdc4f07f5

[CL 20666261 by PJ Kack in ue5-main branch]
2022-06-15 03:14:53 -04:00
matt peters
c5ada12c69 ANY_PACKAGE Warnings: In TryConvertShortTypeNameToPathName suppress the ensure if AmbiguousMessageVerbosity specifies logging at higher verbosity than error.
#rnx
#rb Marcus.Wassmer
[REVIEW] Robert.Manuszewski
#preflight 62a90beac1708af1ec2a3ac5

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 20661303 via CL 20661462 via CL 20661892
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20663284 by matt peters in ue5-main branch]
2022-06-14 21:21:19 -04:00
francis hurteau
dd8844f823 Fix root auto optional scope not being properly set during package harvest
#rb trivial
#jira UE-156070
#preflight skip

#ROBOMERGE-AUTHOR: francis.hurteau
#ROBOMERGE-SOURCE: CL 20654263 via CL 20655482 via CL 20655521 via CL 20655538
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20658504 by francis hurteau in ue5-main branch]
2022-06-14 17:30:54 -04:00
francis hurteau
c4ab31d1c9 Automatic sidecar generation of uncooked objects using an asset type allowlist
#rb CarlMagnus.Nordin, Matt.Peters
#jira UE-156070
#preflight 62a8a600a43e20b29346a5c6

#ROBOMERGE-OWNER: francis.hurteau
#ROBOMERGE-AUTHOR: francis.hurteau
#ROBOMERGE-SOURCE: CL 20652109 via CL 20653917 via CL 20654247 via CL 20654256
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20657591 by francis hurteau in ue5-main branch]
2022-06-14 16:53:07 -04:00
Catalin Dragoiu
24f5bb2f6c Improve tracking of the LoadTime value in CookProfiler
#rb Matt.Peters Francis.Hurteau
#preflight 62a8b512136e62bef1cec185

[CL 20653168 by Catalin Dragoiu in ue5-main branch]
2022-06-14 13:45:02 -04:00
steve robb
fd2a0b1e20 Removal of TEXT literal concatenations, which doesn't work in UTF-8 mode.
#rb devin.doucette
#jira UE-132142
#preflight 62a8748fa76c84377748036b

#ROBOMERGE-OWNER: steve.robb
#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 20647443 via CL 20648283 via CL 20648315
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20651786 by steve robb in ue5-main branch]
2022-06-14 12:46:34 -04:00
CarlMagnus Nordin
8188784a84 AsyncLoading2:
Merge loaded package store with global import store
Use global import store to keep track of pinned exports instead of relying on FindObjectWithOuter
#preflight 62a876325d0f5c5aab6d380c
#rb pj.kack

[CL 20645631 by CarlMagnus Nordin in ue5-main branch]
2022-06-14 08:09:17 -04:00
PJ Kack
b0bc254d82 AsyncLoading 1&2: Refactor initial load to remove zen loader dependency on script object blob in order to support editor loading.
NotifyRegistrationEvent:
Remove all NRP_Started events since they add no value.
Move the NRP_Finished event for type NRT_Class from InitializePrivateStaticClass (Class.cpp) to UObjectLoadAllCompiledInDefaultProperties (UObjectBase.cpp) since this is where the outer registration function for the class is actually executed.
Add a new NRT_NoExportObject event in ConstructUPackage for top level noexport objects like UScriptStruct, UDelegateFunction and USparseDelegateFunction that are just part of the package and has no registration info.

AsyncLoader:
Move EDLBootNotificationManager from AsyncPackageLoader to AsyncLoading.
Add FEarlyRegistrationEventsRecorder to replay early events that occur before the loader is created.

AsyncLoading:
Ignore the new NRT_NoExportObject event.
Allow for objects to skip the NRP_Added and NRP_Started phases.

AsyncLoading2:
Remove LazyInitializeFromLoadPackage and the reading and parsing of the ScriptObjects binary blob.
Remove FindScriptImportObjectFromIndex/GFindExistingScriptImport that was dependent on the ScriptObject blob, instead all script objects are added to the global import store directly from the notification system callbacks.
Change GetUnresolvedCDOs logic to check for imported classes with missing or not-yet-initialized CDOs.
Add FAsyncPackageDesc2::ReferencerRequestId to let each package track its most recent load package request referencer.
Change ProcessPendingCDOs logic to avoid recursive reentrancy and to process the most relevant CDOs first, based on the new ReferencerRequestId.

Tests:
Lyra: Editor, Runtime EDL and Zen loader on Win64 and Console
ShooterGame: Editor, Runtime EDL and Zen loader on Win64 and Console
AncientGame: Editor, Runtime EDL and Zen loader on Win64
Other: Editor, CookedEditor, Runtime EDL and Zen loader on Win64 (client and server)

#jira none
#rb carlmagnus.nordin
#robomerge EngineMerge
#rnx
#preflight 62a84ba7cf54a658eeffc200

[CL 20643384 by PJ Kack in ue5-main branch]
2022-06-14 05:37:32 -04:00
matt peters
be6d3ee341 ANY_PACKAGE Warnings: Turn off ambigious package warnings in addition to missing class warnings when loading old AssetData in DiffAssetRegistriesCommandlet.
Update DiffAssetRegistriesCommandlet to including searching for files specified by full path on any project.
#rnx
#rb Marcus.Wassmer
[REVIEW] Robert.Manuszewski
#preflight 62a79e0ef017fed6d24e607d

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 20635399 via CL 20635481 via CL 20635515
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20639081 by matt peters in ue5-main branch]
2022-06-13 20:38:58 -04:00
phillip kavan
20fc19da59 Ensure that editor-only subobjects are instanced on load for cooked packages when running on platform targets that include editor-only data.
Change summary:
- Modified UObject::PostLoadSubobjects() to allow subobject instancing on targets that do not require cooked data (i.e. targets that include editor-only data).
- Reverted 20563066 (temp fix that also needed to be backed out in order for editor-only subobject instancing paths to function properly).

#rb Dave.Belanger
[FYI] CarlMagnus.Nordin
#preflight 62a3a9fea76bc5b5cacf4a54

#ROBOMERGE-OWNER: phillip.kavan
#ROBOMERGE-AUTHOR: phillip.kavan
#ROBOMERGE-SOURCE: CL 20603539 via CL 20605001 via CL 20606273 via CL 20606326
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20606704 by phillip kavan in ue5-main branch]
2022-06-11 00:17:28 -04:00
Francis Hurteau
3212f8092b Improved ensure error message during package save when a name isn't mapped.
#rb trivial
#jira UE-156255
#fyi PJ.Kack
#preflight 62a3a51b1f0015be23078099

[CL 20601524 by Francis Hurteau in ue5-main branch]
2022-06-10 16:17:32 -04:00
Per Larsson
9dd47b0f5c Bulk Data - fix bug when PollCompletion returns true before the callback is triggered
#rb Paul.Chipchase
#preflight 62a2fc792e1cc34f11d2c02e

[CL 20593479 by Per Larsson in ue5-main branch]
2022-06-10 07:36:56 -04:00
Per Larsson
bd3422ad50 Bulk Data - correctly convert async file I/O priority to I/O dispatcher priority
#rb CarlMagnus.Nordin
#jira UE-156135
#prefligh t62a32338d708f949d6486971

[CL 20593192 by Per Larsson in ue5-main branch]
2022-06-10 06:58:03 -04:00
Steve Robb
3ba7d2f992 bool-to-integer property conversions added.
#rb marc.audy
#jira none
#preflight 629fee828803713041e21190

[CL 20585845 by Steve Robb in ue5-main branch]
2022-06-09 18:09:32 -04:00
robert manuszewski
f0b07af40a Fixing deprecation warnings about deprecated DEPRECATED_MACRO macro
#jira UE-156257
#rb trivial
#preflight none

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20582103 via CL 20582509
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20585507 by robert manuszewski in ue5-main branch]
2022-06-09 17:58:29 -04:00
robert manuszewski
686f9e5455 Changing CppStructOps registration code use struct path names instead of short names to allow identically named native structs to be registered
#rb Andrew.Scheidecker
#preflight 62a1c7beff06c1c98cc3701a

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20580224 via CL 20580249 via CL 20581193 via CL 20581751
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20585128 by robert manuszewski in ue5-main branch]
2022-06-09 17:24:44 -04:00
carlmagnus nordin
bcc92ae155 AsyncLoading2: Also store public export objects without the RF_WasLoaded in the import store when loading in the editor (BP compilation can clear this flag)
#preflight 62a1ab00ba2f7b30780f5640
#rb pj.kack

#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 20572851 via CL 20573416 via CL 20573422 via CL 20573436
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v954-20466795)

[CL 20573897 by carlmagnus nordin in ue5-main branch]
2022-06-09 07:37:41 -04:00
paul chipchase
337ff65efa Remove the validation option when loading payloads from sidecar files as we now validate all loaded payloads at a higher level.
#rb trivial
#rnx
#preflight 62a1cb1fcf774bcd46cac2de

[CL 20573562 by paul chipchase in ue5-main branch]
2022-06-09 06:50:55 -04:00
jamie dale
b2528f4e3e Fixed UObject::GetPreloadDependencies not gathering from C++ classes
CLASS_Intrinsic is apparently set on all C++ classes, even those parsed by UHT, despite what its comment suggests...

#preflight 62a0d126e07732d52dda2b26
#rb Francis.Hurteau

#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 20561371 via CL 20561394 via CL 20561435 via CL 20563305 via CL 20563476
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v954-20466795)

[CL 20567251 by jamie dale in ue5-main branch]
2022-06-08 19:04:57 -04:00
dave jones2
bcadd23489 UE-151338 - Implement refactored implicit conversion for math types.
Removed container and struct conversions from the script VM. This introduced complexity that the VM doesn't need, nor did it scale for the various struct types that we want to implicitly convert in Blueprints. Instead, the script VM is *only* aware of float<->double conversion. Container and struct conversions have now been moved to BlueprintTypeConversions. Currently, only the existing FVector3f<->FVector3d conversion has been added, but the remaining LWC types will be added in a subsequent change.

During Blueprint compilation of container and struct conversions, we now inject a function call into the bytecode that performs the conversion, which is better suited to the task instead of burdening the VM with the work. One drawback to this technique is that containers are slightly more inefficient when it comes to conversions. They won't know their type(s) ahead of time, which requires dynamically looking up a conversion function at runtime. We can possibly optimize this further, but the generaly recommendation is to avoid implicit conversions of container types when possible.

Additionally, a couple of convenience functions were added to the KismetCastingUtils to help remove a fair amount of boilerplate code that was used for implicit casting in various node types. ScriptCastingUtils.h was also removed since the VM no longer needs to concern itself with complex conversions.

#jira UE-151338
#preflight 629a507fb42820769428c133
#rb phillip.kavan

[CL 20560449 by dave jones2 in ue5-main branch]
2022-06-08 13:50:57 -04:00
paul chipchase
d802d4d4b2 EditorBulkdata now longer stores a EPackageSegment member since it is always set to EPackageSegment::Header
#rb Per.Larsson
#rnx
#preflight 629f530958032863438a0b30

- Storing the segment type as a member made the code would imply to the reader that it could be changed, even though in all paths it was being set to  EPackageSegment::Header. Removing the member and just hard coding the segment use should make the code easier to follow.
- Editor bulkdata always stores it's payload in the package trailer, which for now counts as the package header.
- The only deviation for this is the experimental feature that allows us to store the payloads in a sidecar file. This code path is not currently supported, but has been updated to use hardcoded EPackageSegment::PayloadSidecar.
- Given that PackageSegment was always set to EPackageSegment::Header we can easily remove any assert of if statement checking for that.

[CL 20553326 by paul chipchase in ue5-main branch]
2022-06-08 04:15:48 -04:00
Steve Robb
d6dcf39384 C++20 fixes to FOpenPackageResult and FOpenAsyncPackageResult and braced-init.
#jira none
#rb matt.peters
#preflight 629ff4fb5e683df722b6b5dd

[CL 20549296 by Steve Robb in ue5-main branch]
2022-06-07 21:33:05 -04:00
robert manuszewski
b1bb8086b1 Downgrading an assert to an ensure when initializing FTopLevelAssetPath with a short asset (class) name
#preflight none
#rb trivial

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20540036 via CL 20540065 via CL 20540104 via CL 20540150 via CL 20540194
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v954-20466795)

[CL 20542579 by robert manuszewski in ue5-main branch]
2022-06-07 14:46:45 -04:00
robert manuszewski
fd9524e6fd Turning off logging when failing to convert short type names when running diff asset registries commandlet (second attempt)
#rb trivial
#preflight 62977312b5519e984b3c04b3

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20539070 via CL 20539111 via CL 20539150 via CL 20539403 via CL 20539407
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v954-20466795)

[CL 20541321 by robert manuszewski in ue5-main branch]
2022-06-07 13:40:07 -04:00