High Level Vision:
https://docs.google.com/document/d/13R4nJ2UNMJZlf6JCjYssFMSY-5CrURazE4tqxW77yBw/edit#heading=h.bpycydduomgi
Details of changes:
Removed "most" references to FStudioAnalytics from Engine code.
Deprecated use of FStudioAnalytics::FireEvent_Loading(), will deprecate FStudioAnalytics in due course.
Added FAnalyticsFlowTracker to the engine code base based on the flow system used in UEFN.
Added explicit DDC Resource and DDC Summary events to track DDC usage by resource type.
Moved common Editor analytics callbacks into EpicStudioAnalytics plugin
Added a variety of delegates to the engine code to so that analytics capture can be defined in the plugin code or within the game code instead of the engine code ( eg. load map, editor initialization, cooking, slow task )
Added JSON serializer for analytics events to provide facility to capture analytics in restriced environments ( eg. UEFN CookWorker ). Though this fetaure is not enabled yet.
This will temporarily break Loading and Cooking analytics for Lyra, ShooterGame, CitySample but not Fortnite or UEFN. The remainder will need to be "fixed up" in UE5/Main once the changes have propogated (stakeholders have been notified)
[FYI] zousar.shaker, devin.doucette, eric.knapik, francis.hurteau
#rb wes.hunt
#preflight 643e45150a5a4b944e603be8
[CL 25083739 by mark lintott in ue5-main branch]
- Fixed a crash when HttpCacheStore is used without DesktopPlatform.
- Fixed GetOidcAccessToken and GetOidcTokenStatus failing for targets with no Intermediate directory.
- Added DesktopPlatform to DerivedDataTool to allow it to use HttpCacheStore with OIDC.
#rb Zousar.Shaker
[FYI] Dan.Engelbrecht
[CL 25072527 by devin doucette in ue5-main branch]
- Local storage flag to be inferred by whether the service is run locally or set explicitly in config.
- Remote storage flag to be inferred by whether the service is NOT run locally or set explicitly in config.
- ReadOnly storage flag to be set explicitly in config (defaults to true).
#rb devin.doucette
[CL 24822351 by zousar shaker in ue5-main branch]
Format changes will not have any impact on existing telemetry or analytics dashboards
#rb trivial
[FYI] devin.doucette, zousar.shaker
#preflight 64218253973e6096708e6714
[CL 24802042 by mark lintott in ue5-main branch]
[FYI] Devin.Doucette
Original CL Desc
-----------------------------------------------------------------
Added PlatformManualResetEvent
This private abstraction is used to signal a single waiting thread to wake.
This first implementation is only specialized for Microsoft platforms. Other platforms will be specialized later.
#preflight 6418bc6a5d3e25354f1a2a5b
#rb Andriy.Tylychko, Zousar.Shaker
[CL 24773885 by bob tellez in ue5-main branch]
bool FCacheBucketOwner::operator==(const FCacheBucketOwner& Other) is new
bool FCacheBucketOwner::operator==(const FCacheBucket& Other) is what it would find ambiguous
#preflight 6419f58b25389270b78540dd
#jira none
#rb none
[CL 24759829 by nick edwards in ue5-main branch]
This is a one-byte manual-reset event that can replace that use case for the experimental FLazyEvent.
#rb Zousar.Shaker
[CL 24756514 by devin doucette in ue5-main branch]
This is an event that provides a mechanism for avoiding a race between waiting and signaling through the use of a signal count token.
#preflight 641b44cabb1320be41aad497
#rb Zousar.Shaker
[CL 24756487 by devin doucette in ue5-main branch]
This was not possible on C++14 and is possible now due to guaranteed copy elision in C++17.
This will break backward compatibility when WriteToString was used as a type or in a context where it would be copied.
#preflight 640a0460af3fc3529234c216
#rb Matt.Peters
[CL 24583299 by devin doucette in ue5-main branch]