- Fixed crash when excuting TimingInsights.ExportTimerStatistics command with -region=*. In Editor traces, there are many (200000+) timing regions and some have names containing invalid characters for a file name. Using region name to make the output csv file fails. Fixed the issue by replacing all invalid characters with "_".
- Fixed the slow enumeration of regions for TimingInsights.ExportTimerStatistics command.
- Limited the number of export files to 100 for a single region (like "<SlowTask>") and to 10000 for the total number of csv files exported.
#jira UE-202381
#rb Catalin.Dragoiu
[CL 30261117 by ionut matasaru in ue5-main branch]
The main cooker process sets up the environment variable UE-ZenSharedDataCacheHost as part of it's initialization so the ZenShared instance is created by the worker processes when they initialize before the redirection for the file share is detected.
In the main cooker process that env-variable is not set so it skips creating the ZenShared instance until it finds the redirection.
Renamed ICacheStoreGraph::Create -> ICacheStoreGraph::FindOrCreate to better reflect the functionality.
#rb Devin.Doucette, Zousar.Shaker
[CL 30248058 by dan engelbrecht in ue5-main branch]
* Required a source mesh with two sections with identical materials
* Occured only when created a merged mesh without baking down textures
#jira UE-201699
#rb Patrick.Enfedaque
[CL 30245768 by sebastien lussier in ue5-main branch]
* Fixes baking with some flattening materials that placed the UseXXX switch after testing for packed properties support
#rb Patrick.Enfedaque
[CL 30243305 by sebastien lussier in ue5-main branch]
Upgrade the overrides and callsites in all of Epic's code.
Every class that can be subclassed by licensees that has its override change needs to keep the old version of the function as deprecated. Otherwise subclasses that call Super::GetAssetRegistryTags will have a compile error instead of a deprecation warning.
Several classes had their own extension method for GetAssetRegistryTags being passed on to user data classes. Updated all of those to take FAssetRegistryTagsContext just like GetAssetRegistryTags does.
#rnx
#rb Francis.Hurteau
[CL 30224166 by matt peters in ue5-main branch]
#rb juan.legaz
#jira UE-175581
### Perforce Connection
- FP4ClientUser now takes a FSourceControlResultInfo structure to store the warning/error messages generated during a perforce command, in addition we can now store info messages.
-- In almost all cases the array that was being passed in to store the warning/error messages came from a FSourceControlResultInfo so it doesn't change the overall flow.
- Rather than override ClientUser::OutputInfo to get the info messages we have overridden FP4ClientUser::Message instead as this is the preferred way in the cpp p4 api to capturing messages.
-- One difference between ::Message and the older capturing methods is that the older methods seemed to result in a newline character at the end of the message, which we do not see with the newer capture method. As some of our result parsing code relies on this behavior FP4ClientUser::Message will append this newline character for now until the parsing code can be fixed.
- For now FP4ClientUser still overrides ::OutputInfo, ::OutputError and ::HandleError but only to add a checkNoEntry() to each one. This is so that we can confirm that there are no remaining uses of it before removing it entirely.
- All classes derived from FP4ClientUser have been updated to work with the changes. In some cases this meant changing the override of ClientUser::OutputInfo to ClientUser::Message.
-- With a little bit of work we could probably remove these derived classes now that FP4ClientUser supports capturing the info messages which would help simplify the code base however this should be done in a future work item.
### Misc
- Remove ::FPerforceSourceControlProvider::GetWorkspaceList rather than update it, as it is not used.
- Add FSourceControlResultInfo::HasErrors to check if the struct contains errors or not.
-- Did not replace existing use of FPerforceSourceControlProvider::ErrorMessages.IsEmpty() that should be done as it's own work item.
[CL 30208418 by paul chipchase in ue5-main branch]
Minor cleanup of wrapper tests, preventing their presence unless the library is available.
#jira UE-202105
#rb rod.bogart, Ruslan.Idrisov
[CL 30192162 by eric renaudhoude in ue5-main branch]