If realtime was disabled, the force-flush was happening even when PIE was active, which cost a lot of performance.
#jira UE-144517
#rnx
#lockdown Cristina.Riveron
#rb Jeannoe.Morissette
#preflight 622768a6e83598518f2e8268
#ROBOMERGE-AUTHOR: mihnea.balta
#ROBOMERGE-SOURCE: CL 19302848 in //UE5/Release-5.0/... via CL 19303931
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346857 by mihnea balta in ue5-main branch]
- Fix crash because of Subsystem Init call done through InitializePhysicsSceneForSaveIfNecessary not being matched with Deinit in CleanupPhysicsSceneThatWasInitializedForSave.
This was delaying it to StaticExit() IncrementalPurgeGarbage causing some Subsystem objects to become invalid before the FSubsystemCollectionBase that contained them.
- Original change no longer necessary because CleanupWorldPartition is no longer called from within CleanupLevel
#jira UE-143535
#preflight 6217743b335015645d962f36
#rb matt.peters
#lockdown aurel.cordonnier
#rnx
#ROBOMERGE-AUTHOR: patrick.enfedaque
#ROBOMERGE-SOURCE: CL 19114405 in //UE5/Release-5.0/... via CL 19114673
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19152884 by patrick enfedaque in ue5-main branch]
FArchive now holds a "CookData" blob that contains relevant information for cooking. The TargetPlatform has been moved to this structure, and it has a reference to a CookContext that can hold data generated during the cook that doesn't get serialized to the uasset (in this case, the asset registry tags).
#rb Matt.Peters
#preflight 62151bc4797dbbeb472af77d
#preflight 621011f6ff52bfecfc032b15
#preflight 62152777141b500e17eb24ef
[CL 19076066 by Dan Thompson in ue5-main branch]
When running with ODSC in the editor Materials can have incomplete or partial shader maps. In other words some shaders _might_ be missing. If a render system requires all shaders to be present and can't use ODSC functionality to compile the necessary shaders we need a mechanism for compiling just the missing shaders.
- Added UMaterialInterface::CacheShaders() which is implemented for UMatetrial and UMaterialInstance. The call is just forwarded along to CacheResourceShadersForRendering and InitStaticPermutation respectively.
- You can call CacheResourceShadersForRendering multiple times (even with a completed shader map) and it will not recache uniform expressions. If the Resource's shader map is complete the function is a no-op.
- FObjectCacheContext can accept a UWorld and will only return primitives that are in that world.
- Added a function SubmitRemainingJobsForWorld(UWorld* World, EMaterialShaderPrecompileMode CompileMode) that will iterate all materials used by primitives in the world and compile the missing shaders.
- SubmitRemainingJobsForWorld() is used in various scenarios in the editor to ensure _all_ shaders are compiled for all materials before proceeding.
- Explicitly try to compile UI and PP materials. Since we don't know which ones are used in the given world we just have to iterate all loaded ones. This is a potential area of optimization.
- If there are already complete shader maps (if you are not running with the shader job cache), SubmitRemainingJobsForWorld is fast and results in a no-op for each material.
#rb Arciel.Rekman, Danny.Couture
#jira UE-136442, UE-136447
#preflight 61fc0e9c176256ec4f764206
[CL 18848560 by Jason Nadro in ue5-main branch]
Fix CIS issue by commenting out delegate check causing a shared null ptr
[FYI] Bart.Hawthorne
#ROBOMERGE-AUTHOR: eric.knapik
#ROBOMERGE-SOURCE: CL 18804257 via CL 18804284 via CL 18805456 via CL 18805468 via CL 18805484 via CL 18820373 via CL 18822932
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)
[CL 18825091 by eric knapik in ue5-main branch]
#rb rex.hill
#preflight
#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: bart.hawthorne
#ROBOMERGE-SOURCE: CL 18796580 via CL 18797225 via CL 18803393 via CL 18803463 via CL 18803497 via CL 18820342 via CL 18822926
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)
[CL 18825084 by marc audy in ue5-main branch]
- FScopedLoadAllExternalObjects object that can be used to force the loading of all external actors of a WP world to allow those operations to succeed. (for larger worlds commandlet should be used)
- ContentBrowser operation like: Delete, Duplicate, Rename, Move, Copy use this new scope
- World Partition worlds are no longer loaded on right-click context menu.
- Note: change was done with explicit scopes to only address specific use cases and limit the impact of this CL. It could become a default behavior in later versions.
#jira UE-140032, UE-114002
#rb richard.malo, jeanfrancois.dube, rex.hill
#preflight 61f2b479800734b52da816b4
#ROBOMERGE-AUTHOR: patrick.enfedaque
#ROBOMERGE-SOURCE: CL 18753910 in //UE5/Release-5.0/... via CL 18753926 via CL 18756993
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18757308 by patrick enfedaque in ue5-main branch]
* Enabled by default
* Solve issue where HLOD layer assets could be loaded without their associated builder settings base class being known, resulting in null objects
#rb luc.eygasier
#preflight 61ddf99cc25f6c16f20fedbf
#jira none
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 18584312 in //UE5/Release-5.0/... via CL 18584317 via CL 18584342
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)
[CL 18584376 by sebastien lussier in ue5-main branch]
#rb Matt.Peters
#rnx
#preflight 61d84996932a02483ce0f245
- When a package was being saved for the editor domain,it was being pushed to the list of files that should be added to source control with the filename "EditorDomainPackageWriter" and when that list of files was processed (if the editor had source control enabled) it would result in a number of errors being written to the log as the source control provider would fail to add multiple instances of the file "EditorDomainPackageWriter"
#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 18543702 in //UE5/Release-5.0/... via CL 18543730
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18543744 by paul chipchase in ue5-release-engine-test branch]
- When enabled, folders are actual objects : modifying a folder won't affect actors (more compliant with OFPA).
- Enabled by default for World Partition and Level Instances.
- Can be enabled on regular levels (experimental feature 'Use Actor Folder Objects').
- If Level uses OFPA, ActorFolders will also be saved in their own package (but will use __ExternalObjects__ root folder).
- In a future refactoring, external actors will also be moved in the same root folder.
- Generalized saving object in an external package (different from its outer package)
- World outliner supports old folders and new actor folder objects : Levels using the actor folder objects will show a root Level node (like Level Instances).
#rb patrick.enfedaque, jeanfrancois.dube
#preflight 61d84b356511bc498e5cb858
#ROBOMERGE-AUTHOR: richard.malo
#ROBOMERGE-SOURCE: CL 18543443 in //UE5/Release-5.0/... via CL 18543482
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18543525 by richard malo in ue5-release-engine-test branch]