#rb Paul.Chipchase, PJ.Kack, CarlMagnus.Nordin
#jira none
#preflight 629085d14f63120d8e170977
###
This change attempts to merge the editor and the runtime version of bulk data, i.e. bulk data one and two.
The major difference between the two is the fact that the editor version supported element vice
serialization via inheritance. This has been complelety removed in the runtime version. In order
to mitigate this divergance a non-virtual base class has been extracted that forms the base
for the untyped and typed versions of bulk data.
The untyped version is only used in editor and will be deprecated. However this is a breaking change,
previously it was possible to inherit from FByteBulkData in editor builds.
Other differences between the two includes:
* IsBulkDataLoaded - returns true for bulk data 1 if an allocation has been made even if the size is zero
* StartStreaming - was removed in bulk data 2 and has been removed
* FlushAsyncLoading - bulk data 2 was busy waiting, now an event is used
All I/O related functionality has been extracted into BulkDataStreaming.cpp and is using
a FBulkDataChunkId that is either a package path or a package ID.This could potentially
be extended to contain a cache key in development builds to support loading from DDC, i.e derived
data references.
[CL 20391050 by Per Larsson in ue5-main branch]
This is necessary because as of CL 20151503, the cooker can commit the same package multiple times if the first save failed due to a timeout.
#fyi CarlMagnus.Nordin
#rnx
#rb Per.Larsson
#preflight 62853ba90f0d5076dee74ced
[CL 20265738 by Matt Peters in ue5-main branch]
#rb ben.ingram
#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 20115901 via CL 20115948 via CL 20115961 via CL 20115990
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20117747 by robert millar in ue5-main branch]
Added FPooledLargeMemoryData that allows lockless access to temporary memory blocks.
#tests Squads games on WSL, using FramePro to validate performance gains
#rb danny.couture,jamie.dale
#ROBOMERGE-AUTHOR: ilya.loshchinin
#ROBOMERGE-SOURCE: CL 19970339 via CL 19971380 via CL 19972286
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 19974304 by ilya loshchinin in ue5-main branch]
LoadDisplayNames() 1.06s -> 0.24s when async loading the name batch in CachedAssetRegistry.bin during editor startup of an internal project
* Introduce FDisplayNameEntryId to avoid cache misses in FName::GetComparisonIdFromDisplayId() lookups
* Force name batch serialization to use display entry ids to help enforce cooking determinism
* Fix determinism problem when loading then saving via FPackageStoreNameMapBuilder
* Inline FNameEntryId::FromUnstableInt()
* Remove slow IsNumbered() check in CreateFromDisplayId when not using 4B FName
* Remove expensive heap sort by sorting up front instead
#rb rob.millar,matt.peters,pj.kack
#preflight 62664bd06968f18d5137d419
[CL 19899104 by Johan Torp in ue5-main branch]
Add iostore chunk hashes to the asset registry during cook.
Remove old hashing code, which was extensive. This moves the async writes in to UE::Task from the old AsyncWorkSequence().
#rb Matt.Peters
#rb Jeff.Roberts
#preflight 624b24a5f73c316f68303946
[CL 19611812 by Dan Thompson in ue5-main branch]
Reducing allocations during replay scrub
#rb john.barrett
#ROBOMERGE-AUTHOR: brian.bekich
#ROBOMERGE-SOURCE: CL 19482343 via CL 19483947 via CL 19486339 via CL 19496184 via CL 19496470
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v936-19480137)
[CL 19498463 by brian bekich in ue5-main branch]
The implementation returns -1 if the version tag is not found, not 0.
#rb danny.couture
#preflight 623bf802437e1bac26c112a2
[CL 19492200 by fabian giesen in ue5-main branch]
Removing ensure from FName about unfreezing names that were created for a case-insensitive target. We rely on the archive used for serialization to save names with their case intact.
#rb ben.ingram, johan.torp
#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 19422180 via CL 19424113 via CL 19430180 via CL 19430244
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v930-19419903)
[CL 19432581 by robert millar in ue5-main branch]
#rb none
#preflight 6228bfd231133a23da83376d
#ushell-cherrypick of 19339219 by steve.robb
#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 19320363 via CL 19345602 via CL 19350976 via CL 19351027
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19351729 by marc audy in ue5-main branch]
#rb none
#preflight 6228a767d773d6497bfc599d
#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 19319301 via CL 19339201 via CL 19344374 via CL 19350327 via CL 19350522
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19351704 by steve robb in ue5-main branch]