Commit Graph

172 Commits

Author SHA1 Message Date
ben woodhouse
8f18ac41bd CsvToSvg 3.62 - Improve visual clutter due to too many events:
- Merge displayed event names if they're too close together, respecting priority (priority is implicit based on param order)
- Display nearby event names in an interactive panel alongside stats
- Truncate displayed events on the graph to 32 characters
Note: you can pass -showAllEvents to disable the new merging/truncation behaviour

[CL 34447676 by ben woodhouse in ue5-main branch]
2024-06-17 20:01:58 -04:00
ben woodhouse
cebfe25fa1 PRT (minor) Fix mapOverlaySummary logging
[CL 34446622 by ben woodhouse in ue5-main branch]
2024-06-17 19:41:57 -04:00
tyler staples
f4a061437b PRT - Switch error log to stderr
Missed this one in the original pass.

[FYI] ben.woodhouse
#rnx

[CL 34386520 by tyler staples in ue5-main branch]
2024-06-14 18:03:32 -04:00
ben woodhouse
a4f941b75f PerfReportTool 4.237.3: Variable Resolution and graceful failure improvements/bugfixes
- Fix a bug in variable resolution for array variables where the whole field would be replaced instead of just the variable
- Replace variables which fail to resolve with an empty string instead of leaving the variable name in place. This is easier for calling code to detect and handle
- Add a graceful failures in a few places to allow us to generate a report if variables fail to resolve

[CL 34155759 by ben woodhouse in ue5-main branch]
2024-06-06 09:53:59 -04:00
ben woodhouse
e7586403de Make padding trailing digits optional using the -sortTrailingDigitsAsNumeric param since it can cause issues
[FYI] tom.holmes

[CL 34062555 by ben woodhouse in ue5-main branch]
2024-06-03 07:29:14 -04:00
tyler staples
2d92f41356 PRT - Write error logs to stderr instead of stdout.
#rnx

[CL 33986372 by tyler staples in ue5-main branch]
2024-05-29 16:50:21 -04:00
ben woodhouse
143b9b0331 PerfReportTool 4.237.0 - Make summary table sorting smarter. If a column with string values includes an integer suffix, left pad with zeroes for sorting purposes
[CL 33974852 by ben woodhouse in ue5-main branch]
2024-05-29 11:20:53 -04:00
tyler staples
d3cfd48be4 PRT - Guard against divide by 0 in BoundedStatValuesSummary
#rnx

#rb ben.woodhouse, kaleb.morris

[CL 33675340 by tyler staples in ue5-main branch]
2024-05-15 19:51:49 -04:00
tyler staples
c0dee276eb PRT - Fix null object exception in bounded summary stat table.
#rnx
#rb matt.harris

[CL 33664264 by tyler staples in ue5-main branch]
2024-05-15 13:55:32 -04:00
matt harris
65b80a11bb PerfReportTool v4.236.0 - Added Wildcard Stat support to BoundedStatSummary. This allows ReportTypes.xml to specify '*' for generated columns in a summary table. The tool will now attempt to match that wildcard to all possible stats, generating new columns for each. Wildcard symbol needs to be provided in the column name, summaryState name and stat name, or it will skip that stat name. Supports otherStat as well so can be used with the Ratio formula.
#rb ben.woodhouse, kaleb.morris
#tests Built in Release and tested both standalone and via PRS
[RN] PerfReportTool v4.236.0 Added Wildcard Stat support to BoundedStatSummary. This allows ReportTypes.xml to specify '*' for generated columns in a summary table
[FYI] richard.smith

[CL 33652701 by matt harris in ue5-main branch]
2024-05-15 04:30:44 -04:00
ben woodhouse
cb37d31a43 PerfReportTool 4.235.0. Add hideInDetailedReports attribute to summaries allowing them to be suppressed. This is useful if you only want to emit summary table row data for a given summary
[CL 32185090 by ben woodhouse in ue5-main branch]
2024-03-12 13:33:03 -04:00
ben woodhouse
f27a3c8875 PerfReportTool 4.234.0
- Add support for startEvent and stopEvent in graphs
- Add requiredEvents field for graphs so we can suppress graphs based on whether particular events are present

[CL 32016929 by ben woodhouse in ue5-main branch]
2024-03-05 08:03:21 -05:00
ben woodhouse
d4d2df2b83 PerfReportTool 4.233.0 : Unify wildcard handling for summary tables so it correctly matches mid-string wildcards. Also optimize using a binary search
[CL 31979848 by ben woodhouse in ue5-main branch]
2024-03-03 10:27:37 -05:00
ben woodhouse
1f59f63a96 PerfReportTool 4.232.0: Add support for stat type qualifiers in summary tables so we can identify stats by their type to avoid ambiguity, e.g [meta]deviceprofile. Prefixes are :
[metric] SummaryTableMetric
[csv] CsvStatAverage
[meta] CsvMetadata
[toolmeta] ToolMetadata

[CL 31978791 by ben woodhouse in ue5-main branch]
2024-03-02 20:24:47 -05:00
ben woodhouse
90a828c869 PerfReportTool: Also output the elementType in the header tooltip (E.g CsvMetadata, SummaryTableMetric etc)
[CL 31599556 by ben woodhouse in ue5-main branch]
2024-02-17 07:08:25 -05:00
ben woodhouse
b8f8c1b7b2 PerfReportTool: When stat names are remapped, display the original name as a tooltip
[CL 31578316 by ben woodhouse in ue5-main branch]
2024-02-16 15:42:57 -05:00
ben woodhouse
6b06bd7eaa PerfReportTool 4.230.0 - Add support for variables which can be used outside of individual CSV reporting. Any variable declared in a variableSet without a metadata query can be used in this way. This is useful if we want to access variables in SummaryTable definitions for example. Also strip whitespace in summary table row sort and filter lists
[CL 30955693 by ben woodhouse in ue5-main branch]
2024-01-27 11:28:43 -05:00
tyler staples
ed483b845c PRT - Update help text to include new dynamic graph args.
Also removed deprecated externalGraphs arg

#rnx

#rb ben.woodhouse

[CL 30719102 by tyler staples in ue5-main branch]
2024-01-19 12:23:26 -05:00
ben woodhouse
a941e9c6bf PerfReportTool: Minor tweaks to heading formatting for better use of vertical space. Graphs now use h3 instead of h2
[CL 30718644 by ben woodhouse in ue5-main branch]
2024-01-19 12:12:16 -05:00
ben woodhouse
30d7164b7e PerfReportTool 4.29.0 - Detailed report improvements: Add a top level nav bar with buttons to expand and collapse all sections and jump to the graphs. Clicking on a graph in the list now expands it
[CL 30715173 by ben woodhouse in ue5-main branch]
2024-01-19 09:51:48 -05:00
tyler staples
a718fe697a PRS - Dynamically load graphs in generated reports
Updates the full report generation to optionally embed a url to the csvtosvg end point to create and display graphs on demand rather than generating them offline. This reduces the size of the reports by about 250x.

+ Updated GetCsvToSvgArgs to have different output formats (command line, url).
+ Added -useEmbeddedGraphUrl arg to specify inserting the url instead of fully inlining the graph. This is accompanied by -embeddedGraphUrlRoot to specify the base url to target.
+ Removed the concept and handling of external graphs as the code path wasn't used and didn't work.
+ Refactored GenerateReport to create a list of CsvSvgInfo objects to better handle the different formats (url, inline).
+ Updated command line handling to decoded − into '-' to fix an issue where negative numbers were treated as arguments.
+ Remove giant graphs from ReportTypes.xml as they're unused.

#rnx

#rb ben.woodhouse
#tests prt compare tests, manual testing

[CL 30677752 by tyler staples in ue5-main branch]
2024-01-17 22:10:33 -05:00
ben woodhouse
b21a22c2b5 PerfreportTool 4.227.1 : Fix extraLinks summary null dereference. Add utf-8 charset to meta
[CL 30664963 by ben woodhouse in ue5-main branch]
2024-01-17 14:32:03 -05:00
ben woodhouse
3ab21db8c2 PerfReportTool 4.227.0
Make summaries and graphs collapsible. Summaries can start collapsed if specified in xml via the "collapsed" attribute.
Add a new HtmlSection helper class to assist with this.
We may later want to extend this functionality to add a top level hierarchy to the report, allowing us to have high level sections with multiple summaries in them.

[FYI] tyler.staples

[CL 30660748 by ben woodhouse in ue5-main branch]
2024-01-17 11:57:59 -05:00
ben woodhouse
130703b8a1 PerfReportTool: Optimize commandline parsing. Some args can be very long when response files are passed so use a stringbuilder for concatenation. Commandline parsing could take 40s for a summarytable with 3000 PRC entries before.
#rb tyler.staples

[CL 30624170 by ben woodhouse in ue5-main branch]
2024-01-15 16:21:32 -05:00
ben woodhouse
477d1387ed PerfReportTool 4.226.0: Add a stat budgets summary type
This summary type sums up multiple CsvStat averages and emits the total as a SummaryTableMetric named metricName (if specified).
- Budget colors can optionally be applied to individual stats and/or the total via colourThresholds and colourThresholdsTotal nodes
- If emitStatMetrics is enabled, each stat will emit a SummaryTableMetric, named metricName/strippedStatName (with the same value as the existing CsvStatAverage element if it exists)
- Budget coloring is applied to existing CsvStatAverage elements.
- The budget for a given stat is assumed to be the first element of its colourThresholds. This value is displayed in the report
- A totalStatName attribute can be specified if a total stat already exists. If so, an "other" value will be output to the detailed summary table with the unaccounted value
- If the showTotal attribute is set to false (default: true), the total won't be shown in the detailed report

Other changes:
 - Always read all CSV stat averages, regardless of whether -readAllStats is specified. -readAllStats is only now used to determine whether to show CSV stat averages in a summary table

Example:
	<summary type="statBudgets" metricName="GTGameplay" title="Gamethread - Gameplay Budgets" hideStatPrefix="Exclusive/GameThread/" emitStatMetrics="1">
		<colourThresholdsTotal>3,4,5,6</colourThresholdsTotal>
		<colourThresholds stat="Exclusive/GameThread/Buildings">1,2,3,4</colourThresholds>
		<stats>Exclusive/GameThread/Buildings,Exclusive/GameThread/Camera,Exclusive/GameThread/Curie,Exclusive/GameThread/Network*,Exclusive/GameThread/PlayerController*,Exclusive/GameThread/WorldTickMisc,Exclusive/GameThread/FlushLatentActions,Exclusive/GameThread/Tickables,Exclusive/GameThread/SyncBodies,Exclusive/GameThread/CharPhys*,Exclusive/GameThread/Character*,Exclusive/GameThread/FortPawnTickSubsystem,Exclusive/GameThread/SignificanceManager,exclusive/gamethread/vehicle*,Exclusive/GameThread/AbilityTasks,Exclusive/GameThread/Actor*,Exclusive/GameThread/HandleRPC,Exclusive/GameThread/RepNotifies,Exclusive/GameThread/TickActors,Exclusive/GameThread/Pickups,Exclusive/GameThread/ProjectileMovement,Exclusive/GameThread/TimelineComponent,Exclusive/GameThread/TimerManager,Exclusive/GameThread/FortTrainManager</stats>
	</summary>
[FYI] andrew.ladenberger, michael.short

[CL 30329557 by ben woodhouse in ue5-main branch]
2023-12-14 15:20:48 -05:00