- this matches the logic when running UAT with -target=myserver etc.
#jira UE-169814
#rb Josh.Adams
#preflight 6374ab6f1c114bec05ee01f9
[CL 23151764 by David Harvey in ue5-main branch]
- It needs to have CookerSupportFilesSubdirectory passed in to BuildCookRun to activate (giving it the name of a subdirectory under the Staged directory to put the SDK files)
- it also writes a .bat file that can set the envvars needed for the minimal SDKs to be found by Unreal
#rb graeme.thornton
#preflight 634f1e9069246074dba2f09a
#p4v-cherrypick 22616289
[CL 22634717 by josh adams in ue5-main branch]
- Added code to patch paths for handling Programs having source in /Engine/Source/Programs/XYZ, their config fies, etc in /Engine/Programs/XYZ, and staging using /XYZ
- Mac can now apply -specifiedarchitecture to UAT builds of programs
- Added support to SlateUGS to load Pak files (programs have to opt-in to it in their main Build.cs)
#rb brandon.schaefer,david.harvey
#preflight 631a03202b7fe03eb6b0f16a
[CL 21894674 by Josh Adams in ue5-main branch]
Fix DLCOverrideCookedSubDir param being used for DLCOverrideStagedSubDir if DLCOverrideStagedSubDir was not specified via commandline.
Don't allow TargetPlatformDescriptor.CookFlavor to be null - it needs to be empty string to be a valid key.
[REVIEW] [at]Graeme.Thornton [at]Daniel.Lamb
#ROBOMERGE-AUTHOR: justin.marcus
#ROBOMERGE-SOURCE: CL 20626127 via CL 20626141 via CL 20626144 via CL 20626147
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)
[CL 20627099 by justin marcus in ue5-main branch]
Can now provide reference iostore containers to reuse compressed chunks from. If a match is found on *the decompressed data*, instead of recompressing the blocks, they are read off of disk. This allows tweaks of the compressor algorithm without introducing changes as the runtime still sees the exact same data. Additionally this allows for fairly dramatic staging speedups as nvme speeds are significantly faster than high effort compressions. This is distinct from the DDC compression because:
1) DDC compression ties in the compressor version/method
2) We are explicitly interested in chunks that are deployed to end users, not merely cached for speed.
To facilitate this, several changes were made to IoStore:
FIoStoreReader now directly reads from IFileHandles* instead of routing through the GenericPlatformFile async read system, as that system is sensitive to build #defines and can result in constant file opens under load (indeed, for anything not a .pak file, every read is an open/close).
Cold file cache read speed improvements from ~140MB/s to ~1 GB/s. Hot is more.
Additionally:
FIoStoreReader switched to UE::Tasks from taskgraph for tasks in order to facilitate task retraction during waits as the previous ReadAsync call was trivial to deadlock when called from worker threads due to its use of TFuture<>.
FIoStoreReader::ReadCompressed now returns the compressed blocks as they were on disk - padded to AES encryption block size.
#rb fabian.giesen
#rb jeff.roberts
#preflight 627586dcf77c9c2b543d4d8b
[CL 20086673 by Dan Thompson in ue5-main branch]