Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(623)

Issue 854833003: Added GPU performance metrics. (Closed)

Created:
5 years, 11 months ago by David Yen
Modified:
5 years, 10 months ago
CC:
chromium-reviews, telemetry+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Added GPU performance metrics. Metrics have been added for the GPU using the GPU Tracer. Currently we record the average, max, and stddev ms for each category per frame for the following categories: render_compositor: Both CPU/GPU side spent on the render compositor. browser_compositor: Both CPU/GPU spent on browser compositor. total: Both CPU/GPU and total frame time spent in renderer. swap: Time between swaps, total FPS. R=vmiura@chromium.org BUG=None Committed: https://crrev.com/dfb418e345ac741c380a5570b386a5bfad1c6115 Cr-Commit-Position: refs/heads/master@{#313419}

Patch Set 1 #

Patch Set 2 : skip device metrics instead of filling 0 for unsupported devices #

Patch Set 3 : Added test for filtering out context_ids #

Patch Set 4 : Removed gpu_device check in gpu_times_unittest #

Total comments: 24

Patch Set 5 : Modified metric names, utilize thread_duration when available #

Patch Set 6 : Simplified gpu_timeline using new SwapBuffer trace #

Total comments: 1

Patch Set 7 : Standardized names, added frame times #

Patch Set 8 : Replaced gpu_times pagetest with standard timeline_based_measurement #

Total comments: 8

Patch Set 9 : Fixed help for TBM Options #

Total comments: 2

Patch Set 10 : Fixed bad merge, moved metrics object creation #

Patch Set 11 : Get Metrics callback now returns a list of metrics #

Total comments: 4

Patch Set 12 : Fixed help string, added VerifyNonOverlappedRecords #

Total comments: 2

Patch Set 13 : Merged with master #

Patch Set 14 : Fixed issue with metrics callback called multiple times per metric #

Total comments: 12

Patch Set 15 : Handle empty flags case #

Patch Set 16 : Fixed flags variable name #

Patch Set 17 : Fixed typos #

Patch Set 18 : Added better assert message #

Patch Set 19 : reverted accidental file modification #

Patch Set 20 : Added early assert to check for valid overhead level #

Patch Set 21 : Fixed unit test #

Patch Set 22 : Renamed total frame time to swap frame time #

Patch Set 23 : Fix swap name in unit tests #

Total comments: 14

Patch Set 24 : Fixed nits #

Patch Set 25 : CPU and GPU frame times are calculated separately now #

Patch Set 26 : Updated comments, ensure lack of thread_duration becomes 0 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+687 lines, -54 lines) Patch
A tools/perf/benchmarks/gpu_times.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +37 lines, -0 lines 0 comments Download
A tools/perf/metrics/gpu_timeline.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +234 lines, -0 lines 0 comments Download
A tools/perf/metrics/gpu_timeline_unittest.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +313 lines, -0 lines 0 comments Download
M tools/telemetry/telemetry/web_perf/timeline_based_measurement.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 8 chunks +83 lines, -45 lines 0 comments Download
M tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 chunks +16 lines, -9 lines 0 comments Download
M tools/telemetry/telemetry/web_perf/timeline_interaction_record.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +4 lines, -0 lines 0 comments Download

Messages

Total messages: 49 (5 generated)
David Yen
I've added the telemetry data for the toplevel traces now. The one thing I was ...
5 years, 11 months ago (2015-01-15 17:19:04 UTC) #1
vmiura
epenner@, mind taking a look? These are similar to thread_times.
5 years, 11 months ago (2015-01-15 18:50:14 UTC) #3
epenner
Cool! At a high level, it seems like both this and thread_times are solving a ...
5 years, 11 months ago (2015-01-16 01:17:59 UTC) #4
vmiura
https://codereview.chromium.org/854833003/diff/60001/tools/perf/metrics/gpu_timeline.py File tools/perf/metrics/gpu_timeline.py (right): https://codereview.chromium.org/854833003/diff/60001/tools/perf/metrics/gpu_timeline.py#newcode16 tools/perf/metrics/gpu_timeline.py:16: FRAME_END_MARKER = ('gpu', 'GLES2DecoderImpl::DoSwapBuffers') We should be able to ...
5 years, 11 months ago (2015-01-16 01:41:15 UTC) #5
David Yen
https://codereview.chromium.org/854833003/diff/60001/tools/perf/metrics/gpu_timeline.py File tools/perf/metrics/gpu_timeline.py (right): https://codereview.chromium.org/854833003/diff/60001/tools/perf/metrics/gpu_timeline.py#newcode16 tools/perf/metrics/gpu_timeline.py:16: FRAME_END_MARKER = ('gpu', 'GLES2DecoderImpl::DoSwapBuffers') On 2015/01/16 01:41:15, vmiura wrote: ...
5 years, 11 months ago (2015-01-16 22:58:04 UTC) #6
David Yen
Utilizing the new SwapBuffer traces which goes through both the gpu service & device, lots ...
5 years, 11 months ago (2015-01-20 19:37:26 UTC) #7
David Yen
On 2015/01/20 19:37:26, David Yen wrote: > Utilizing the new SwapBuffer traces which goes through ...
5 years, 11 months ago (2015-01-23 00:07:22 UTC) #8
vmiura
I tried out the measurement. I'm not sure if I did something wrong. Some notes ...
5 years, 11 months ago (2015-01-23 01:49:48 UTC) #9
vmiura
It would be great to get all the actual cpu & gpu frame times as ...
5 years, 11 months ago (2015-01-23 01:52:31 UTC) #10
nednguyen
https://codereview.chromium.org/854833003/diff/100001/tools/perf/measurements/gpu_times.py File tools/perf/measurements/gpu_times.py (right): https://codereview.chromium.org/854833003/diff/100001/tools/perf/measurements/gpu_times.py#newcode15 tools/perf/measurements/gpu_times.py:15: class GPUTimes(page_test.PageTest): Why not adding this metrics to timeline_based_measurement?
5 years, 11 months ago (2015-01-23 02:45:27 UTC) #12
vmiura
Ahh, ignore the issue about bad values. Seems I didn't have the necessary patch for ...
5 years, 11 months ago (2015-01-23 03:29:50 UTC) #13
David Yen
On 2015/01/23 02:45:27, nednguyen wrote: > https://codereview.chromium.org/854833003/diff/100001/tools/perf/measurements/gpu_times.py > File tools/perf/measurements/gpu_times.py (right): > > https://codereview.chromium.org/854833003/diff/100001/tools/perf/measurements/gpu_times.py#newcode15 > ...
5 years, 11 months ago (2015-01-23 22:20:10 UTC) #14
nednguyen
On 2015/01/23 22:20:10, David Yen wrote: > On 2015/01/23 02:45:27, nednguyen wrote: > > > ...
5 years, 11 months ago (2015-01-23 22:23:28 UTC) #15
David Yen
On 2015/01/23 01:52:31, vmiura wrote: > It would be great to get all the actual ...
5 years, 11 months ago (2015-01-23 22:24:20 UTC) #16
David Yen
On 2015/01/23 22:24:20, David Yen wrote: > On 2015/01/23 01:52:31, vmiura wrote: > > It ...
5 years, 11 months ago (2015-01-23 23:42:06 UTC) #17
nednguyen
https://codereview.chromium.org/854833003/diff/140001/tools/perf/benchmarks/gpu_times.py File tools/perf/benchmarks/gpu_times.py (right): https://codereview.chromium.org/854833003/diff/140001/tools/perf/benchmarks/gpu_times.py#newcode15 tools/perf/benchmarks/gpu_times.py:15: return gpu_timeline.GPUTimelineMetric() This mean your benchmark will compute gpu_timeline ...
5 years, 11 months ago (2015-01-23 23:58:13 UTC) #18
nednguyen
+Ben: I think this patch will make your work to migrate thread_times to TBM possible.
5 years, 11 months ago (2015-01-24 00:03:57 UTC) #20
nednguyen
https://codereview.chromium.org/854833003/diff/160001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py File tools/telemetry/telemetry/web_perf/timeline_based_measurement.py (right): https://codereview.chromium.org/854833003/diff/160001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py#newcode118 tools/telemetry/telemetry/web_perf/timeline_based_measurement.py:118: metric = self._get_metric_from_metric_type_callback(metric_type) Can you make it so that ...
5 years, 11 months ago (2015-01-24 00:15:46 UTC) #21
David Yen
https://codereview.chromium.org/854833003/diff/140001/tools/perf/benchmarks/gpu_times.py File tools/perf/benchmarks/gpu_times.py (right): https://codereview.chromium.org/854833003/diff/140001/tools/perf/benchmarks/gpu_times.py#newcode15 tools/perf/benchmarks/gpu_times.py:15: return gpu_timeline.GPUTimelineMetric() On 2015/01/23 23:58:13, nednguyen wrote: > This ...
5 years, 11 months ago (2015-01-24 00:22:33 UTC) #22
nednguyen
https://codereview.chromium.org/854833003/diff/200001/tools/perf/metrics/gpu_timeline.py File tools/perf/metrics/gpu_timeline.py (right): https://codereview.chromium.org/854833003/diff/200001/tools/perf/metrics/gpu_timeline.py#newcode59 tools/perf/metrics/gpu_timeline.py:59: def AddResults(self, model, _, interaction_records, results): Does this implementation ...
5 years, 11 months ago (2015-01-24 00:32:22 UTC) #23
David Yen
https://codereview.chromium.org/854833003/diff/200001/tools/perf/metrics/gpu_timeline.py File tools/perf/metrics/gpu_timeline.py (right): https://codereview.chromium.org/854833003/diff/200001/tools/perf/metrics/gpu_timeline.py#newcode59 tools/perf/metrics/gpu_timeline.py:59: def AddResults(self, model, _, interaction_records, results): On 2015/01/24 00:32:22, ...
5 years, 11 months ago (2015-01-24 00:41:10 UTC) #24
nednguyen
https://codereview.chromium.org/854833003/diff/140001/tools/perf/benchmarks/gpu_times.py File tools/perf/benchmarks/gpu_times.py (right): https://codereview.chromium.org/854833003/diff/140001/tools/perf/benchmarks/gpu_times.py#newcode15 tools/perf/benchmarks/gpu_times.py:15: return gpu_timeline.GPUTimelineMetric() On 2015/01/24 00:22:33, David Yen wrote: > ...
5 years, 11 months ago (2015-01-24 16:43:04 UTC) #25
David Yen
https://codereview.chromium.org/854833003/diff/140001/tools/perf/benchmarks/gpu_times.py File tools/perf/benchmarks/gpu_times.py (right): https://codereview.chromium.org/854833003/diff/140001/tools/perf/benchmarks/gpu_times.py#newcode15 tools/perf/benchmarks/gpu_times.py:15: return gpu_timeline.GPUTimelineMetric() On 2015/01/24 16:43:04, nednguyen wrote: > On ...
5 years, 11 months ago (2015-01-26 19:21:28 UTC) #26
nednguyen
The overall shape looks good to me. Can you pull out some change to another ...
5 years, 11 months ago (2015-01-26 19:45:48 UTC) #27
David Yen
https://codereview.chromium.org/854833003/diff/260001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py File tools/telemetry/telemetry/web_perf/timeline_based_measurement.py (right): https://codereview.chromium.org/854833003/diff/260001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py#newcode34 tools/telemetry/telemetry/web_perf/timeline_based_measurement.py:34: tir_module.IS_FAST, fast_metric.FastMetric, On 2015/01/26 19:45:48, nednguyen wrote: > I ...
5 years, 11 months ago (2015-01-26 20:01:48 UTC) #28
nednguyen
lgtm https://codereview.chromium.org/854833003/diff/260001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py File tools/telemetry/telemetry/web_perf/timeline_based_measurement.py (right): https://codereview.chromium.org/854833003/diff/260001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py#newcode149 tools/telemetry/telemetry/web_perf/timeline_based_measurement.py:149: that may be removed. On 2015/01/26 20:01:48, David ...
5 years, 11 months ago (2015-01-26 22:26:51 UTC) #29
nednguyen
On 2015/01/26 22:26:51, nednguyen wrote: > lgtm > > https://codereview.chromium.org/854833003/diff/260001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py > File tools/telemetry/telemetry/web_perf/timeline_based_measurement.py (right): > ...
5 years, 11 months ago (2015-01-26 22:27:28 UTC) #30
David Yen
https://codereview.chromium.org/854833003/diff/260001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py File tools/telemetry/telemetry/web_perf/timeline_based_measurement.py (right): https://codereview.chromium.org/854833003/diff/260001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py#newcode149 tools/telemetry/telemetry/web_perf/timeline_based_measurement.py:149: that may be removed. On 2015/01/26 22:26:51, nednguyen wrote: ...
5 years, 11 months ago (2015-01-26 22:37:38 UTC) #31
nednguyen
https://codereview.chromium.org/854833003/diff/260001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py File tools/telemetry/telemetry/web_perf/timeline_based_measurement.py (right): https://codereview.chromium.org/854833003/diff/260001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py#newcode149 tools/telemetry/telemetry/web_perf/timeline_based_measurement.py:149: that may be removed. On 2015/01/26 22:37:38, David Yen ...
5 years, 11 months ago (2015-01-26 22:51:41 UTC) #32
David Yen
ping epenner, vmiura for gpu_times.py and gpu_timeline* changes. https://codereview.chromium.org/854833003/diff/260001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py File tools/telemetry/telemetry/web_perf/timeline_based_measurement.py (right): https://codereview.chromium.org/854833003/diff/260001/tools/telemetry/telemetry/web_perf/timeline_based_measurement.py#newcode149 tools/telemetry/telemetry/web_perf/timeline_based_measurement.py:149: that ...
5 years, 11 months ago (2015-01-26 23:09:28 UTC) #33
epenner
LGTM with nits. Only one real issue regarding thread_duration and the rest are just nits. ...
5 years, 11 months ago (2015-01-27 22:06:39 UTC) #34
David Yen
https://codereview.chromium.org/854833003/diff/430001/tools/perf/metrics/gpu_timeline.py File tools/perf/metrics/gpu_timeline.py (right): https://codereview.chromium.org/854833003/diff/430001/tools/perf/metrics/gpu_timeline.py#newcode20 tools/perf/metrics/gpu_timeline.py:20: TRACKED_NAMES = { 'RenderCompositor': 'render_compositor', On 2015/01/27 22:06:38, epenner ...
5 years, 11 months ago (2015-01-27 22:31:28 UTC) #35
epenner
https://codereview.chromium.org/854833003/diff/430001/tools/perf/metrics/gpu_timeline.py File tools/perf/metrics/gpu_timeline.py (right): https://codereview.chromium.org/854833003/diff/430001/tools/perf/metrics/gpu_timeline.py#newcode30 tools/perf/metrics/gpu_timeline.py:30: event_times = [(event.thread_duration or event.duration) Minimally, any detection of ...
5 years, 11 months ago (2015-01-27 22:59:02 UTC) #36
vmiura
> Last, it seems like we could actually report thread_duration if the async slice > ...
5 years, 11 months ago (2015-01-27 23:03:09 UTC) #37
epennerAtGoogle
On 2015/01/27 23:03:09, vmiura wrote: > > Last, it seems like we could actually report ...
5 years, 11 months ago (2015-01-27 23:19:10 UTC) #38
David Yen
https://codereview.chromium.org/854833003/diff/430001/tools/perf/metrics/gpu_timeline.py File tools/perf/metrics/gpu_timeline.py (right): https://codereview.chromium.org/854833003/diff/430001/tools/perf/metrics/gpu_timeline.py#newcode30 tools/perf/metrics/gpu_timeline.py:30: event_times = [(event.thread_duration or event.duration) On 2015/01/27 22:59:02, epenner ...
5 years, 11 months ago (2015-01-27 23:20:00 UTC) #39
epennerAtGoogle
On 2015/01/27 23:20:00, David Yen wrote: > https://codereview.chromium.org/854833003/diff/430001/tools/perf/metrics/gpu_timeline.py > File tools/perf/metrics/gpu_timeline.py (right): > > https://codereview.chromium.org/854833003/diff/430001/tools/perf/metrics/gpu_timeline.py#newcode30 ...
5 years, 11 months ago (2015-01-27 23:22:03 UTC) #40
epennerAtGoogle
On 2015/01/27 23:22:03, epennerAtGoogle wrote: > On 2015/01/27 23:20:00, David Yen wrote: > > > ...
5 years, 11 months ago (2015-01-27 23:23:57 UTC) #41
David Yen
On 2015/01/27 23:23:57, epennerAtGoogle wrote: > On 2015/01/27 23:22:03, epennerAtGoogle wrote: > > On 2015/01/27 ...
5 years, 11 months ago (2015-01-27 23:29:13 UTC) #42
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/854833003/490001
5 years, 11 months ago (2015-01-27 23:37:30 UTC) #44
commit-bot: I haz the power
Committed patchset #26 (id:490001)
5 years, 11 months ago (2015-01-28 04:02:04 UTC) #45
commit-bot: I haz the power
Patchset 26 (id:??) landed as https://crrev.com/dfb418e345ac741c380a5570b386a5bfad1c6115 Cr-Commit-Position: refs/heads/master@{#313419}
5 years, 11 months ago (2015-01-28 04:02:56 UTC) #46
nduca
why is this in tools/perf? all tests should produce gpu times
5 years, 10 months ago (2015-02-05 16:41:14 UTC) #48
David Yen
5 years, 10 months ago (2015-02-05 17:19:33 UTC) #49
Message was sent while issue was closed.
On 2015/02/05 16:41:14, nduca wrote:
> why is this in tools/perf? all tests should produce gpu times

Enabling GPU tracing has significant overhead so we cannot enable it on every
test.

Powered by Google App Engine
This is Rietveld 408576698