If there is more data available but none of the OnData() steps have indicated the they require more data, then OnData() can return Continue. This will allow the outer machine to make more progress, and ensure that smaller traces (where a single read can contain all sync points) makes progress.
#rb jb
#rnx
#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 18101546 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v889-18060218)
[CL 18101559 by martin ridgers in ue5-release-engine-test branch]
Previously new-event and important events were collected in a pass together. However, because the new-events hadn't been processed yet, the important event stream was unintelligable until the next update. This would accellerate normal events past important ones that they might depend upon.
#rb jb
#rnx
#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17798823 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v881-17767770)
[CL 17798876 by martin ridgers in ue5-release-engine-test branch]
These will help analysis know where the world was sampled at runtime in relation to the stream of data it is receiving. With these discrete points in time it is then possible to reason about gaps in events' serial numbers that can occur when late-connecting.
#rb jb
#jira ue-127376
#rnx
#preflight 615aedb7fe00590001c1440f
#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17720409 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)
[CL 17720457 by martin ridgers in ue5-release-engine-test branch]
The update is also done after dispatching events to analyzers now instead of before so the Stream object is valid for the entire scope
#rb none
#rnx
#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17706914 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)
[CL 17706932 by martin ridgers in ue5-release-engine-test branch]
Previously it was assumed that the earliest known event was a good starting point, but in reality analysis never has a complete view of the world to be able to make any decisions about the data it is receiving. New data could easily arrive that invalidates any assumptions. Now nothing is assumed. Proceed only when one particular event is encountered. Note that is not quite complete - it doesn't cover holes that can occur early in the data stream.
#rb jb
#jira ue-127376
#rnx
#preflight 615aec4ce3b24d0001496bb3
#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17706661 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)
[CL 17706666 by martin ridgers in ue5-release-engine-test branch]
Description of the problem: Very short scopes for cpu timing events with metadata can have a duration of 0. In this case the enter/leave events are incorrectly processed. The "enter" scope event is processed as it has a relative timestamp > 0, but the "leave" event is ignored in analysis as it will have a timestamp == 0, some as scoped events without time. It results in a broken hierarchy of cpu timing events!
The fix ensures the scoped events with 0 duration will still have a valid timestamp (in this case the "leave" event will have same timestamp as "enter" event, as expected), so those "leave scope" events are not ignored anymore by the cpu profiler analyzer (which still needs to ignore scoped events without time).
#rb Martin.Ridgers
[FYI] Catalin.Dragoiu
#ROBOMERGE-AUTHOR: ionut.matasaru
#ROBOMERGE-SOURCE: CL 17627582 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)
[CL 17627584 by ionut matasaru in ue5-release-engine-test branch]
Added bounds checking when reading (skipping) the metadata in front of trace file.
#rb Martin.Ridgers
#preflight 6139be0c48e4950001410cad
#ROBOMERGE-AUTHOR: ionut.matasaru
#ROBOMERGE-SOURCE: CL 17469346 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17469379 by ionut matasaru in ue5-release-engine-test branch]
Serial numbers are no longer perscriptive (i.e. there can be gaps).
Normal trace events' headers are 50% smaller.
#jira ue-114532
#rb johan.berg
#preflight 6131df894f2c7c00016bf83c
#ROBOMERGE-SOURCE: CL 17419538 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17419569 by martin ridgers in ue5-release-engine-test branch]