* A SlowTask is created when there is delibrately going to be a stall-like condition but the developer wants to retain some limited interactivity. This is traditionally not considered a stall.
* This change will pause stall detectors when slow tasks are created and resume them when the slow task ends.
* Implementation uses a TLS variable to store SlowTask specific pause contexts so as to not put a dependency of SlowTasks on the StallDetector. Thread local stack is used since SlowTasks can be created from any thread context and can also be recursively created - therefore the Start/Finalize SlowTask events can be fired from any thread and the number of pause contexts need to match the created slow tasks.
#rb Brooke.Hubert, Rex.Hill
#jira UE-179567
[CL 26583138 by logan buchy in ue5-main branch]
* StallDetector gets StallDetector.ForceLogOnStall which will cause the editor to emit a log from the LogStall category at verbosity Log even if the StallDetector scope is set to disable reporting
* Editor.Debug.SlowTask.Simulate will cause the FEngineLoop::Tick to enter a SlowTask for the given number of seconds.
* Together, these can be used to validate that the StallDetector scope in FEngineLoop::Tick is triggered when a SlowTask runs past the detector's stall threshold time (2 seconds at time of writing)
#jira UE-179567
#rb Rex.Hill
[CL 26559492 by logan buchy in ue5-main branch]
* Commented out during backout of previous change. Should have still been intact.
#rb trivial
#jira UE-179567
[CL 26558878 by logan buchy in ue5-main branch]
On some platforms and configurations all command line arguments are sent as one string rather than one string per argument. We need to parse each argument in the vector for sub arguments to be sure to catch any memory trace channel.
#rb martin.ridgers
#jira UE-188908
[CL 26255677 by johan berg in ue5-main branch]
[FYI] Johan.Berg
Original CL Desc
-----------------------------------------------------------------
Rework command line parsing for memory trace
On some platforms and configurations all command line arguments are sent as one string rather than one string per argument. We need to parse each argument in the vector for sub arguments to be sure to catch any memory trace channel.
#rb martin.ridgers
#jira UE-188908
[CL 26253342 by johan berg in ue5-main branch]
On some platforms and configurations all command line arguments are sent as one string rather than one string per argument. We need to parse each argument in the vector for sub arguments to be sure to catch any memory trace channel.
#rb martin.ridgers
#jira UE-188908
[CL 26252800 by johan berg in ue5-main branch]
Also add a CSV_ prefix to csv named events so they can be distinguished from ordinary named events
#rb robert.millar
[CL 26144673 by ben woodhouse in ue5-main branch]
Remove checks for zero sized allocations in Trace's allocation wrappers leaving it to the allocator implementation to decide. Analysis already supports zero sized allocations (as long as they have unique addresses).
#rb ionut.matasaru
[CL 25947983 by johan berg in ue5-main branch]
When fixing the Get() I also discovered a couple of counters where the storage template type was incorrectly the same as the value template type. Fixed to use the atomic counter type given in counters header.
#jira
#rb jb
#rnx
[CL 25910796 by martin ridgers in ue5-main branch]
* SlowTask with dialog is the only case slowtask will broadcast the delegates
* Specific handling for case where StallDetector is added to scope while slowtask is present
#jira UE-179567
#rb brooke.hubert
[CL 25873878 by logan buchy in ue5-main branch]