Commit Graph

4155 Commits

Author SHA1 Message Date
JeanFrancois Dube
f0a7eba632 Fix constructing a FSoftObjectPath from a FObjectPtr.
The original code was trying to build the path to the object without resolving it, but that seems impossible with redirectors, etc.

#rb zousar.shaker
#fyi semion.piskarev, ben.zeigler
#preflight 62acb7695d5264997e21fbfc
#rnx

[CL 20706268 by JeanFrancois Dube in ue5-main branch]
2022-06-17 13:41:41 -04:00
carlmagnus nordin
bc0b9cf56d IoStore: Add support for staging and loading auto optional packages
#preflight 62a879e8d502a5543671efa4
#rb francis.hurteau

#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 20699731 via CL 20699906 via CL 20699913 via CL 20699917
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v968-20684695)

[CL 20700279 by carlmagnus nordin in ue5-main branch]
2022-06-17 04:25:23 -04:00
paul chipchase
0f1a2be6ba Update FPackageTrailerBuilder to take and store an FString as context for error messages rather than a FName that is assumed to be the package name.
#rb Per.Larsson
#rnx
#preflight 62ab39985c69124c4082aad6

- Ideally the VA tool would not need to deal with this like package mount points (the less project/plugin set up, the faster the tool can run) so we want to move back towards using file paths rather than FPackageNames to reference things where possible. Since virtualization does not need to do anything with the package data itself we can somewhat ignore a lot of Unreal conventions and treat the package files as just files that happen to have a package trailer on the end.
- The package builder was previously storing the name of it's package via an FName and converting it to a string when we needed to print a message. Now we store a generic FString of 'debug context' instead which  can be anything.
- Although it is unlikely that anyone is using the FName overloads externally we need to deprecate them rather than just delete them.

#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 20699797 via CL 20699804 via CL 20699806
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v968-20684695)

[CL 20699936 by paul chipchase in ue5-main branch]
2022-06-17 03:18:27 -04:00
evgenii babinets
f3b5e678af Adding an optional (default disabled) CSV stat for tracking total UObject count.
#rb ben.woodhouse

#ROBOMERGE-AUTHOR: evgenii.babinets
#ROBOMERGE-SOURCE: CL 20697269 via CL 20697284 via CL 20697295
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v968-20684695)

[CL 20697993 by evgenii babinets in ue5-main branch]
2022-06-16 20:04:06 -04:00
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
nate strohmyer
de8cfbc19d Fix to allow users to coerce a BlueprintImplementableEvent with no return value to treat the override as a function rather than an event
#jira UE-153344
#rb phillip.kavan
#preflight 62a8e2800c386ccae4861791
#3078

[CL 20658293 by nate strohmyer in ue5-main branch]
2022-06-14 17:22:51 -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
dave jones2
a9e4598363 UE-151338 - Implement refactored implicit conversion for math types.
Adds support for most of the remaining LWC math types (eg: FVector4). Note that FVector2D and FBox2D are currently disabled. Their corresponding double variants have FName collisions with the primary variant names, which needs to be addressed separately.

Some cleanup was also added that reroutes all conversion through a common function, ConvertType. This alleviates the need for separate conversion functions for each type.

#jira UE-151338
#rb andrew.davidson
#preflight 62a3b355f87ec0b3c8a26cf5

[CL 20652370 by dave jones2 in ue5-main branch]
2022-06-14 13:07:48 -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
Zousar Shaker
4d894be5dd Make FObjectPtr/TObjectPtr default initialize to nullptr. Also added an ENoInit constructor if a caller wants them to be uninitialized.
#rb devin.doucette
#robomerge EngineMerge
#preflight 62a77c9ed068a796cb6d790a

[CL 20631308 by Zousar Shaker in ue5-main branch]
2022-06-13 14:26:05 -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
Steve Robb
b67083a0bd Fix for aggregates being initialized with braced syntax but are no longer aggregates in C++20.
#rb devin.doucette
#jira none
#preflight 62a29b93ff22b2aef9d2d146

[CL 20602862 by Steve Robb in ue5-main branch]
2022-06-10 17:21:34 -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
paul chipchase
64e2c2eb9a Trivial casting fix for DynamicallyTypedValue
#rb Andrew.Scheidecker
#rnx
#preflight 62a2e55a6c6cbbd8ca78eb21

- MinAlignmentLogTwo is being stored as uint8 and the only place in code passing in that parameter does so as a uint8 so we can just change the parameter data type to match.

[CL 20590701 by paul chipchase in ue5-main branch]
2022-06-10 02:51:18 -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