Extend CookPackageSplitter API to have the splitter specify Dependency categories and properties, and to specify a GenerationHash that can invalidate a generated package due to changes in the generator without requiring a change in the the dependencies.
Extend WorldPartitionSplitterto specify the dependencies for its generated pacakges.
Update Cooker to track in the cooked AssetRegistry the ExternalActor packages that are dependencies for WorldPartition maps.
#rb Zousar.Shaker, Richard.Malo
#rnx
#preflight 63ee953a90198dffba920ab7
[CL 24273652 by matt peters in ue5-main branch]
Output is the same as when executing the -list command separately.
Running with -csv=<dir> will create one <pakchunkfilename>.pak.csv file per generated pak and one <pakchunkfilename>.utoc.csv file per generated container.
Running with -csv=<file> will create one single <file>.pak.csv for all paks and one <file>.utoc.csv for all containers.
Details:
The container output (the big set of data) is generated based on in-memory writer TOC data once the IoStoreWriters have been finalized.
The pak output (smaller set of data) is generated using the existing list command and loads the newly generated files from disk.
Cleanup the remains of three obsolete csv output features for containers (-csvoutput, -writefinalorder and OUTPUT_CHUNKID_DIRECTORY).
Optimize container output generation by extending FIoStoreTocChunkInfo with OffsetOnDisk and NumCompressedBlocks filled directly by EnumerateChunks.
Add a ChunkIdToFileNameMap to FCookedPackageStore.
Use the FCookedPackageStore to output the actual package ids and package names (this is currently broken when running -list as a separate command).
#rb carlmagnus.nordin
#rnx
#preflight 63e5eacb98775169f8dea431
[CL 24118941 by pj kack in ue5-main branch]
Set the reference chunk db on the optional writers.
Disable reference chunk use for uncompressed chunks.
Failing to load the reference chunk db is now a warning rather than a failure, since pak can succeed without it.
#rb none
#preflight 63e434bf7467a6960f7d31db
[CL 24110712 by dan thompson in ue5-main branch]
This change adds support for defining ondemand pak file rule(s). These rules
overrides existing rules created from asset chunking and is currenlty only meant to be used for .ubulk/.uptnl files.
Ondemand content is serialized to loose files with a new I/O store writer to /MyGame/ContentOnDemand/Paks/{MyPakRuleName}.
#rb CarlMagnus.Nordin,PJ.Kack
#preflight 63e39130786751d1e010c14c
#rnx
[CL 24096114 by per larsson in ue5-main branch]
Due to the fact that UnrealPak doesn't load INIs, the cvar was always its default value. This, combined with the fact that shaders don't store what codec they are compressed with means that setting this cvar to anything other than default (oodle) causes a crash in UnrealPak as DecompressShader will try to decompress with Oodle independent of the actual codec. Rather than plumb this information down through ProjectParams, I felt it prudent to just always use Oodle.
Additionally, in order to facilitate faster iteration times for development build farm jobs, the shader compression level used during UnrealPak will inherit from the overall package compression level set via Project Settings (PackageCompressionLevel_*).
This tacitly avoids patch issues as the default shader compression level happens to be the default package compression level, except now it inherits any faster levels for iteration time.
Note that we still use Mermaid as the codec as it's faster for decompressing than Kraken, which we care about for shaders.
#rb Fabian.Giesen
#rb Arciel.Rekman
#preflight 63e2f94c786751d1e0ffb290
[CL 24092953 by dan thompson in ue5-main branch]
* Fixed inderministic sort order for shaders of the same size, leading to different shader group chunks being generated
* Fixed memory leak when generating shader groups
* Fixed indeterministic classification of shaders appearing in two shader maps with the same hash
#rb pj.kack
#preflight 63e36695797b029c0a96297d
[CL 24070666 by carlmagnus nordin in ue5-main branch]
Downgrade failed to respond to retraction request message to Display. It can occur when the CookWorker is busy with long package loads due to huge maps.
Remove TODO comments that are now TODONE.
#rb Zousar.Shaker
#rnx
#preflight 63dac5d3dd0298377615823f
[CL 23969953 by Matt Peters in ue5-main branch]
Add support for diffing pak directories for pak diff.
Add support for different cryptokeys for pak diff and legacy iostore diff.
#jira UE-175144
#rb carlmagnus.nordin
#rnx
#preflight 63d9259e7a39a18021d4f997
[CL 23945218 by pj kack in ue5-main branch]
Fix problem of missing additional files in .pak files when packaging based on a ZenCook.
#jira UE-175144
#rb carlmagnus.nordin,per.larsson,zousar.shaker
#rnx
#preflight 63d92560f626715201d687ce
[CL 23945129 by pj kack in ue5-main branch]
Remove the requirement to resolve full export names when staging from Zen
#preflight 63d8efe9f626715201ca47d1
#rb pj.kack
[CL 23927635 by carlmagnus nordin in ue5-main branch]
1) Move few containers outside of inner loop to reuse same memory across iterations in AssignPackagesDiskOrder
2) Change FString to FStringView when list of filenames is prepared during FIoStoreWriter::Finalize
#rb fabian.giesen
#preflight 63d826653656ea96dc1fabfe
[CL 23923937 by martins mozeiko in ue5-main branch]