Commit Graph

403 Commits

Author SHA1 Message Date
Catalin Dragoiu
2e1ff374d1 [Insights] Fix trace list not refresing when adding or deleting trace files on Linux.
#jira UE-137793
#rb Ionut.Matasaru Johan.Berg
#preflight 6214ba2f9e2201e21403e22c

[CL 19070550 by Catalin Dragoiu in ue5-main branch]
2022-02-22 05:54:56 -05:00
Martin Ridgers
c3874dabf2 Backed out 18978509
#rb jb
#rnx
#preflight 620d159a6202a22eedecf839

[CL 19014593 by Martin Ridgers in ue5-main branch]
2022-02-16 10:23:17 -05:00
Martin Ridgers
77907355f6 Reset active rota item count returning to do another pass over it.
Some rota items cannot make progress because their next event type is not known yet. They get moved to the end of the rota and the active count is decremented. There are two cases where the rota might be reprocessed from the beginning again; when an initial serial is set, and when the rota shows it has the next event. It is possible that on a subsequent pass through the rota, items that could not make progress previously might be able to this time. However, because the active count was left over from before they were excluded and OnData() would not do all the work it could possibly do.

All this only applies to old P2 traces.

#rb jb
#rnx
#preflight 620cd9a36202a22eeddb71ff

[CL 19014434 by Martin Ridgers in ue5-main branch]
2022-02-16 10:14:39 -05:00
Martin Ridgers
0e00b638ae Call OnData() one last time after reaching the end of the input trace stream.
Newer protocol traces consume as much data as they can before returning from OnData(). Older protocol support however can return will data still to process that will be continued on the next OnData() call. However, if the end of input stream has already been met the subsequent OnData() call is not made. The bug's always been present but hidden by a small input buffer.

#rb jb
#rnx
#preflight 620a5b00803d9066e67bf24d

[CL 18978509 by Martin Ridgers in ue5-main branch]
2022-02-14 08:55:31 -05:00
Martin Ridgers
4654c71f03 Restored early out once all analyzers have indicated they're no longer interested in further events.
#rb jb
#rnx
#preflight 620622d6b832ea70d8816819

[CL 18949967 by Martin Ridgers in ue5-main branch]
2022-02-11 04:03:07 -05:00
Martin Ridgers
42fe03350e Read much larger chunks of trace data to improve throughput and ease analysis engine's poor behaviour when it is waiting on a dependent event to arrive.
#rb jb
#rnx
#preflight 6204ce8d000261ff89f8933e

[CL 18933162 by Martin Ridgers in ue5-main branch]
2022-02-10 03:53:13 -05:00
Martin Ridgers
33432ea349 No-unity compile fix.
#rb trivial
#rnx
#jira ue-141616
#preflight none

[CL 18899943 by Martin Ridgers in ue5-main branch]
2022-02-08 02:53:01 -05:00
Martin Ridgers
6bee1a2eb6 Be explicit about the character size we're expecting.
If TCHAR happens to change to something other than a 16bit integer (e.g. because wchar_t is four bytes on a platform, or because the engine changes to UTF8), the analysis engine will no longer be able to read traces with char16_t-type strings.

#rb jb
#rnx
#preflight 61fd3091ed26b9fd9c7fcc0e

[CL 18862539 by Martin Ridgers in ue5-main branch]
2022-02-04 09:16:04 -05:00
Martin Ridgers
e50b917312 - Changed deleter of Buffer to be the class that allocated it
- Implemented move-constructor/assignment operator. Transport keeps an array threads, each of which of owns a FStreamBuffer instance. When Transport resizes this array, it copies items about. Because there are no move constructors, the compiler ends up cloning FStreamBuffers (via copy-constructing) and incorrectly deleting Buffer pointers still in use.
#rb jb
#rnx
#preflight 61fd3044e17efe76d1b6174c

[CL 18862467 by Martin Ridgers in ue5-main branch]
2022-02-04 09:07:30 -05:00
Martin Ridgers
ccba804191 Missing const on a less-than-operator
#rb trivial
#preflight trivial
#rnx

[CL 18769128 by Martin Ridgers in ue5-main branch]
2022-01-28 03:41:42 -05:00
Martin Ridgers
08a8b26425 CALLBACK can be defined elsewhere and cause compile errors in this file. Plus SHOUTY template parameters aren't conformant.
#rb jb
#rnx
#preflight 61f26eaf706ac5ea0cf520e6

[CL 18751696 by Martin Ridgers in ue5-main branch]
2022-01-27 05:21:14 -05:00
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