If UbaController is not used this has no effect and only sets the maximum number of remote agent cores to 500 if this value is not specified externally.
It fixes an issue with parsing INI configurations from the commandline that contain multiple key-value pairs.
#jira UE-227128
#rnx
#rb jason.nadro
[CL 37015549 by laura hermanns in 5.5 branch]
- Added FAssetHeaderPatcher::FContext for storing data on how to perform a patch (which redirects to follow, string -> string replacement map). Allows for an extensibility point for encapsulating special case patching so we don't need to rely on string->string mappings exclusively
- Added `virtual FArchive& operator<<(FTopLevelAssetPath& Value)` to `FActorDescArchive` to allow for patching of FTopLevelAssetPath directly. Without this overload the FNames within a FTopLevelAssetPath would be patched one at a time losing all context about what the FNames are.
- Removed IAssetTools::GetAdditionalPatchCopyMappings, GetPatchCopyMappingsForRootRename, and PatchCopyPackageFile as these methods were internal and using the patcher directly should be preferred.
- Added some unit tests for the FAssetHeaderPatcherInner implementation works to codify the assumptions and expectations of the patcher implementation
Set use HeaderPatching as true by default for CopyProjectWithHeaderPatching. AdvancedCopy still disables header patching (to be enabled in a follow-up change)
#rnx
#rb Dave.Belanger
[FYI] Francis.Hurteau
#p4v-cherrypick 36706626, 36741243
[CL 36858806 by kevin macaulayvacher in 5.5 branch]
- MeshAssetFunctions: updated ddc cache when adding a new profile (should be handled in CommitMeshDescription)
- LODUtilities: corrected GenerateImportedSkinWeightProfileData, which did not correctly handle maximum bone influence + weight sorting (+ fixed similar position test)
- SkinnedMeshComponent: added GSkinnedMeshSkinWeightProfileEarlyExit (false by default) to avoid exiting too early when defining a new profile stack
- FSkeletalMeshAttributes: adding a new skin weight attribute now returns true if the attribute is already available
NOTE: things to keep in mind when generating rendering meshes from editable meshes (mainly for the future me)
- influences may be clamped at 8/12 when converted for rendering, even if editable data can support any number (be sure to check rendering settings and the number of bones supported by the current platform)
- as weights can be clamped, it's important that weights are sorted from highest to lowest
- use FBoneWeights to ensure that weights are re-normalized if they are clamped
TODO:
- test CommitMeshDescription to ensure that adding a new profile triggers a DDC invalidation
- there is redundancy between MeshUtilities::GenerateSkeletalRenderMesh and LOD rendering mesh generation (which is a source of errors)
- FLODUtilities::UpdateAlternateSkinWeights could benefit from a more robust projection algorithm (see FTransferBoneWeights)
#rb halfdan.ingvarsson
#rnx
[CL 36788984 by benoit gadreau in 5.5 branch]
[FYI] kevin.macaulayvacher
Original CL Desc
-----------------------------------------------------------------
Changes FAssetHeaderPatcherInner to leverage the CoreRedirect system for resolving FNames in a package header, and string paths when context about the string itself is well known (i.e. we know the string data is a stringified ObjectPath/PackagePath, or ObjectName are deducible). We still make use of string scanning replacement mechanism but those are now constrained to only patching strings content specifically (e.g. Tag data)
- Added FAssetHeaderPatcher::FContext for storing data on how to perform a patch (which redirects to follow, string -> string replacement map). Allows for an extensibility point for encapsulating special case patching so we don't need to rely on string->string mappings exclusively
- Added `virtual FArchive& operator<<(FTopLevelAssetPath& Value)` to `FActorDescArchive` to allow for patching of FTopLevelAssetPath directly. Without this overload the FNames within a FTopLevelAssetPath would be patched one at a time losing all context about what the FNames are.
- Removed IAssetTools::GetAdditionalPatchCopyMappings, GetPatchCopyMappingsForRootRename, and PatchCopyPackageFile as these methods were internal and using the patcher directly should be preferred.
- Added some unit tests for the FAssetHeaderPatcherInner implementation works to codify the assumptions and expectations of the patcher implementation
New patching changes are left disabled by default
#rnx
#rb Dave.Belanger, JeanFrancois.Dube
[CL 36764539 by kevin macaulayvacher in 5.5 branch]
- Added FAssetHeaderPatcher::FContext for storing data on how to perform a patch (which redirects to follow, string -> string replacement map). Allows for an extensibility point for encapsulating special case patching so we don't need to rely on string->string mappings exclusively
- Added `virtual FArchive& operator<<(FTopLevelAssetPath& Value)` to `FActorDescArchive` to allow for patching of FTopLevelAssetPath directly. Without this overload the FNames within a FTopLevelAssetPath would be patched one at a time losing all context about what the FNames are.
- Removed IAssetTools::GetAdditionalPatchCopyMappings, GetPatchCopyMappingsForRootRename, and PatchCopyPackageFile as these methods were internal and using the patcher directly should be preferred.
- Added some unit tests for the FAssetHeaderPatcherInner implementation works to codify the assumptions and expectations of the patcher implementation
New patching changes are left disabled by default
#rnx
#rb Dave.Belanger, JeanFrancois.Dube
[CL 36764489 by kevin macaulayvacher in 5.5 branch]
Selecting "link" or "copy" is done automatically by checking if UE is running from an installed place or if it is a dev/p4 stream place, you can override this with the option -ZenAutoLaunchInstallMode.
The ZenAutoLaunchInstallMode defaults to "auto" where it tries to detect if it is an installed engine or not. "link" forces the use of a link file and "copy" forces the copy-install option which is the legacy behavior.
Additional fixes:
FMacSystemWideCriticalSection which could fail to aquire the critical section causing launch to fail now uses flock in the same manner as FUnixSystemWideCriticalSection which resolves the issues
When checking if processes are running on Unix/Mac we now detect zombie processes properly
#jira UE-224517
#rb zack.neyland, Zousar.Shaker
[CL 36764363 by dan engelbrecht in 5.5 branch]
#rb Patrick.Enfedaque
#jira UE-225282
- When FUncontrolledChangelistsModule::ShutdownModule is called we do try to ensure that the start up task has completed if it is still running but in very rare cases the job will not get time to run on worker threads until the engine exit path has already started to exit and things that it relies on, such as the asset registry have already shutdown. In these cases we can hit an assert.
- We now hook into the OnEnginePreExit delegate which is invoked before major engine systems start to shutdown.
- We also try to first cancel the job, in case it is still pending on the task system as that is the fastest way to stop it from running.
- If the job has already started we will have to wait for it to complete.
- Note that the job will try to early out once it detect that the engine is shutting down so the wait here should be relatively short.
- There is now no need to check that the start up task has finished during ::ShutdownModule so we now double check for future coding errors with an assert instead.
[CL 36760604 by paul chipchase in 5.5 branch]
Remove the restoring of sponsored processes when trying to recover - we should never touch them unless we are adding a process ourselves.
Refactored out ZenServerState and ZenNamedEvent into separate file so we don't have low-level zenserver specific code in ZenServerInterface.cpp.
#jira UE-224531
#rb Zousar.Shaker
[CL 36757557 by dan engelbrecht in 5.5 branch]
- Calls to OnPluginUnload (one GC call for all plugins)
- Calls to FCollectionManager::HandleObjectDeleted (one UpdateCaches call at the end)
#rb Dave.Belanger, Francis.Hurteau
[FYI] Rex.Hill
#rnx
[CL 36757086 by nick verigakis in 5.5 branch]