Use SleepNoStats to prevent stat accumulation of sleep time
Remove CPUTRACE macros to remove dependency on that system (they weren't really useful)
Improve StallDetector logging
#rb francis.hurteau
#jira none
#preflight /job/602195055cb1b300015c6218
#ROBOMERGE-SOURCE: CL 15361323 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15361335 by geoff evans in ue5-main branch]
CallstackTrace was register a callback for OnExit during static init, but this callback could be overwritten due to initialization order. Move the registering later to fix this.
#rnx
#jira UE-107085
#rb paul.chipchase
[CL 15300711 by Johan Berg in ue5-main branch]
This adds some scalar statistics to the session summary:
* The total stall trigger count
* The total reported stalls
* The top stall name
* The top stall budget time in seconds
* The top stall cumulative overage time in seconds
* The top stall trigger count
#jira none
#rb patrick.laflamme, francis.hurteau
#preflight /job/6019a5ef797f69000126f9b6
[CL 15284567 by geoff evans in ue5-main branch]
On process exit the worker thread is killed, but we need orderly shutdown to avoid dropped callstacks and deadlocks when allocating during static deinitialization.
#rb ionut.matasaru, martin.ridgers
#rnx
#jira UE-107085
[CL 15237564 by Johan Berg 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]
This is desired for data center builds where we only care about one trace at a time, and uniquely naming or rotating the file name just makes for extra complexity and bug risk in calling code. Also, for incremental worker configurations we can leak disk consumption if we use a different file name every time.
Win/Mac/Linux all have the truncate file open flag set, so the platform file code should all allow for this.
Tested on windows.
#rb martin.ridgers, francis.hurteau
[CL 14828368 by geoff evans in ue5-main branch]