Previously we used project name rather than app name if it was available. However app name is needed to look up target binary is certain cases.
#rb ionut.matasaru
#jira UE-138503
#preflight 6437fa7feb6cd0e63af26946
[CL 25023785 by Johan Berg in ue5-main branch]
- Detect duplicate start/stop capture requests. If a Start or Stop request is already pending as the next command in the queue, disregard repeat requests and emit a warning. This avoids an edge case where duplicate EndCapture calls would cause old metadata to be emitted
- Add IsEndCapturePending() method so calling code can check if there's a pending EndCapture before calling EndCapture (instead of just checking IsCapturing, which will be true if an EndCapture is pending).
[CL 25018952 by ben woodhouse in ue5-main branch]
- Minimize duration of locks around FStallDetector and FStallDetectorStats instances
- Remove some public access to FStallDetector and FStallDetectorStats instances and synchronization around them
- Remove Stat from UE::FStallDetectorStats::TabulatedResult for thread safety in case of stat lifetime ending (e.g. thread shutdown)
- Fire callbacks & call ReportStall outside of locks
- Add backtrace to stall detected callback
- Only fire 'stall detected' from background thread, only fire 'stall completed' from stalling thread
- Change delegates to threadsafe versions
- Add checks for length of stall scope name
- Execute ReportStall in a task
#rb francis.hurteau,logan.buchy
#jira UE-179587
[CL 24920944 by robert millar in ue5-main branch]
* The subsystem adds a new toolbar widget in the level editor which changes to a notified state when a stall is detected.
* Clicking the widget brings up a tab with a table of the detected stall history. Each stall has some information that can be copied to a clipboard for users to dump the data into a issue ticket or chat message.
* NOTE: Currently iconography is all placeholders. Need UX pass to improve.
#jira UE-174529
#rb Brooke.Hubert
#preflight 6414f70632723d4a2081491c
#preflight 64189fb032723d4a204d20ac
[CL 24724541 by logan buchy in ue5-main branch]
Add the argument to many but not all callsites.
#jira FORT-578919
#rnx
#rb Devin.Doucette
#preflight 6414ca9d691c5ebc15b30410
[CL 24696053 by Matt Peters in ue5-main branch]
Used CVars to avoid pulling the ApplicationCore module into Core.
#preflight 64103a54af3fc35292fccef4
#preflight 64105acfc41a0a2a771b867e
[CL 24634160 by joakim trossvik in ue5-main branch]
By default csv metadata persists between captures which may be problematic if capturing different modes that have specific metadata since prior captures can pollute future ones.
This change adds a CSV_NON_PERSISTENT_METADATA macro which sets metadata that is cleared once the current capture ends.
For sake of review I've included the change to the FortLevelSaveComponent to update the creative metdata to use this macro. This will be submitted separately though.
#rb ben.woodhouse
[FYI] andrew.ladenberger
[CL 24436772 by tyler staples in ue5-main branch]
When creating the custom scope type, a check if the channel is active was missing causing the scopes to emit events regardless if the metadata channel was active.
#rb ionut.matasaru
#jira UE-178464
#preflight 63f8b471dd78dd50f66bbd55
[CL 24421297 by Johan Berg in ue5-main branch]
When launching a task, the metadata stack is captured at the calling site, and reapplied as a scope as soon as the task begins to execute. The macro that performed this reapplication was misnamed and didn't imply that it was actually creating a scope. This change removes the macro and adds a custom scope type which can be embedded in the inherited context for the task.
#rb ionut.matasaru, andriy.tylychko
#jira UE-167069
#preflight 63e64e153c247ccd13e986e4
[CL 24118353 by Johan Berg in ue5-main branch]
* Made code compatible with modules/header units. This includes following things:
* Removed static in front of global functions/variables (static indicates it is hidden outside of module/header unit which is not what many places want...)
* Moved dllexport from type to methods in order to get dllexport of static constexpr fields. This is supposed to work according to microsoft but since it is a good change I don't mind doing it anyway)
* static constexpr -> static constexpr inline for member variables and methods (this makes them available outside module/headerunit)
* Added HEADER_UNIT_IGNORE markup to includes that are circular
* Added HEADER_UNIT_SKIP to files that can't compile by themselves
#preflight 63e2aeba3c44c83044bfcc75
#rb steve.robb
[CL 24066986 by henrik karlsson in ue5-main branch]