Only return true from FIoDispatcher::IsInitialized() when the script objects chunk exists to keep its behavior consistent. Later, this function will be deprecated in favor of a function on IAsyncPackageLoader.
#rb Zousar.Shaker
#fyi CarlMagnus.Nordin
#preflight 614541e1bf494a0001bd76bc
[CL 17570905 by Devin Doucette in ue5-main branch]
This is a defensive change to more uniformly gate conditions of various pathways that want to "nice" CPU consumption when the application is not the foreground application (doesn't "Have Focus"). In benchmarking scenarios we don't want a focus-grabbing application to cause change in behavior while taking performance measurements. This could be in local workstation benchmarking where other foreground apps will naturally come to the front or in data center build where antics that might otherwise be completely unknowable could impact benchmark measurements.
This change was formulated after finding some "nice" CPU conditionals that were instrumented, but not all of them are. This change aims to prevent having to instrument, profile, and mitigate each condition separately.
#rnx
#jira none
#rb francis.hurteau, brandon.schaefer
#preflight 611ec9248ff55400018d5018
[CL 17463345 by geoff evans in ue5-main branch]
This fixes blueprint projects not booting on platforms that set LLM_AUTO_ENABLE=1.
This was the sequence of events that led to the problem:
FLowLevelMemTracker::Get().ProcessCommandLine(CmdLine) triggers a call to FGenericPlatformMisc::ProjectDir() too early, before FPaths::IsProjectFilePathSet(). ProjectDir() ends up as ../../../engine/ instead of e.g. ../../../tp_firstperson/. This only happens for blueprint projects because code projects set GInternalProjectName and ProjectDir() follows a different path if FApp::HasProjectName().
In contrast, platforms that set LLM_AUTO_ENABLE=0 early out from the FLowLevelMemTracker function call so they don't trigger the problem.
This leads to ../../../*engine*/Content/Paks/ being created, instead of e.g ../../../*tp_firstperson*/Content/Paks/, making the engine believe there are no paks and fall back to reading from a normal file.
#jira UE-122150
#rb josh.adams
[CL 17316912 by nuno leiria in ue5-main branch]
The messaging system destroys these objects with FMemory::Free, which has different alignment logic than operator new when ASAN is used, resulting in a crash.
#jira none
#rnx
#rb Jerome.Delattre, Matt.Peters
[CL 17116813 by mihnea balta in ue5-main branch]
The new API uses exported functions and cannot be included with the old API without compile errors in existing code that has an include-only dependency on DDC.
#rb Zousar.Shaker
#rnx
#preflight 610c01e3aeb05700011dc5ab
[CL 17071263 by Devin Doucette in ue5-main branch]
All games now use Engine Oodle for runtime decompression
Oodle in Engine can load an older Oodle DLL for encoding packages to keep making the same binary data
#rb dan.thompson,devin.doucette
[CL 16879404 by charles bloom in ue5-main branch]
- This will be cleaned up further when FVirtualizationManager is moved into the Virtualization module and we do a pass on the initialization.
#rb Per.Larsson
#rnx
#preflight 60d57e67925f1400012be5af
[CL 16783910 by paul chipchase in ue5-main branch]
Updating FVirtualizedUntypedBulkData and textures to use the BulkDataRegistry.
BulkDataRegistry: Add get/put accessors for the cached BulkDataList of packages.
EditorDomain: Move ClassDigests into a global variable that can be shared with BulkDataRegistry.
EditorDomain: Improve performance of GetFileSize by fetching metadata only.
Tickable Cook Objects, for systems used by the cooker that need to be ticked.
Implementation of the the BulkDataRegistry that uses the DDC cache for persistent storage of the BulkDataList.
#rb Devin.Doucette, Paul.Chipchase, Zousar.Shaker
[CL 16768772 by Matt Peters in ue5-main branch]