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
#ROBOMERGE-SOURCE: CL 16606206 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16606221 by tim smith in ue5-release-engine-test branch]
- Since reloading inline data does not work in the old loader we need to make it more obvious to developers when they are doing it in the old loader so that it doesn't get submitted.
- An ensure will cause the process top break in the debugger and is more likely to get attention. It will also provide the callstack for any QA bug report which will make it easier for us to triage to the correct team to fix their calling code than a vague warning about bulkdata.
- Also provided a new define, UE_KEEP_INLINE_RELOADING_CONSISTENT, which when enabled will cause reloading of inline bulkdata to fail (and error) in the old loader as well.
- The ensure can be supressed by setting [Core.System]IgnoreInlineBulkDataReloadEnsures=True in an engine config file, this might be useful for projects that do not care about running from staged data for what ever reason (but supressing the ensure will not prevent the data from failing to load when run with the new loader so this is strictly a 'use at your own risk' option)
#rb CarlMagnus.Nordin
#preflight 60bf45f97bc5f2000173195a
#ROBOMERGE-SOURCE: CL 16586071 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16586080 by paul chipchase in ue5-release-engine-test branch]
- Since reloading inline data does not work in the old loader we need to make it more obvious to developers when they are doing it in the old loader so that it doesn't get submitted.
- An ensure will cause the process top break in the debugger and is more likely to get attention. It will also provide the callstack for any QA bug report which will make it easier for us to triage to the correct team to fix their calling code than a vague warning about bulkdata.
- Also provided a new define, UE_KEEP_INLINE_RELOADING_CONSISTENT, which when enabled will cause reloading of inline bulkdata to fail (and error) in the old loader as well.
- The ensure can be supressed by setting [Core.System]IgnoreInlineBulkDataReloadEnsures=True in an engine config file, this might be useful for projects that do not care about running from staged data for what ever reason (but supressing the ensure will not prevent the data from failing to load when run with the new loader so this is strictly a 'use at your own risk' option)
#rb CarlMagnus.Nordin
#preflight 60bf45f97bc5f2000173195a
[CL 16586071 by paul chipchase 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]
#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]