Changed some init function of the stuct FTextureSource to take the new struct FSharedBufferWithID.
Changed the interchange texture factory to precompute the PayloadId outside of the game thread.
On a very large udim texture (7.6 GB of source data), this can help us avoid a 2 seconds stall on the gamethread.
#jira UETOOL-3874
#rb Paul.Chipchase
#ROBOMERGE-SOURCE: CL 17069191 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17069241 by julien stjean in ue5-release-engine-test branch]
#rb cm
#rnx
#ROBOMERGE-SOURCE: CL 17048386 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v850-17047176)
[CL 17049897 by martin ridgers in ue5-release-engine-test branch]
This drastically improves the performance when doing the test to determine if the newly imported texture is a normal map or not.
(Before 0.288150 seconds, after 0.000161 seconds) These are from RGBA 16 bits 8k tif texture.
The improvement is made by:
1- avoiding copying the source mip.
2- avoiding a compression and decompression of the payload of a VirtualBulkData when getting the payload, if the payload is already loaded.
#jira UETOOL-3856
#rb Paul.Chipchase, JeanMichel.Dignard
#preflight 61094e454cd7930001783127
#ROBOMERGE-SOURCE: CL 17030758 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v846-17029325)
[CL 17030763 by julien stjean in ue5-release-engine-test branch]
Ensure that all reachable packages have all their exports serialized before starting post load instead of relying on the serialization order. This is still required in some cases.
Apply the same logic to ensure that all reachable packages are post loaded before finishing loading
#rb pj.kack
#rnx
#jira none
#ROBOMERGE-SOURCE: CL 17027677 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v843-17027566)
#ROBOMERGE[bot1]: dev-enginemerge-test
[CL 17027695 by carlmagnus nordin in ue5-release-engine-test branch]
AsyncLoading with EditorDomain: batch up the callbacks in FAsyncLoadingThread::ProcessLoadedPackages so that the EditorDomain callback that saves the just-loaded package does not cause a stack overflow by adding 14 functions on the stack for each pending package discovered in the FlushAsyncLoading call.
#rb Francis.Hurteau
#rnx
#ROBOMERGE-SOURCE: CL 17017812 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
[CL 17017898 by matt peters in ue5-release-engine-test branch]
Also add the writing of AppendAdditionalData to a callback on the PackageStoreWriter, so that FVirtualizedUntypedBulkDatas can be separated out into separate archives in the same way FUntypedBaseData are.
#rnx
#rb Paul.Chipchase
#ROBOMERGE-SOURCE: CL 17015164 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
[CL 17015166 by matt peters in ue5-release-engine-test branch]
Add more flexibility to the redirects/localization functionality by moving redirect information away from the package summaries and import tables
Changed import references from global import hashes to package local export hashes
#rb pj.kack
#rnx
#jira none
#ROBOMERGE-SOURCE: CL 17014898 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
#ROBOMERGE[bot1]: dev-enginemerge-test
[CL 17014905 by carlmagnus nordin in ue5-release-engine-test branch]
#rb PJ.Kack
#rnx
#preflight 610110305938f900010846ae
- Previously we would print the profiling data to the log if we have entries in either PushStats or PullStats but and entry in one of those maps only proves that a backend has been mounted, not if a Push or Pull has actually been carried out.
- Now we iterate over the maps and check that we actually have at least one entry before logging anything.
- This will help keep the logs clean in cases where Mirage is enabled but irrelevant, such as a commandlet that doesn't actually load a package etc.
- Added some improvements to the formatting so that it looks more like the DDC profiling output.
-- Line break before the profiling info
-- Use of == to mark different sections
-- Use of --- to clearly mark the headers vs data
#ROBOMERGE-SOURCE: CL 16981019 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)
[CL 16981036 by paul chipchase in ue5-release-engine-test branch]
This version changes both the logic and comment to handle abstract and deprecated outers, but not warn for the base object
It may be more theoretically correct to try and warn for directly referenced deprecated base objects, but that is not easy to detect in SavePackage 2 and this change matches the historical behavior
#rb francis.hurteau
#ROBOMERGE-SOURCE: CL 16959548 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)
[CL 16959570 by ben zeigler in ue5-release-engine-test branch]
#rb Per.Larsson
#rnx
#preflight 60f93e100fc49a0001c95bea
- When a package is saved we now push it's payloads to local storage backends (in memory/local file cache etc)
- In a future piece of work, when a package is submitted we will push it's payloads to the persistent storage backends (jupiter/source control etc)
- When pulling a payload we will first search the local storage backends for it and then go to the slower persistent storage backends if it was not found.
-- Once a payload has been found when being pulled we will immediately cache it to the local storage backends so that subsequent pulls will be faster.
-- At some point a ZenStorage backend will be added which will most likely be the primary local storage backend.
#ROBOMERGE-SOURCE: CL 16922588 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16922803 by paul chipchase in ue5-release-engine-test branch]
#rb Per.Larsson
#rnx
#preflight 60f7b910a6959a000164fb78
* SVirtualizationStatusIndicator
- Added the total time taken for each activity to the widget's tooltip and reformatted the output to be clearer.
- The initial tool tip should just give a brief highlevel overview of the activity taking place so groups all backends together across all threads.
* VirtualizationManager
- Profiling data for Mirage is now stored as a struct per activity type, making it easier to edit in the future.
- We now store the profiling data in the base format and let the different display methods format it instead.
#ROBOMERGE-SOURCE: CL 16906627 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16906635 by paul chipchase in ue5-release-engine-test branch]
Change texture and meshdescription BulkData guids to be unique.
#rb Paul.Chipchase
#rnx
#ROBOMERGE-SOURCE: CL 16903425 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16903431 by matt peters in ue5-release-engine-test branch]
2) Added a quick method to query the deferred CppStructOps until we decide on a long term solution
3) Added method to test to see if a source file is the NoExports include file.
#rb none
#rnx
#preflight 60f6c42f25c166000152cbdc
#ROBOMERGE-SOURCE: CL 16895867 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16895873 by tim smith in ue5-release-engine-test branch]
Fix similar issue with IncludeAssetBundlesName
Original fix from Roubert.Rouhani via UDN
#rb none
#ROBOMERGE-SOURCE: CL 16887122 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16887133 by ben zeigler in ue5-release-engine-test branch]
The UObject would write the correct config state, but UpdateSinglePropertyInSection would fail to remove the data for the updated key as it (correctly) wasn't present in the config being applied. This change has it remove the key from the config section if it exists.
#jira UE-119534
#rb Brooke.Hubert, Matt.Peters
#ROBOMERGE-SOURCE: CL 16884096 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16884120 by jamie dale in ue5-release-engine-test branch]
Add OnEndLoad calls for Async loaded packages, since the editor sometimes uses async loads.
#rb Francis.Hurteau
#rnx
#ROBOMERGE-SOURCE: CL 16861817 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16861829 by matt peters in ue5-release-engine-test branch]
- Issues with UObject* properties are upgraded from Warning to Error
- Other types remain the same for both engine and project modules (Display), but engine will soon change to Error as well
Settings can be overridden for either project or engine modules in DefaultEngine.ini (engine defaults are in BaseEngine.ini), e.g.,
[CoreUObject.UninitializedScriptStructMembersCheck]
EngineModuleReflectedUninitializedPropertyVerbosity=Error
ProjectModuleReflectedUninitializedPropertyVerbosity=Warning
#rb marc.audy
#ROBOMERGE-SOURCE: CL 16826159 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16826182 by michael noland in ue5-release-engine-test branch]