Commit Graph

205 Commits

Author SHA1 Message Date
Martin Ridgers
8781f60ccf Changed scope of a struct function to class.
#rb trivial
#rnx

[CL 17706751 by Martin Ridgers in ue5-main branch]
2021-10-04 08:37:25 -04:00
martin ridgers
d240032e62 Renamed Index member to something a little more descriptive
#rb none
#rnx

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

[CL 17706746 by martin ridgers in ue5-release-engine-test branch]
2021-10-04 08:37:14 -04:00
Martin Ridgers
4e347969e1 int -> int32
#rb none
#rnx

[CL 17706741 by Martin Ridgers in ue5-main branch]
2021-10-04 08:36:03 -04:00
Martin Ridgers
b0cee6d2ee Renamed Index member to something a little more descriptive
#rb none
#rnx

[CL 17706729 by Martin Ridgers in ue5-main branch]
2021-10-04 08:34:45 -04:00
martin ridgers
8f0349f8d7 Always expect events to be contiguous.
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]
2021-10-04 08:26:55 -04:00
Martin Ridgers
829067e82d Always expect events to be contiguous.
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

[CL 17706661 by Martin Ridgers in ue5-main branch]
2021-10-04 08:25:02 -04:00
martin ridgers
9b25096e7f Keep track of whether an event had a one or two byte event UID
#rb jb
#rnx

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17706443 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v878-17703426)

[CL 17706463 by martin ridgers in ue5-release-engine-test branch]
2021-10-04 07:53:39 -04:00
Martin Ridgers
4a08fc7653 Keep track of whether an event had a one or two byte event UID
#rb jb
#rnx

[CL 17706443 by Martin Ridgers in ue5-main branch]
2021-10-04 07:52:24 -04:00
martin ridgers
adc5b6a1a9 Tolerance against situations where there was no trace event in between and enter/leave scope pair
#rb trivial
#rnx

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17706428 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v878-17703426)

[CL 17706440 by martin ridgers in ue5-release-engine-test branch]
2021-10-04 07:52:19 -04:00
Martin Ridgers
65c9c13d1b Tolerance against situations where there was no trace event in between and enter/leave scope pair
#rb trivial
#rnx

[CL 17706428 by Martin Ridgers in ue5-main branch]
2021-10-04 07:50:57 -04:00
martin ridgers
2df1076c8d Keep track of which reader in the transport a stream came from.
#rb none
#rnx

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17629516 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17629532 by martin ridgers in ue5-release-engine-test branch]
2021-09-27 08:49:36 -04:00
Martin Ridgers
b8b15bb103 Keep track of which reader in the transport a stream came from.
#rb none
#rnx

[CL 17629516 by Martin Ridgers in ue5-main branch]
2021-09-27 08:45:43 -04:00
martin ridgers
a48ced4fb5 Set serial to "ignored" for aux data and terminal events.
#rb jb
#rnx
#preflight 6151a7ff59c66a000102f381

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17629172 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17629174 by martin ridgers in ue5-release-engine-test branch]
2021-09-27 08:02:18 -04:00
Martin Ridgers
b4130ddc29 Set serial to "ignored" for aux data and terminal events.
#rb jb
#rnx
#preflight 6151a7ff59c66a000102f381

[CL 17629172 by Martin Ridgers in ue5-main branch]
2021-09-27 08:02:04 -04:00
martin ridgers
96027838ef Added an alignment to hint to the compiler to do the right thing.
#rb jb
#rnx
#preflight 6151a7ff59c66a000102f381

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17629153 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17629162 by martin ridgers in ue5-release-engine-test branch]
2021-09-27 08:00:26 -04:00
Martin Ridgers
3d9152c8b3 Added an alignment to hint to the compiler to do the right thing.
#rb jb
#rnx
#preflight 6151a7ff59c66a000102f381

[CL 17629153 by Martin Ridgers in ue5-main branch]
2021-09-27 07:59:57 -04:00
martin ridgers
657f070eac Consume unsynchronised events before sorting so it is only ever serial numbers that define the heap.
#rb jb
#jira ue-127376
#rnx
#preflight 6151a7ff59c66a000102f381

#ROBOMERGE-AUTHOR: martin.ridgers
#ROBOMERGE-SOURCE: CL 17629136 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17629141 by martin ridgers in ue5-release-engine-test branch]
2021-09-27 07:59:27 -04:00
Martin Ridgers
b6b67f90af Consume unsynchronised events before sorting so it is only ever serial numbers that define the heap.
#rb jb
#jira ue-127376
#rnx
#preflight 6151a7ff59c66a000102f381

[CL 17629136 by Martin Ridgers in ue5-main branch]
2021-09-27 07:58:46 -04:00
ionut matasaru
dfa47a98d8 [Insights] Fixed the processing of scoped timing events with 0 duration.
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]
2021-09-27 02:06:19 -04:00
ionut matasaru
dc3b57ac69 [Insights] Fixed the processing of scoped timing events with 0 duration.
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

[CL 17627582 by ionut matasaru in ue5-main branch]
2021-09-27 02:03:31 -04:00
ionut matasaru
0b79759b8d Fixed dispatch of events with auxiliary data for the new protocol version (5).
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]
2021-09-09 05:03:58 -04:00
ionut matasaru
619e6f4d4a Fixed dispatch of events with auxiliary data for the new protocol version (5).
Added bounds checking when reading (skipping) the metadata in front of trace file.

#rb Martin.Ridgers
#preflight 6139be0c48e4950001410cad

[CL 17469346 by ionut matasaru in ue5-main branch]
2021-09-09 05:01:09 -04:00
martin ridgers
7efe89bacc Explicitly terminate runs of aux data blocks with a well-known "aux data terminal" event. Previously a null byte was used. Each aux data block would write the null. Subsequent blocks would overwrite the prior block's null, effectively pushing the null to the end of a run aux data. However, if a different event was traced in the middle of the run it too would overwrite the null and corrupt the stream. With an explicit terminal event, structure can be recovered regardless of any multiplexing.
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]
2021-09-03 08:34:16 -04:00
Martin Ridgers
ac70c1cfc8 Explicitly terminate runs of aux data blocks with a well-known "aux data terminal" event. Previously a null byte was used. Each aux data block would write the null. Subsequent blocks would overwrite the prior block's null, effectively pushing the null to the end of a run aux data. However, if a different event was traced in the middle of the run it too would overwrite the null and corrupt the stream. With an explicit terminal event, structure can be recovered regardless of any multiplexing.
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

[CL 17419538 by Martin Ridgers in ue5-main branch]
2021-09-03 08:32:31 -04:00
martin ridgers
011e395cb7 Signed/unsigned mismatch
#rb jb
#rnx

#ROBOMERGE-SOURCE: CL 17417943 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17417944 by martin ridgers in ue5-release-engine-test branch]
2021-09-03 04:35:12 -04:00