StallDetector:
* Replace static and per-callsite counter variables with trace classes
* Compose a trace api appropriate counter name (Stall Detector category)
SummarizeTraceCommandlet:
* Add support for extract and decode of counter messages from utrace files with a new analyzer class
* Report counters with name and count columns in the existing csv
* Support generation of counter events and values through to telemetry csv
#jira UETOOL-3506
#rb francis.hurteau
#preflight 609c5f45e88e9100010b5466
[CL 16314462 by geoff evans in ue5-main branch]
Content browser now hidden by default, opening tip is displayed showing you how to access it from the drawer. It can be permanently docked into the layout from there. Opening tip is never shown again
Placement browser is now closed by default
A UE4 classic layout has been added for those who want the placement browser and content browser docked by default
#jira UETOOL-2669
#ROBOMERGE-OWNER: matt.kuhlenschmidt
#ROBOMERGE-AUTHOR: matt.kuhlenschmidt
#ROBOMERGE-SOURCE: CL 15918688 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)
#ROBOMERGE-CONFLICT from-shelf
[CL 15921147 by matt kuhlenschmidt in ue5-main branch]
LIMITATIONS:
1) Re-instancing will only update UClass instance data.
2) Adding and removing properties should only be done towards the end of a class or structure and can not be followed by complex data types.
3) Adding and removing properties from a base class should not be done if a derived class contains complex data types.
KNOWN ISSUES:
1) Changes to enumerations and structures will not be reflected in existing blueprints. However, adding new nodes to the blueprint will show the updated enumeration or structure.
2) If a class contains an enumeration or structure as a member, the class will not be re-instanced if enumeration or structure is changed.
CHANGES:
1) LiveCodingServer
1a) Modified to always execute certain static instances during load.
1b) Modified to exclude the _Statics static structures to avoid patching to old copies.
2) Added support for LiveCoding reinstancing
2a) Refactored deferred registration system for UClass, UEnum, and UScriptStruct to use a common system that works for normal game, hot reload and live coding.
2b) Type specific version check data is possible (i.e. enum doesn't have a size)
2c) Single registration static for UClass
2d) Single registration class for all types that is just a blind forward to API.
2e) Static and dynamic registrations use different API entry points to avoid having overloaded argument lists that just apply to one or the other.
2f) Shims for older API
3) New common "Reload" system to avoid using HotReload code.
3a) Support common delegates regardless of who is reloading/reinstancing.
3b) Re-instancing code moved from HotReload to Kismet2 (where the bulk of the re-instance code already existed).
3c) Modified PyWrapper to use new helper class instead of depending on HotRelaod
3d) Added WITH_RELOAD which is defined if HotReload or LiveCoding is enabled.
3e) Modifed existing code to use new #define and delegates.
Robert did the review on the changes covered by Part 2. Remaining changes are all straightforward.
#rb robert.manuszewski
#jira UE-74493
[CL 15736777 by Tim Smith in ue5-main branch]
Editor layout system: If there is a version bump in the layout system, it used to show a message dialog always. Behavior modified.
If the load request comes from the "Load" UI button, it keep displaying a message dialog to warn the user (and a UELOG(Warning)). If it's from the editor startup, it will only show the UE_LOG(Warning).
Also modified the default layout with the new version.
#rb none
[CL 15307798 by Gines Hidalgo in ue5-main branch]
This code is meant to help locate and send reports/telemetry for slow code pathways that create unresponsive conditions
FGameThreadHitchHeartBeatThreaded was considered, but doesn't fit Editor's needs because its designed around general GameThread deadlines
Editor workloads are much less homogenous, and proper async support for a consistent GameThread deadline in Editor is a ways away
This necessitates a more focused approach where we can instrument specific routines such that each issue their own telemetry report
Add a "Stalls" counter in the Frame Rate and Memory title bar stats
Add LogStall Log category for viewing details about stalls that have occurred
Introduces a stall counter object on the GameThread to collect statistical data about stalls (this will not report to telemetry)
Future changes will introduce report objects into specific routines to upload to crashreporter
Future changes will introduce support for non-Windows OSes
#jira none
#rb francis.hurteau
[CL 15213394 by geoff evans in ue5-main branch]
#rb chris.gagnon
#ROBOMERGE-SOURCE: CL 11672298 via CL 11672319 via CL 11672336
#ROBOMERGE-BOT: (v656-11643781)
[CL 11863430 by rex hill in Main branch]
#rb chris.gagnon
#ROBOMERGE-OWNER: rex.hill
#ROBOMERGE-AUTHOR: rex.hill
#ROBOMERGE-SOURCE: CL 11604269 via CL 11604360 via CL 11604439
#ROBOMERGE-BOT: (v656-11643781)
[CL 11743509 by rex hill in Main branch]
Added new IMainFrame module interface function to override the application title.
IMainFrameModule::SetOverrideApplicationTitle(FText)
#ROBOMERGE-SOURCE: CL 10996086 via CL 10996091 via CL 10996095
#ROBOMERGE-BOT: (v633-10983880)
[CL 10996097 by mike fricker in Main branch]
#rnx
#rb none
#ROBOMERGE-SOURCE: CL 10869241 via CL 10869527 via CL 10869904
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870586 by ryan durand in Main branch]
Copied CL# 9452975
Copied CL# 9538568
#jira UE-80271
#jira UE-80344
Bug fixes:
1) UE-80271: Solved the issue that plugin-dependent SWidget windows appeared blank when the Editor was loaded with the respective plugin disabled.
2) Attemp to solve UE-80344: Avoided the out-of-bounds TArray error in FTabManager.
3) Standalone SWidgets from non-loaded plugins now behave in the same way than the docked SWidgets from non-loaded plugings: They are also re-opened when the plugin is loaded again and the Editor re-started. Before, they just disappeared.
#rb chris.gagnon
#lockdown chris.gagnon
#jira UE-80271
Enhancement/bug fix: Unrecognized Docked SWidgets from non-loaded plugins are not displayed on the UI rather than being showed up as "unrecognized tab", similarly to how standalone widgets behave.
Also removed 1 of 2 very similar warnings.
#jira UE-80988
This code should also fix the 1-off crash of crash when cliking on "Window" in the Menu Bar in QA Game, given that we have reverted even more changes and have limited it only to the layout generated in MainFrameModule.
#rb lauren.barnes
Fixed regression suffered in CL 9452975 for experimental "Modeling Tools Editor Mode" plugin.
[FYI] louise.rasmussen, ryan.schmidt
#rb lauren.barnes
#ROBOMERGE-SOURCE: CL 9688454 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v538-9681622)
[CL 9688464 by gines hidalgo in Main branch]
Enhancement/bug fix: Unrecognized Docked SWidgets from non-loaded plugins are not displayed on the UI rather than being showed up as "unrecognized tab", similarly to how standalone widgets behave.
Also removed 1 of 2 very similar warnings.
#jira UE-80988
This code should also fix the 1-off crash of crash when cliking on "Window" in the Menu Bar in QA Game, given that we have reverted even more changes and have limited it only to the layout generated in MainFrameModule.
#rb lauren.barnes
[CL 9452975 by Gines Hidalgo in Dev-Editor branch]
Enhacement JIRA UETOOL-1721: Introduced the capability to load/save/remove Editor UI Layouts, so that the user can customize the Editor and save/share it accross machines or people.
Additional enhancements: Re-loading a layout no longer requires the whole editor to restart. Instead, only the tabs are closed and re-populated (only creating a small "flash" in the editor rather than restarting it).
Previous Editor bugs fixed:
- Bug 1: AssetEditorToolkit.cpp::FAssetEditorToolkit::RestoreFromLayout was wrongly saving the layout in GEditorIni rather than GEditorLayoutIni.
- Bug 2: When the layout is saved, the instance ID of the custom toolkits was being saved as well. Given that this number keep increasing after each custom tab is created (no matter if the previous ones were already closed), the editor will keep thinking that the loaded layout is no longer the currrent layout. Fix in TabManager.h::FTabId::ToString().
- Bug 3: FLayoutSaveRestore::SaveToConfig was taking as input argument FString rather than const FString&.
#rb rex.hill, chris.gagnon
[CL 8129300 by Gines Hidalgo in Dev-Editor branch]