Commit Graph

3400 Commits

Author SHA1 Message Date
tim smith
af243577b4 Fixed global delegate functions to support changes when doing live coding.
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]
2021-06-09 11:43:12 -04:00
jeanfrancois dube
f406f3cf73 Undo changelist 16574078
#rb none

#ROBOMERGE-SOURCE: CL 16588399 via CL 16588406
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16588412 by jeanfrancois dube in ue5-release-engine-test branch]
2021-06-08 12:19:40 -04:00
jeanfrancois dube
3ea3e2ea3e Undo changelist 16574078
#rb none


#ROBOMERGE-SOURCE: CL 16588399
#ROBOMERGE-BOT: (v828-16531559)

[CL 16588406 by jeanfrancois dube in ue5-main branch]
2021-06-08 12:19:12 -04:00
paul chipchase
e61cb98a53 Reloading inline bulkdata in the old loader will now raise an ensure rather than log warnings as it should make it easier for people to spot the problem before it hits the new loader and fails to work entirely.
- 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]
2021-06-08 08:46:04 -04:00
paul chipchase
0c2529d248 Reloading inline bulkdata in the old loader will now raise an ensure rather than log warnings as it should make it easier for people to spot the problem before it hits the new loader and fails to work entirely.
- 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]
2021-06-08 08:44:17 -04:00
aurel cordonnier
25a11deeac Merge from Release-Engine-Staging @ 16579919
This represents UE4/Main @ 16579691 and Dev-PerfTest @ 16579576

[CL 16581170 by aurel cordonnier in ue5-release-engine-test branch]
2021-06-07 20:09:45 -04:00
Tim Smith
3738ff82ef Fix error message that was incomplete
#rb trivial
#rnx
#preflight 60be765b545fbc0001b00cb6

[CL 16578702 by Tim Smith in ue5-main branch]
2021-06-07 17:58:58 -04:00
jeanfrancois dube
3263a29487 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, ben.zeigler


#ROBOMERGE-SOURCE: CL 16574078
#ROBOMERGE-BOT: (v828-16531559)

[CL 16574112 by jeanfrancois dube in ue5-main branch]
2021-06-07 13:50:00 -04:00
jeanfrancois dube
d0c4d2723a Avoid going through ObjectToPackageMap in UObject::Serialize when not needed.
#rb francis.hurteau


#ROBOMERGE-SOURCE: CL 16569558
#ROBOMERGE-BOT: (v828-16531559)

[CL 16569559 by jeanfrancois dube in ue5-main branch]
2021-06-07 09:12:55 -04:00
Thomas Sarkanen
f732928d64 Downgrade linker warning for missing parent structs
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]
2021-06-07 07:56:21 -04:00
PJ Kack
e7c06e9e13 Add trace scopes for garbage collection and memory trim
#rb carlmagnus.nordin
#jira none
#rnx

[CL 16567410 by PJ Kack in ue5-main branch]
2021-06-07 03:14:13 -04:00
robert millar
0cc7bdcb60 Don't use SetAndHold in csv profiler which will be backed out, register game thread ticks to push data to the csv profiler each frame.
#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]
2021-06-03 18:48:51 -04:00
Matt Peters
b2660eae6b EditorDomain: Mark that package flag PKG_ReloadingForCooker is transient; it should not be saved to or loaded from the PackageFileSummary.
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]
2021-06-03 10:50:00 -04:00
paul chipchase
6958a4faa7 Add some basic profile data to Mirage to make it easier for people to see when payloads are being pushed to or pulled from the various backends.
#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]
2021-06-03 04:35:17 -04:00
Matt Peters
52a484ae8a Fix compile error '&&' within '||'.
#rb None, trivial
#rnx

[CL 16535475 by Matt Peters in ue5-main branch]
2021-06-02 12:02:54 -04:00
Francis Hurteau
87fd0a4157 Harvest soft object path package on save for cooker to handle save permutations such as the world partition grid cell split:
* 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]
2021-06-02 10:28:45 -04:00
Matt Peters
425c24ebdd EditorDomain: Fix version warning when receiving EditorDomain packages from other users on the shared DDC.
Warning: Asset has been saved with a newer engine and can't be loaded.
#rb Zousar.Shaker
#rnx

[CL 16534179 by Matt Peters in ue5-main branch]
2021-06-02 10:24:44 -04:00
danny couture
d255f4532a Add GeneratedCppIncludes in PCH as it is one of the most included files from vcperf profile runs
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]
2021-06-01 21:34:02 -04:00
robert millar
51aa7f0d82 Expose IoDispatcher and AsyncLoading stats to csv profiler.
#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]
2021-06-01 13:31:25 -04:00
paul chipchase
99848fd49b Removed UE::Virtualization::IVirtualizedData from core now that there is no need for it.
#preflight 60b6432d6073fb00010d8e11

[CL 16514905 by paul chipchase in ue5-main branch]
2021-06-01 11:44:14 -04:00
robert millar
4af3923ac4 Expose IoDispatcher and AsyncLoading stats to csv profiler.
#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]
2021-05-31 16:35:03 -04:00
aurel cordonnier
43fa62fcd8 Merge from Release-Engine-Test @ 16487383 to UE5/Main
This represents UE4/Main @ 16445039 and Dev-PerfTest @ 16444526

[CL 16488106 by aurel cordonnier in ue5-main branch]
2021-05-27 13:40:37 -04:00
PJ Kack
cd3de34b14 Optimize FPropertyValueIterator to alleviate the GC performance regression from 16048941.
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]
2021-05-27 07:46:38 -04:00
jeanfrancois dube
c0aa158f8d Removed trace tags from UObject tracepoints since the cost of these functions has been fixed in 16266767.
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]
2021-05-26 10:51:49 -04:00
sebastian nordgren
5072dd8816 UEditorConfigSubsystem now has helpers to directly load into UObjects based on the EditorConfig= class metadata, as well as filtering of properties tagged with the EditorConfig property metadata.
#rb tim.smith, lauren.barnes
#jira UETOOL-3448
#preflight 60aceb521d02bb000144bc59

[CL 16447508 by sebastian nordgren in ue5-main branch]
2021-05-25 10:01:03 -04:00