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]
- Will hopefully prevent races between the generation and SCWs.
- Startup impact: ~2ms (when files are up to date) to ~7ms (when they aren't).
#rb Jason.Nadro
#jira UE-115409
[CL 16326113 by Arciel Rekman in ue5-main branch]
- The mirage specific code is disabled behind the define UE_USE_VIRTUALBULKDATA, this means that some code paths in Texture/Mesh are much more complex than they need to be as we support both old and new paths. Once the system has been turned on and confirmed to cause no issues then this will be stripped out.
- SavePackageUtilities.cpp, SavePackage.cpp and SavePackage2.cpp are editgrates rather than integrations as those files have changes in DevCooker that we don't want to bring over immediately.
- Also includes a prototype system for storing bulkdata in a sidecar file in the workspace domain rather than in the .uasset/.umap file which although has been discontinued as part of mirage, will have applications for future work for non-virtualized projects and/or text based assets.
#rb Patrick.Finegan (all changes have been reviewed when submitted to Dev-Cooker)
#tests Cooking and running ShooterGame/Frosty and other sample programs using megascan assets
#rnx
#preflight 608be50d870cf400013ff99d
[CL 16167285 by paul chipchase in ue5-main branch]
- A single call to FAssetCompilingManager::Get().FinishAllCompilation() is now sufficient to ensure every asset in the editor has finished compiling.
- Dependencies are now used to determine asset compiler ordering
- Implement interface and unify some functionality between these assets
- MeshCards
- DistanceFields
- SkeletalMeshes
- StaticMeshes
- Shaders
- Textures
#rb Francis.Hurteau
#preflight 6086d3668de3a6000124c2b0
[CL 16122343 by danny couture in ue5-main branch]
StopThread() waits until all stat tasks are executed. Now that we use a pipe instead of StatsThread, the pipe asserts in its destructor if there're any unexecuted tasks. Seems like before unexecuted tasks were just dropped.
[CL 16103643 by Andriy Tylychko in ue5-main branch]
#fix pre-load animation data controller module, and replace Load with GetModule in AnimSequenceBase::GetController
#rb devin.doucette
#ROBOMERGE-SOURCE: CL 15878380 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)
[CL 15878394 by jurre debaare in ue5-main branch]
In a previous change TraceAux::Initialize was moved to a point very early in process lifetime. At this point the config system is not ready, so resolving data driven channel presets does not work. To solve this we make two changes, define two presets in code (default and memory) which require very early application, and add a second pass of channel initialization which is executed directly after config system is up.
#rb martin.ridgers
#ROBOMERGE-OWNER: johan.berg
#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 15822904 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v785-15821902)
#ROBOMERGE-CONFLICT from-shelf
[CL 15829754 by johan berg in ue5-main branch]
1) TlsAutoCleanup: in the previous version `FTlsAutoCleanup` used `FRunnableThread` to store registered instances and to delete them on `FRunnableThread` destruction. This means that all threads that are not created by `FRunnableThread` (the game thread in particular, and all 3rd-party threads) never delete registered `FTlsAutoCleanup` instances. This change moves the storage from `FRunnableThread` to TLS to cover all threads
Thsi change can break systems that implemented a workaround for this problem, e.g. by manually deleting registered `FTlsAutoCleanup` instances on the game thread exit, as now this instances will be deleted twice. The solution is to remove the workaround and to rely on uniform `FTlsAutoCleanup` behaviour on all threads.
#rb steve.robb
2) removed CpuProfilerTrace workaround to handle the fact that FTlsAutoCleanup leaks on the game thread, as this is fixed by (1).
#rb martin.ridgers
Need to submit both parts together as they need each other
#robomerge Release-5.0-EarlyAccess
[CL 15624597 by Andriy Tylychko in ue5-main branch]