Commit Graph

205 Commits

Author SHA1 Message Date
martin ridgers
e2a92fd858 Suppress false-positive warning from PVS.
#rb trivial

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 18475356 via CL 18475359 via CL 18475364 via CL 18475497 via CL 18481188 via CL 18481212
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18481249 by martin ridgers in ue5-main branch]
2021-12-16 19:11:52 -05:00
martin ridgers
f8a66e2a8f Suppress false-positive warning from PVS.
#rb trivial

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 18475356 via CL 18475359 via CL 18475364 via CL 18475497 via CL 18481188
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18481212 by martin ridgers in ue5-release-engine-test branch]
2021-12-16 19:09:46 -05:00
Johan Berg
190178593b Consider if a buffer is in demand (someone asked for more data than it can provide) as a condition of processing more trace data.
While there may be data remaining in the buffer, there might not be enough to decode another transport packet. Thus it is not correct to only consider the remaining number of bytes in the buffer as a condition of continuing to process data. Fortunately there is a demain hint that is set when someone asks for more data than a stream reader can provide. This can be used to differentiate between data remaining in the buffer, and not being able to do anything more with it.

#rb martin.ridgers, johan.berg
#rm 5.0
#ushell-cherrypick of 18267675 by Martin.Ridgers
#jira UE-134430, UE-135475
#preflight 619cf19cf70a9e92db3b69f7

[CL 18269671 by Johan Berg in ue5-main branch]
2021-11-23 09:34:58 -05:00
martin ridgers
9744de072e OnData() returns Continue if there's more work to do.
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]
2021-11-09 03:54:34 -05:00
Martin Ridgers
e0d863df33 OnData() returns Continue if there's more work to do.
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

[CL 18101546 by Martin Ridgers in ue5-main branch]
2021-11-09 03:51:41 -05:00
martin ridgers
3a591fcde7 EStatus::Eof -> EStatus::EndOfStream
#rb jb
#rnx
#preflight 6166d6c2729ae3000106b493

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17799163 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v881-17767770)

[CL 17799167 by martin ridgers in ue5-release-engine-test branch]
2021-10-13 09:11:24 -04:00
Martin Ridgers
11b25f4dc8 EStatus::Eof -> EStatus::EndOfStream
#rb jb
#rnx
#preflight 6166d6c2729ae3000106b493

[CL 17799163 by Martin Ridgers in ue5-main branch]
2021-10-13 09:10:55 -04:00
martin ridgers
7b701d8fdf Analyze new-event events before anything else.
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]
2021-10-13 08:38:47 -04:00
Martin Ridgers
3c6b4a84f6 Analyze new-event events before anything else.
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

[CL 17798823 by Martin Ridgers in ue5-main branch]
2021-10-13 08:33:31 -04:00
martin ridgers
22550c15e7 Use sync points embedded in the transport to reliably detect gaps in trace event serial numbers that can occur when late connecting.
#rb jb
#rnx
#jira ue-127376
#preflight 615c577872597e0001cbd336

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17732457 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17732466 by martin ridgers in ue5-release-engine-test branch]
2021-10-06 02:21:13 -04:00
Martin Ridgers
b489faf63d Use sync points embedded in the transport to reliably detect gaps in trace event serial numbers that can occur when late connecting.
#rb jb
#rnx
#jira ue-127376
#preflight 615c577872597e0001cbd336

[CL 17732457 by Martin Ridgers in ue5-main branch]
2021-10-06 02:20:31 -04:00
martin ridgers
b03efab038 Add sync points into the trace stream.
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]
2021-10-05 09:32:12 -04:00
Martin Ridgers
ed784c2482 Add sync points into the trace stream.
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

[CL 17720409 by Martin Ridgers in ue5-main branch]
2021-10-05 09:30:32 -04:00
martin ridgers
c7d0af43ed Use 'Mask' instead of 'Range - 1'
#rb trivial
#rnx

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17706958 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17706963 by martin ridgers in ue5-release-engine-test branch]
2021-10-04 09:04:54 -04:00
Martin Ridgers
24289681a4 Use 'Mask' instead of 'Range - 1'
#rb trivial
#rnx

[CL 17706958 by Martin Ridgers in ue5-main branch]
2021-10-04 09:04:24 -04:00
martin ridgers
48b835041d Moved the heap update out of the loop and into a lambda.
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]
2021-10-04 09:00:20 -04:00
Martin Ridgers
2b3874d516 Moved the heap update out of the loop and into a lambda.
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

[CL 17706914 by Martin Ridgers in ue5-main branch]
2021-10-04 08:59:13 -04:00
martin ridgers
a866e49af3 Always process both classes of trace events each update
#rb none
#rnx

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17706844 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17706852 by martin ridgers in ue5-release-engine-test branch]
2021-10-04 08:49:53 -04:00
Martin Ridgers
3a51b54cf2 Always process both classes of trace events each update
#rb none
#rnx

[CL 17706844 by Martin Ridgers in ue5-main branch]
2021-10-04 08:49:19 -04:00
martin ridgers
050783fa29 Split OnNormalEvents() into two methods
#rb none
#rnx

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17706824 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17706834 by martin ridgers in ue5-release-engine-test branch]
2021-10-04 08:47:20 -04:00
Martin Ridgers
1f832492a9 Split OnNormalEvents() into two methods
#rb none
#rnx

[CL 17706824 by Martin Ridgers in ue5-main branch]
2021-10-04 08:46:40 -04:00
martin ridgers
8901b7c559 Use a less-than operator instead of a lambda for the event-desc heap
#rb none
#rnx

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17706783 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17706790 by martin ridgers in ue5-release-engine-test branch]
2021-10-04 08:40:06 -04:00
Martin Ridgers
6325b992e7 Use a less-than operator instead of a lambda for the event-desc heap
#rb none
#rnx

[CL 17706783 by Martin Ridgers in ue5-main branch]
2021-10-04 08:39:31 -04:00
martin ridgers
86f89167d0 Changed scope of a struct function to class.
#rb trivial
#rnx

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17706751 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17706774 by martin ridgers in ue5-release-engine-test branch]
2021-10-04 08:38:35 -04:00
martin ridgers
3237af65d0 int -> int32
#rb none
#rnx

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17706741 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17706752 by martin ridgers in ue5-release-engine-test branch]
2021-10-04 08:37:29 -04:00