[FYI] Steve.Robb
Original CL Desc
-----------------------------------------------------------------
TMap and TSet can now be declared as members with forward-declared key and value parameters.
KeyFuncs::KeyInitType and KeyFuncs::ElementInitType typedefs are no longer used and user-defined KeyFuncs do not need to provide them. Deprecated placeholders for these typedefs exist though they may not be defined exactly as they were before. A new KeyType typedef needs to be provided by custom KeyFuncs which don't already inherit from BaseKeyFuncs or TDefaultMapKeyFuncs.
KeyConstPointerType, KeyInitType, ValueInitType and ElementInitType typedefs have been deprecated across TMap, TSet and TSortedMap. Regular C++ parameter-passing semantics should be used instead (const T& Ref or T Value, depending on T).
Added missing FSetElementId::operator!=().
[FYI] steve.robb
#rb james.hopkin
[FYI] henrik.karlsson
#preflight 635a56c15d49a96f7b31938f
[CL 22850782 by graeme thornton in ue5-main branch]
KeyFuncs::KeyInitType and KeyFuncs::ElementInitType typedefs are no longer used and user-defined KeyFuncs do not need to provide them. Deprecated placeholders for these typedefs exist though they may not be defined exactly as they were before. A new KeyType typedef needs to be provided by custom KeyFuncs which don't already inherit from BaseKeyFuncs or TDefaultMapKeyFuncs.
KeyConstPointerType, KeyInitType, ValueInitType and ElementInitType typedefs have been deprecated across TMap, TSet and TSortedMap. Regular C++ parameter-passing semantics should be used instead (const T& Ref or T Value, depending on T).
Added missing FSetElementId::operator!=().
#rb james.hopkin
[FYI] henrik.karlsson
#preflight 635a56c15d49a96f7b31938f
[CL 22810695 by steve robb in ue5-main branch]
(with some modifications/cleanups)
We were using the non UAP libs before, which meant UE was trying to load the incorrect dependent VC runtime DLLs.
Binaries sourced from https://www.nuget.org/packages/WinPixEventRuntime/1.0.220124001
#jira UE-167019
#preflight 63537592cb31f106ce19c659
#rb Arciel.Rekman
[CL 22783295 by fieldsJacksonG in ue5-main branch]
There is no backstory behind the current sleep time that Trace uses (other than it being prime to try and avoid phase with other systems). It's largely a quick choice to originally getting things stood up that's never been revisited. The aspirations where that the update happens as infrequently as possible to avoid interference with the process being instrumented. Memory tracing is overly chatty now with up to four or five synchronised events per allocation. While a higher frequency worker thread takes away from game thread time, it reduces resource code and makes less bursty IO requests.
#rnx
#rb im
#jira ue-157559
#preflight 633409281003050806252d33
[CL 22232239 by martin ridgers in ue5-main branch]
I had originally planned to also use this in TraceAux for but it later became apparent that I didn't need it. A single point where the command line is checked is more robust nonetheless
#rb im
#rnx
#jira none
#preflight 633421f4dc213d2eadfd976a
[CL 22232181 by martin ridgers in ue5-main branch]
Something that is scoped by nature only pertains to the current thread and thus is implicitly synchronised. Furthermore, in memory-scope's case the alloc-free events are synchronised anyway which makes it redundant for the scoped events.
#rb im
#rnx
#jira none
#preflight 6332b8307b582f58abad24db
[CL 22203260 by martin ridgers in ue5-main branch]
Trace's thread can't be started before Trace has been initialised as some internals are not ready prior to that (i.e. the cache and the tail). TraceAux attempts to control the worker thread and indirectly started it too early when processing command line arguments. This would cause data races between the worker thread and initialisation.
#rb im
#rnx
#jira none
#preflight 63296dab0a4ad044de754095
[CL 22090244 by martin ridgers in ue5-main branch]
* Replaced OnTraceFileStarted delegate with OnTraceStarted
* Added OnTraceStopped delegate
* Both events pass if the recording was for a network or file type.
#rb Brian.Bekich, Martin.Ridgers
#preflight
[CL 22088546 by marc audy in ue5-main branch]
* Added trace file created callback: Useful to gather all trace files created during execution
* Added config option to disable or resize tail buffers via [Trace.Config]:TailSizeBytes
* Added config option for worker thread sleep time via [Trace.Config]:SleepTimeInMS
* Fixed init code so it never creates a workerthread in builds that don't support multithreading
#rb Martin.Ridgets, Ionut.Matasaru
[CL 22013173 by louisphilippe seguin in ue5-main branch]
Benchmarks/tests:
Using scope names from a large project (~220K string names), the average cost of adding an entry to TMap improved 2.4x (from 1.2us to 0.5us) and worst case improved 3.8x (from 80ms to 21ms).
Using Lyra (up to 5000 strings per TMap) the worst case improved 3.6x (from 11ms to 3ms).
#jira UE-147219
#rb Catalin.Dragoiu
#preflight 6315e02b7562a90dfa9fa055
[CL 21790925 by ionut matasaru in ue5-main branch]