OLD | NEW |
1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 import collections | 4 import collections |
5 import math | 5 import math |
6 import sys | 6 import sys |
7 | 7 |
8 from telemetry.timeline import model as model_module | 8 from telemetry.timeline import model as model_module |
| 9 from telemetry.value import improvement_direction |
9 from telemetry.value import list_of_scalar_values | 10 from telemetry.value import list_of_scalar_values |
10 from telemetry.value import scalar | 11 from telemetry.value import scalar |
11 from telemetry.web_perf.metrics import timeline_based_metric | 12 from telemetry.web_perf.metrics import timeline_based_metric |
12 | 13 |
13 TOPLEVEL_GL_CATEGORY = 'gpu_toplevel' | 14 TOPLEVEL_GL_CATEGORY = 'gpu_toplevel' |
14 TOPLEVEL_SERVICE_CATEGORY = 'disabled-by-default-gpu.service' | 15 TOPLEVEL_SERVICE_CATEGORY = 'disabled-by-default-gpu.service' |
15 TOPLEVEL_DEVICE_CATEGORY = 'disabled-by-default-gpu.device' | 16 TOPLEVEL_DEVICE_CATEGORY = 'disabled-by-default-gpu.device' |
16 | 17 |
17 SERVICE_FRAME_END_MARKER = (TOPLEVEL_SERVICE_CATEGORY, 'SwapBuffer') | 18 SERVICE_FRAME_END_MARKER = (TOPLEVEL_SERVICE_CATEGORY, 'SwapBuffer') |
18 DEVICE_FRAME_END_MARKER = (TOPLEVEL_DEVICE_CATEGORY, 'SwapBuffer') | 19 DEVICE_FRAME_END_MARKER = (TOPLEVEL_DEVICE_CATEGORY, 'SwapBuffer') |
19 | 20 |
20 TRACKED_GL_CONTEXT_NAME = {'RenderCompositor': 'render_compositor', | 21 TRACKED_GL_CONTEXT_NAME = {'RenderCompositor': 'render_compositor', |
21 'BrowserCompositor': 'browser_compositor', | 22 'BrowserCompositor': 'browser_compositor', |
22 'Compositor': 'browser_compositor'} | 23 'Compositor': 'browser_compositor'} |
23 | 24 |
24 | 25 |
25 class GPUTimelineListOfValues(list_of_scalar_values.ListOfScalarValues): | 26 class GPUTimelineListOfValues(list_of_scalar_values.ListOfScalarValues): |
26 def __init__(self, page, name, values): | 27 def __init__(self, page, name, values): |
27 super(GPUTimelineListOfValues, self).__init__(page, name, 'ms', values) | 28 super(GPUTimelineListOfValues, self).__init__( |
| 29 page, name, 'ms', values, |
| 30 improvement_direction=improvement_direction.DOWN) |
28 | 31 |
29 | 32 |
30 class GPUTimelineValue(scalar.ScalarValue): | 33 class GPUTimelineValue(scalar.ScalarValue): |
31 def __init__(self, page, name, value): | 34 def __init__(self, page, name, value): |
32 super(GPUTimelineValue, self).__init__(page, name, 'ms', value) | 35 super(GPUTimelineValue, self).__init__( |
| 36 page, name, 'ms', value, |
| 37 improvement_direction=improvement_direction.DOWN) |
33 | 38 |
34 | 39 |
35 def _CalculateFrameTimes(events_per_frame, event_data_func): | 40 def _CalculateFrameTimes(events_per_frame, event_data_func): |
36 """Given a list of events per frame and a function to extract event time data, | 41 """Given a list of events per frame and a function to extract event time data, |
37 returns a list of frame times.""" | 42 returns a list of frame times.""" |
38 times_per_frame = [] | 43 times_per_frame = [] |
39 for event_list in events_per_frame: | 44 for event_list in events_per_frame: |
40 event_times = [event_data_func(event) for event in event_list] | 45 event_times = [event_data_func(event) for event in event_list] |
41 times_per_frame.append(sum(event_times)) | 46 times_per_frame.append(sum(event_times)) |
42 return times_per_frame | 47 return times_per_frame |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 | 241 |
237 # Add in GPU side traces if it was supported (IE. device traces exist). | 242 # Add in GPU side traces if it was supported (IE. device traces exist). |
238 if all_device_events: | 243 if all_device_events: |
239 timeline_data[gpu_frame_value] = _GPUFrameTimes(all_device_events) | 244 timeline_data[gpu_frame_value] = _GPUFrameTimes(all_device_events) |
240 for value in TRACKED_GL_CONTEXT_NAME.itervalues(): | 245 for value in TRACKED_GL_CONTEXT_NAME.itervalues(): |
241 gpu_value = (value, 'gpu') | 246 gpu_value = (value, 'gpu') |
242 tracked_gpu_event = tracked_events[gpu_value] | 247 tracked_gpu_event = tracked_events[gpu_value] |
243 timeline_data[gpu_value] = _GPUFrameTimes(tracked_gpu_event) | 248 timeline_data[gpu_value] = _GPUFrameTimes(tracked_gpu_event) |
244 | 249 |
245 return timeline_data | 250 return timeline_data |
OLD | NEW |