#jira
#preflight
#ROBOMERGE-AUTHOR: justin.marcus
#ROBOMERGE-SOURCE: CL 18356980 via CL 18364429 via CL 18364474 via CL 18364523 via CL 18434163 via CL 18435483
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18436248 by justin marcus in ue5-release-engine-test branch]
Staged builds are explicitly assigned a project id via the persistent UECommandline.txt file. This works on mobile/consoles, but isn't implemented for Windows/Linux/Mac, so staged builds for those platforms don't have a persistent assignment of project id and instead rely on the launch by the editor including the appropriate commandlines.
Unstaged builds on Windows/Mac/Linux now determine project id independently after they have determined the project file path. This happens after the project file has been determined and has had case corrected. This ensures it is different/unique for multiple blueprint projects that share the same executable.
Fix a bug where second cook in editor to zen would stall because the queue thinks all additions are finished due to a boolean that isn't reset.
#rb devin.doucette
#rb per.larsson
#preflight 61b39a35a2562c8b1c40f81e
#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 18432317 in //UE5/Release-5.0/... via CL 18435404
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18435895 by zousar shaker in ue5-release-engine-test branch]
Added console command to print status of trace to in game console. In order to list the available channels a enumeration method was added.
#rb martin.ridgers
#jira UE-136018
#preflight 61b32d0dc01c89f906dc3dbd
#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18429738 in //UE5/Release-5.0/... via CL 18429749
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18429751 by johan berg in ue5-release-engine-test branch]
* TraceMalloc should not use it's own root heap. Instead it will use a regular heap in system memory and make fake heaps (since we can't track virtual allocations for trace's own allocations).
* The first named was miscategorized as a root heap.
#rb ionut.matasaru
#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18417001 in //UE5/Release-5.0/... via CL 18417015
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18417028 by johan berg in ue5-release-engine-test branch]
Also fixup bad default value for deprecated field AActor::GridPlacement.
#jira UE-136917
#rb patrick.enfedaque
#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 18411210 in //UE5/Release-5.0/... via CL 18411227
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18411245 by jeanfrancois dube in ue5-release-engine-test branch]
#rb PJ.Kack
#jira UE-136126
#rnx
#preflight
### VirtualizationSystem
- Added a new overload for Push to VirtualizationSystem that takes an array of FPushRequest, which is a new structure representing a single payload request.
- Filtering by package name is currently disabled, this is because the API has been forced into changing and passing the package name in via a FString rather than FPackagePath which means we would need to be more careful. This will be done in a future submit.
- The backend interface has been extended to also have a batch version of PushData, by default this will attempt to submit each request one at a time so payloads don't have to try and implement a batched version if there is no need.
- The context being passed with a payload when being pushed has been changed from FPackagePath to FString due to include order issues, as the FPackagePath lives in CoreUObject and the API for virtualization lives in Core. Additionally in the future the payloads might not be owned by a package (there is nothing specifically enforcing this) so the context being a string makes more sense.
- NOTE: Due to the context change we currently no longer support the filtering feature, which allows for payloads belonging to packages under specific directories to be excluded from virtualization. This is something that will be solved in a future submit.
### SourceControlBackend
- Now that we can submit multiple payloads in the same submit, the CL description has been changed slightly. We will now print a list of payload identifiers -> the package trying to submit that payload. This will only tell the users which package originally caused the payload to submit. If a user submits a new package at a later date that contains the same payload we will not be updating the description.
### PackageSubmissionChecks
- Converted the submission process to use the new batch push operation in VirtualizationSystem.
-- This means that we do a single push and then have to update the package trailers to convert the now pushed payloads from local to virtualized.
- Added new define UE_PRECHECK_PAYLOAD_STATUS that makes it easy to toggle off the checks to see which payloads need to be submitted to the persistent backend. This is useful to test if it actually helps speed up the overall operations or if it is faster to just perform the batch push operations on all payloads and check the return values.
-- The hope is that over time the submission processes will become fast enough that we can remove the precheck.
- Fixed up logging to not always assume more than one package or payload.
### General Notes
- Errors and logging is now a bit more vague as we often not just report that X payloads failed etc rather than specific payload identifiers. This probably doesn't affect the user too much since those identifiers as fairly meaningless to them anyway.
- The source control submission could be further optimized by first checking the status of the files in thge depot and only then creating/switching workspace etc.
- As currently written, we need to load all of the payloads into memory, then the backends will do what they need (in the case of source control this results in the payloads being written to disk then submitted) which could create quite a large memory spike when submitting a large number of packages.
-- One solution would be to change the batch push API to take a "payload provider" interface and have the payloads requested as needed rather than passing in the FCompressedBuffer directly. This would let us immediately write the payload to disk for submission then discard it from memory, preventing larger spikes. Although it could cause overhead if there are multiple backends being submitted to. Internally we are unlikely to have more than one backend per storage solution so maybe we should just make it a config option?
#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 18403735 in //UE5/Release-5.0/... via CL 18403737
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18403738 by paul chipchase in ue5-release-engine-test branch]
- Added option flags to control skipping empty tokens/lines, trimming tokens/lines, and ignoring delimiter case.
- Added overloads that add to an output object, such as an array.
#rb Zousar.Shaker
#preflight 61afaba0f27f993dc82117eb
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18400340 in //UE5/Release-5.0/... via CL 18400346
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18400354 by devin doucette in ue5-release-engine-test branch]
- Deprecated enum EActorGridPlacement and replaced AActor::GridPlacement by bIsSpatiallyLoaded.
- It makes more sense from a user perspective to set an actor as "non-spatially loaded" instead of "always loaded", especially with data layers.
- If we ever need it, having the possibility to set actors to use their location or bounds to go in the grid will be a per-grid setting.
#rb richard.malo, sebastien.lussier
#preflight 61af8bf10e59fd0ab0f93cc4
#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 18395825 in //UE5/Release-5.0/... via CL 18395836
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18395850 by jeanfrancois dube in ue5-release-engine-test branch]
* Renamed visibility layer name to "__LANDSCAPE_VISIBILITY__" to centralize/simplify the handling of that special layer's name
* Fixed issue with FixupWeightmaps(), that could trigger invalid weightmap usage validation errors when detecting and deleting unused paint layers in components
* Removed deletion of layers with a null layer info in PostEditChangeProperty since it's done, and in a better way (for the base weightmap allocations and the edit layers ones), in PostRegisterAllComponents's FixupWeightmaps
#jira UE-136054
#tests editor, full QA pass by tim.gautier
#ROBOMERGE-OWNER: jonathan.bard
#ROBOMERGE-AUTHOR: jonathan.bard
#ROBOMERGE-SOURCE: CL 18394875 via CL 18394909 via CL 18394912 via CL 18395077 via CL 18395102
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18395111 by jonathan bard in ue5-release-engine-test branch]
* Adds special value reserved to Trace allocations
* Adds checks to avoid collisions between FName indices and ELLMTags.
#preflight 61af41ca353890ce23edcf36
#ROBOMERGE-AUTHOR: johan.berg
#ROBOMERGE-SOURCE: CL 18393722 in //UE5/Release-5.0/... via CL 18393732
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18393738 by johan berg in ue5-release-engine-test branch]
- 210GB to 154GB Peak Used virtual
- 198GB to 149GB Peak Used physical
#rb Francis.Hurteau, Matt.Peters
#ROBOMERGE-AUTHOR: danny.couture
#ROBOMERGE-SOURCE: CL 18393625 in //UE5/Release-5.0/... via CL 18393631
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18393633 by danny couture in ue5-release-engine-test branch]