Always try to find the likely culprit in case of illegal references
#rb Matt.Peters
#jira UE-115971
#ROBOMERGE-SOURCE: CL 16774967
#ROBOMERGE-BOT: (v836-16769935)
[CL 16774971 by francis hurteau in ue5-main branch]
- Avoid redundant iterations and processing of UPackages by implementing a listener instead
- Process many packages asynchronously (not just one) by keeping them in memory longer and finishing them later
- Make the ddc fill job wait for async tasks properly
- Fix texture always being single threaded by allowing async at all time for ddc fill jobs
- Avoid calling IsCachedCookedPlatformDataLoaded too often on objects still being compiled
- Use a more sensible max memory usage in WorldPartitionHelpers to avoid calling the GC too often
- 30m16s to 7m44s when running -run=DerivedDataCache -fill -map=P_Construct_WP -mapsonly -projectonly with hot cache
- 2h30m to 1h11s when running -run=DerivedDataCache -fill -map=P_Construct_WP -mapsonly -projectonly with cold cache
#rb Zousar.Shaker, Devin.Doucette
#preflight 60d1fd5571002f0001b8880e
[CL 16745009 by danny couture in ue5-main branch]
Implement fast path for FCoreRedirects::GetMatchingRedirects when looking for a single redirect type.
Saves ~18% of the time spent in FLinkerLoad::FixupImportMap, which is time sliced in a 5ms window in PIE.
#rb francis.hurteau
[CL 16728888 by JeanFrancois Dube in ue5-main branch]
#fix actually allow for 32-byte aligned UObject allocations, allocate by size and aligment rather than aligned size and added development/debug build verification of resulting mem adress
#jira UE-117778
#rb Johan.Torp
#fyi Andrew.Davidson, Zak.Middleton
#preflight 60cb32e79ecd3e000199a396
[CL 16703994 by Jurre deBaare in ue5-main branch]
- Fixed tracing of UObject names and function names (UObject::CallFunction, FScopeCycleCounterUObject) when "stat named events" toggle is enabled (-statnamedevents, "stat NamedEvents" console command).
- Added FCpuProfilerTrace::OutputBeginDynamicEvent(const FName), in addition to existing API that receives const ANSICHAR* or const TCHAR*. It uses a separate DynamicFNameScopeNamesMap.
#rb Johan.Berg
#fyi Jeff.Farris
[CL 16657504 by ionut matasaru in ue5-main branch]
~40x speedup for set property loading, 281ms -> 6.5ms, initial load time for Win64 Test client in an internal project
Slight refactor in preparation of more advanced container allocators and allocating all UObject property memory linearly after UObject itself
#rb steve.robb
[CL 16623583 by Johan Torp in ue5-main branch]
Fixed issue where changing a function signature in an interface wouldn't update nodes in a blueprint.
Changed the API of the deferred registry to be more inline with UE coding standards.
#rb ben.marsh phillip.kavan
#rnx
#jira UE-113662
#preflight 60c0c0fdc61264000190e16a
[CL 16606206 by Tim Smith in ue5-main branch]
Saves ~18% of the time spent in FLinkerLoad::FixupImportMap, which is time sliced in a 5ms window in PIE.
#rb francis.hurteau, ben.zeigler
#ROBOMERGE-SOURCE: CL 16574078
#ROBOMERGE-BOT: (v828-16531559)
[CL 16574112 by jeanfrancois dube in ue5-main branch]
Apply similar logic to functions that are missing their parent implementation
Only for UScriptStructs that are outered to a UClass (e.g. sparse class data) and only when that class is not regenerating on load
#jira UE-116437 - AnimBP - Cannot Save Child AnimBP
#rb Phillip.Kavan
[CL 16568690 by Thomas Sarkanen in ue5-main branch]
Add an enum value for transient package flags and clear them all on load from PackageFileSummary in addition to the current clearing on save, so that newly-marked transient flags that were previously saved out can still avoid being set when loading.
#rnx
#rb Francis.Hurteau
[CL 16547525 by Matt Peters in ue5-main branch]
* Added a function to RedirectCollector to ingest soft package references
* Push the harevest soft package references from save to the redirect collector on a succesful save
* Moved the processing of soft package reference associated with a package during cook to after that package has been saved
#rb Matt.Peters
#jira UE-115137
[CL 16534223 by Francis Hurteau in ue5-main branch]
Add separate stack entries instead of inserting elements in one single array to minimize mem copying.
Minimize processing of non matching properties.
Do expensive IsA-checks only once per property.
Use TInlineAllocator to reduce allocations.
Fix broken GetPropertyChain feature.
Iterator Tests:
Extend test with recursion.
Add test without recursion.
Add test for SkipRecursiveProperty feature.
Add test for previously broken GetPropertyChain feature.
Impact on TPropertyValueIterator in EngineTest on Win64:
~2X speedup for TPropertyValueIterator<T> on UEngineTestPropertiesObject for any T != FProperty, less when actually iterating all properties
Impact on Garbage Collection Reachability Analysis for a big internal project on a slower platform running reachability analysis in parallel in 4 task queues:
~130 ms => ~005 ms for UClass::AddReferencedObjects (TPropertyValueIterator<FObjectProperty>) for the worst case UAnimBlueprintGeneratedClass
~150 ms => ~035 ms total wall time
~300 ms => ~130 ms total thread time
Impact on Garbage Collection Reachability Analysis for a big internal project on a faster platform running reachability analysis in parallel in 7 task queues:
~040 ms => ~002 ms for UClass::AddReferencedObjects (TPropertyValueIterator<FObjectProperty>) for the worst case UAnimBlueprintGeneratedClass
~045 ms => ~022 ms total wall time
~200 ms => ~150 ms total thread time
#jira UE-116567
#rb robert.manuszewski
#rnx
[CL 16482526 by PJ Kack in ue5-main branch]
Saves ~1ms in PIE based on SuperLuminal sampling.
#rb andy.firth
#ROBOMERGE-SOURCE: CL 16469231 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v823-16466674)
[CL 16469439 by jeanfrancois dube in ue5-main branch]