| 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 |