- Enabled cpu scope tracing of object names (blueprints, functions) by default when app is not running as a commandlet (still requires "cpu" trace channel and -statnamedevents to be enabled). Enabling AssetLoadTime trace channel will enable tracing of object names also in commandlets (ex. cooking).
- Improved performance when tracing "statnamedevents" cpu scopes (by using a new optimized code path that uses an FName stat id together with a TCHAR* descriptive name).
#jira FORT-532106
#rb Matt.Peters
[CL 26814181 by ionut matasaru in 5.3 branch]
Also add a CSV_ prefix to csv named events so they can be distinguished from ordinary named events
#rb robert.millar
[CL 26144662 by ben woodhouse in 5.3 branch]
* Moved dllexport from type to methods/staticvar. This improves compile times, memory and performance in dll builds
#rb
[CL 26081870 by henrik karlsson in 5.3 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]
* Removed internal state tracking connection status. This was causing many problems because connections could be severed inside TraceLog without TraceAuxiliary knowing about it causing a mismatch in state.
* Wrapped trace destination and connection type state in struct and added guards for thread safety.
* Deprecated method to access trace destination as char array.
#preflight 647721f9947ff6973c8b4bb0
[CL 25699206 by Johan Berg in ue5-main branch]
Exposes a variant of the the IsConnected method that also outputs the current session and trace guid. Also prints the current session and trace guids in the status message.
#rb martin.ridgers
#rnx
#preflight 6458b30e9f47682963d55ad4
[CL 25368367 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]
- Originally was added in CL24689238 but had to be removed for Static Analysis violation of an external file including a non-external file.
- Added EIGEN_UE_OVERRIDE_ALLOCATORS that define EIGEN_STD_MALLOC and EIGEN_STD_FREE.
- Moved FORCE_ANSI_ALLOCATOR from UMemoryDefines to Build.h because it needs to be defined earlier, also this seems to be where other defines like this live.
- Also tried to use stubs I made in Core but it had problems with CORE_API.
- Some builds were having problems with order and CORE_API was being defined to DLLIMPORT but DLLIMPORTwasn't always defined yet.
- New version actually follows the pattern used to override the new operators by using the module boilerplate macro.
- This will insert a copy of the stub function into each module which is fine since there will only be one version of FMemory.
#tests Built pretty much all targets (as non-unity also). Tested that allocations were going through the stub in Win64. Did as many Horde targets as I could.
[REVIEW] [at]dmytro.vovk [at]robert.millar [at]alex.nischwitz
[CL 24772972 by leigh mcrae 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 a package field to the asset metadat scope, in addition to the existing asset name and object class fields.
#rb ionut.matasaru, josie.yang
#jira UE-157322
#preflight 64130a87a62aae9c87fa4c19
#preflight 641321e2760ee6afab7829b1
[CL 24670895 by Johan Berg 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]