Refactor CookByTheBookFinishedInternal to move all optional writes into the per-platform forloop so we can share data calculated for each platform between ReferencedSet.txt and the AssetRegistry.
Remove the no-longer-used SCOPED_BOOT_TIMING macros; we profile cook times using UE_SCOPED_HIERARCHICAL_COOKTIMER now.
#rnx
#rb Zousar.Shaker
[CL 36759205 by matt peters in 5.5 branch]
#rb Per.Larsson, Pere.Rifa
#jira UE-222974
- To enable the feature call FBulkData::SetCookedIndex with a FBulkDataCookedIndex set to a value between 1 - 255. Zero is currently reserved as the default/off state and can be quickly accessed via FBulkDataCookedIndex::Default.
-- Note that we might change the default value in the future, the main reason to keep it as zero for now is that it means FChunkId values will remain unchanged for bulkdata files not using the feature.
- When a bulkdata object has a cooked index it will output to a file with that value based on the following format <packagename>.CookedIndex.<extension> so a normal bulkdata payload with a cooked index of 5 would end up writing to <packagename>.005.ubulk.
-- This allows the calling systems to control which bulkdata payloads go to which sub files.
- We currently do not support memory mapped payloads or payloads with the duplicate non optional flags. Support and testing for this will be added later.
- Tested saving/editing/loading packages with bulkdata in the editor (vector fields), build/cook/run normal builds, build/cook/run with feature enabled then running the new code with data produced from non modified code and running non modified exe on data generated with the new code.
### IPackageResourceManager
- Added overloads for most methods that take EPackageSegment that also take a FBulkDataCookedIndex and deprecated the older versions.
- Not all methods have been ported over, just the ones I could test but the rest will need the same treatment at some point.
### FLinkerSave
- Now stores each set of bulkdata, optional bulkdata and memory mapped payloads in separate archives, one per cooked index.
- Added a method ::HasCookedIndexBulkData that returns if any of the normal bulkdata payloads contain a non default cooked index. This is used for some paranoid checks when saving packages to the workspace domain.
[CL 36754477 by paul chipchase in 5.5 branch]
Removed the EPackageState::LoadPrepare, EPackageState::LoadReady, and EPackageStateProperty::State property, replaced them (the return of the original) single EPackageState::Load. Substates within Load are now handled by a separate state variable on FPackagePreloader.
The substate on FPackagePreloader is more complex than a usual substate, because now FPackagePreloaders can be in an active substate of EPreloaderState even when the FPackageData's state is not in load.
#rnx
#rb Zousar.Shaker
[CL 36752869 by matt peters in 5.5 branch]
Default objects will not be created if the class is abstract.
#rb Francis.Hurteau
#jira UE-224118
#tests Ran editor, new unit tests
[CL 36747664 by steve robb in 5.5 branch]
[FYI] jordan.hoffmann
Original CL Desc
-----------------------------------------------------------------
[Bugfix] Crash when adding to Container properties
#jira UE-217965
#rb Devin.Doucette
[CL 36029862 by jordan hoffmann in ue5-main branch]
Adding WITH_METADATA support for AsyncLoading2 (ZenStore).
#rb Devin.Doucette, Francis.Hurteau
#tests Cooked Lyra manually and tested. Tested build permutations (editor/game)
[CL 36009705 by fredrik lindh in ue5-main branch]
Remove canskipeditoronlywhencooking; it is no longer necessary because its functionality has been replaced by skiponlyeditoronly.
MPCook was handling PKG_EditorOnly because it could not handle skipeditoronlywhencooking, and the two concepts used the same flag to toggle use of them in SavePackage. By removing canskipeditoronlywhencooking, we can turn that flag on.
#rb Francis.Hurteau
#rnx
[CL 35966555 by matt peters in ue5-main branch]
If the transaction was aborted between CreateStatID() and the FUObjectItem destructor, then the memory allocated in the open for the StatID was not freed.
Allocate the memory in the open, and carefully assign / reset StatIDStringStorage atomically in the open / abort handler.
Also fix / silence some other leaks in UECoreTests.cpp
#rb neil.henning
[CL 35962183 by ben clayton in ue5-main branch]