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]
#rb dan.phillips
#ROBOMERGE-OWNER: robert.millar
#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 16554441 via CL 16554457 via CL 16554465 via CL 16554507 via CL 16554868
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v828-16531559)
[CL 16554877 by robert millar 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]
#rb Per.Larsson
#rnx
* VirtualizationManager
- Add method ::IsEnabled which allows the caller to poll if content virtualization is enabled or not.
- Add method ::GetPayloadActivityInfo to return profiling data
- Added a new Profiling namespace containing all of the profiling code.
-- The idea is to try and keep all profiling data contained in the virtualization manager and not require the backends to be aware of it.
- The actual pull/push operations have been moved to new private methods ::TryPushDataToBackend and ::PullDataFromBackend, by limiting the scolpe of where the actual operation occur makes it easier to add the profiling code.
- We use the cooking stats system for recording our profiling data. Currently this adds no real value and we could've implemented our own but longer term this code might get hooked into FCookStatsManager:: CookStatsCallbacks to add it to our telemetry systems and this will be easier to do if it is already in the cooking stats formats.
* SVirtualizationStaticIndicator
- The widget is based on SDDCStatusIndicator for the DDC and is placed just before it in the UI.
- The widget will only be shown if the content virtualization system is enabled, so functions as an easy way to check that (maybe in the future it can be on all the time in which case we'd need the widget to reflect when the systems are disabled)
- Currently shows a green down arrow when a payload has been pulled and a green up arrow when a payload has been pushed.
- The tool tip shown on mouse over will show the total data sizes pulled and pushed from the backends.
#preflight 60b87c34ae46a100017d5334
[CL 16544645 by paul chipchase 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 missing CoreMinimal.h when compiling core
- 251s -> 245s for QAGame Win64 Development with -NoXGE on AMD TR 3970X
#rb Ben.Marsh
[CL 16527504 by danny couture in ue5-main branch]
#ROBOMERGE-OWNER: robert.millar
#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 16517115 via CL 16517137 via CL 16517179 via CL 16517335 via CL 16517350
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v826-16501804)
[CL 16517376 by robert millar in ue5-main branch]
#ROBOMERGE-OWNER: robert.millar
#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 16510694 via CL 16510697 via CL 16510701 via CL 16510734 via CL 16510747
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v826-16501804)
[CL 16510779 by robert millar 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]
- Added type-safe overloads of GetInterface/SetInterface on TScriptInterface.
- Added GetTypeHash to FScriptInterface.
- Cleaned-up operator= overloads with non-standard return types.
- Ensure that FScriptInterface is always constructed with both an object and interface argument specified.
#rb Steve.Robb
#preflight 60a6b17ab7ccb00001cab117
[CL 16408981 by Jamie Dale in ue5-main branch]