Commit Graph

3534 Commits

Author SHA1 Message Date
phillip kavan
d5e1d97c0d Defer Blueprint CDO export creation on load so that placeholder dependencies can be resolved prior to invoking the native base class ctor.
Notes:
- This change is needed to supplement the feature that allows users to set a subobject override class from the Blueprint editor; i.e. overriding a component class with a non-native Blueprint component class will otherwise fail on reload.

Change summary:
- Modified FLinkerLoad::CreateExport() to move the deferred CDO serialization check to occur prior to CDO construction (part of the linker's circular dependency mitigation code path). This means we now defer its construction in addition to its serialization.
- FLinkerLoad::CreateExport() will continue to bypass class regeneration post-construction when Blueprint finalization is still pending. This is because CDO construction, while now deferred until finalization, still goes through CreateExport() for consistency.
- Modified FLinkerLoad::ResolveDeferredExports() to handle the deferred construction of the CDO during Blueprint finalization, prior to its deferred serialization.
- Modified UClass::Serialize() to bypass the NULL check for failed CDO serialization when deferred dependency loading is active and Blueprint finalization is still pending.

#jira UE-147639
#rb Marc.Audy, Dan.OConnor, Robert.Manuszewski
#preflight 63113f9e942c45ff454f8ef1

[CL 21923865 by phillip kavan in ue5-main branch]
2022-09-09 13:21:26 -04:00
Devin Doucette
0ce0756966 DerivedData: Added a way to request compressed data from derived data references
- FDerivedDataIoBatch::Compress requests the entire compressed value.
- FDerivedDataIoResponse::GetCompressedData gets the compressed buffer from the response when available.
- FDerivedDataIoResponse::GetCacheValueId has been added to get the FValueId when available.
- FDerivedDataIoResponse::GetCacheKey has been fixed to return a non-null cache key when appropriate.
- Asserts about FDerivedData now log the derived data reference too.

#preflight 631a5f6fa60c539c98ab5fa9
#rb Zousar.Shaker

[CL 21920523 by Devin Doucette in ue5-main branch]
2022-09-09 10:36:44 -04:00
carlmagnus nordin
da495608f8 ZenLoader: Fixed recently introdced atomic ordering problem
#rb pj.kack
#preflight 631b0aaeec45fbf3d7688182

[CL 21918456 by carlmagnus nordin in ue5-main branch]
2022-09-09 07:36:02 -04:00
bryan sefcik
07894f4a07 Removed redundant private include paths from build.cs files.
Fixed include paths to be relative to the private or public folders.
Hid or removed includes that reached into other private module folders.
Updated PublicInclude paths when necessary.

#jira
#preflight 631a717cec45fbf3d74d4ba7

[CL 21916033 by bryan sefcik in ue5-main branch]
2022-09-09 00:53:22 -04:00
tim smith
c9e823cc53 Allow methods that can only be invoked from a constructor be available when fetching vtable address for HotReload and Live Coding.
#rb trivial
#jira UE-162734
#preflight 631a0b5ed31788ea3a46d912

[CL 21908217 by tim smith in ue5-main branch]
2022-09-08 20:10:07 -04:00
paul chipchase
8d77e84166 Refactor the VA pushing API so that we only need to implement a single path
#rb Per.Larsson
#jira UE-163103
#rnx
#preflight 6318989c2b7fe03eb664e9f0

### VirtualizationSystem/VirtualizationManager
- Added an overload of ::Push taking just one FPUshRequest so that people don't have to keep adding MakeArrayView boiler plate when pushing a single request
- Change the order of the last two parameters for the raw ::Push call as this will group all of the payload specific parameters together and leave the target storage type at the end. It is unlikely that anyone is calling the older version but it has been deprecated for safety.

### IVirtualizationBackend
- The none FPushRequest overload of ::PushData is no longer virtual, it just converts the parameters to FPushRequest and calls that overload instead. In this way we now only have one pushing code path in our backends. We could probably look into removing this overload at this point (since the higher level IVirtualizationSystem will now convert all push requests into a FPushRequest form) but it is not considered worth it at the moment when the simple overload covers our needs.
- Removed EPushResult in favour of just returning true/false for the overall operation.If the caller needs a more detailed breakdown then they will have to use an overload that takes an FPushRequest over raw parameters.
-- At the moment FPushRequest does not contain a full breakdown of what happened, so with this submit we are effectively losing the ability to find out if the payload was already in the backends or not, however the batch version of push was already not returning this info so it is not a big loss. Fixing FPushRequest to return a better break down of what happened will be done in UE-160942
- Removed the none batch Push paths from the source control and ddc backends as they already supported batch pushing.
- File backend needed to be converted to supporting batch pushing, which is pretty much the same code as before except we need to iterate over the container of FPushRequests.
-- The backend does not early out on error as it tends to be quite fast. We might want to consider an official policy for the VA system, if we should early out of errors or not.

[CL 21907558 by paul chipchase in ue5-main branch]
2022-09-08 19:35:36 -04:00
nate strohmyer
5755e91904 Removing unacceptable words in Runtime/CoreUObject
#Jira UE-163059
#rb Marc.Audy
#preflight 6317c1452b7fe03eb650b501

[CL 21892698 by nate strohmyer in ue5-main branch]
2022-09-08 09:16:58 -04:00
Robert Millar
4dae61dfb7 Remove ensure from FSoftObjectPath::SetPath.
#jira UE-163087, FORT-512708, UE-163155, UE-163097
#rb none
#preflight 631900132b7fe03eb6784c28

[CL 21862060 by Robert Millar in ue5-main branch]
2022-09-07 16:53:44 -04:00
joe pribele
75d3f2ea27 [CoreUObject] change to Blueprint loading to only resolve imports that are needed. prevents loading of unnecessary data
#rb ben.zeigler zousar.shaker
#preflight 6318dce5d135b61bc5c117bf

[CL 21857208 by joe pribele in ue5-main branch]
2022-09-07 14:16:26 -04:00
nick darnell
1177e0c661 Core - LazyLoad.PrintUnresolvedObjects, now with 100% fewer warnings about FName sorting.
[CL 21827291 by nick darnell in ue5-main branch]
2022-09-06 15:42:27 -04:00
nick darnell
53643412ca Core - Adding a new console command "LazyLoad.PrintUnresolvedObjects", Prints a list of all unresolved objects from the object handle index. This is a great way to examine all the things that *should be loaded* that were avoided being loaded by the lazy loading system.
[FYI] [at]Zousar.Shaker, [at]Joe.Pribele

[CL 21827273 by nick darnell in ue5-main branch]
2022-09-06 15:41:43 -04:00
joe pribele
3cdbbb2797 [CoreUObject] fix for PrintScriptCallstack not printing callstack to the immediate window
logging buffers any call not from the logging thread, added a call to Flush() to force the logger write.

added to improve efficiency in building a stacktrace

FFrame::GetStackDescription(FStringBuilderBase& StringBuilder)
FFrame::GetStackTrace(FStringBuilderBase& StringBuilder)
FFrame::GetScriptCallstack(FStringBuilderBase& StringBuilder, bool bReturnEmpty = false, bool bTopOfStackOnly = false)
UObjectBaseUtility::GetFullName(FStringBuilderBase& ResultString, const UObject* StopOuter = NULL, EObjectFullNameFlags Flags = EObjectFullNameFlags::None) const

#jira UE-161358
#rb zousar.shaker devin.doucette
#preflight 63178f86304480f8f8e1c961

[CL 21826435 by joe pribele in ue5-main branch]
2022-09-06 15:08:01 -04:00
Robert Millar
6a3da51ffd Removing FNames containing asset paths (/Path/To/Package.AssetName) or subobject paths (/Path/To/Package.AssetName:Inner).
These FNames can take 30mb+ of memory in a large project.
Refactor FSoftObjectPath to store a FTopLevelAssetPath instead of an FName for the top level asset part.
Refactor FAssetData to infer the object path from the PackageName and AssetName fields and an editor-only field called OptionalOuterPath for external actors which are non-top-level assets.
Refactor FAssetBundleData to only store top level asset references.
Increase EUnrealEngineObjectUE5Version for FSoftObjectPath invalidation.
Increase FAssetRegistryVersion to invalidate serialization of FAssetData and FAssetBundleData - asset registry serialization does not see EUnrealEngineObjectUE5Version.
Replace TMap in Asset Registry with TSet to avoid duplicating the key fields.
Remove object path FName fields from native blueprint make/break functions for FARFilter - those pins will be orphaned.
Refactor redirect collector to use soft object paths rather than FNames.

UE_DEPRECATED markers have been commented out in this change to allow separate submission of deprecation fixups across the engine.

#jira UE-161932
#rb matt.peters,francis.hurteau,ben.zeigler
#lockdown marc.audy
#preflight

[CL 21826272 by Robert Millar in ue5-main branch]
2022-09-06 15:02:43 -04:00
andy sonnenburg
6c474af8f6 Public change split off from internal change.
#rb andrew.scheidecker
#rb robert.manuszewski
#rb phil.pizlo


#preflight 63138222e11efde08fc159a9

[CL 21826267 by andy sonnenburg in ue5-main branch]
2022-09-06 15:02:33 -04:00
carlmagnus nordin
b19634db1d ZenLoader: Removed incorrect check
[CL 21810130 by carlmagnus nordin in ue5-main branch]
2022-09-06 05:37:18 -04:00
carlmagnus nordin
5f42747bea Compile fix to match modified API
[CL 21790089 by carlmagnus nordin in ue5-main branch]
2022-09-05 04:36:35 -04:00
carlmagnus nordin
e582c065d7 ZenLoader: Initial support for loading packages in the editor
#rb pj.kack
#preflight 6310b0d1ea685939704bded6, 6311a3fa7778595cd69d7f6b
#jira UE-162812

[CL 21790081 by carlmagnus nordin in ue5-main branch]
2022-09-05 04:36:25 -04:00
Per Larsson
2f11775439 Bulk Data - fix bug when merging I/O batch read request(s)
- This change fixes an issue when batching bulk data I/O requests where the bulk data is layed out contiguous in the chunk/file. Internally
the max read size was previously capped to the size of the bulk data but when merging read requests we read past the first bulk data
instance, i.e. from first to last. This is safe as long as the range is stored contiguously in the same chunk/file.

#rb Paul.Chipchase
#jira UE-162910
#preflight 6314d66ba20b67673bca3713

[CL 21788475 by Per Larsson in ue5-main branch]
2022-09-05 02:56:20 -04:00
carlmagnus nordin
98ad51633e ZenLoader: When sync loading a package only execute nodes required for that package to finish loading (resubmit after fix)
#rb pj.kack
#preflight 63131ab3e11efde08fbe1510
#jira UE-162812

[CL 21788177 by carlmagnus nordin in ue5-main branch]
2022-09-05 02:34:01 -04:00
bob tellez
ab72d85eb2 [Backout] - CL21736945. Probable cause of crash in autotest
[FYI] CarlMagnus.Nordin
Original CL Desc
-----------------------------------------------------------------
ZenLoader: When sync loading a package only execute nodes required for that package to finish loading
#rb pj.kack
#preflight 630f9f4498103d4521d4adc3

[CL 21767699 by bob tellez in ue5-main branch]
2022-09-02 17:09:35 -04:00
Tim Smith
38402319bf Fixed minor issue with LiveCoding/HotReload where the first character of the old class name would be removed.
#rb self
#preflight 63120963f51ef182ab741e45

[CL 21758413 by Tim Smith in ue5-main branch]
2022-09-02 10:01:50 -04:00
carlmagnus nordin
6b11785d55 ZenLoader: When sync loading a package only execute nodes required for that package to finish loading
#rb pj.kack
#preflight 630f9f4498103d4521d4adc3

[CL 21737098 by carlmagnus nordin in ue5-main branch]
2022-09-01 03:59:17 -04:00
henrik karlsson
f0d634a556 [Runtime Core]
* AsyncLoading - Fixed out-of-bounds bug where QueuedPackages[0] was accessed when array was empty

Fixes a incremental editor test

#rb Francis.Hurteau
#preflight skipped

[CL 21716490 by henrik karlsson in ue5-main branch]
2022-08-30 23:04:47 -04:00
henrik karlsson
13a3a8291d [Engine runtime]
* Fixed formatting of text inside scoped io activity

#preflight none
#rb trivial

[CL 21716470 by henrik karlsson in ue5-main branch]
2022-08-30 23:04:20 -04:00
pj kack
2162f301c3 AsyncLoading2: Lower the new NotifyRegistrationEvent ensure (added in 21696962) to a log message
#rb carlmagnus.nordin
#rnx

[CL 21716434 by pj kack in ue5-main branch]
2022-08-30 23:03:25 -04:00