| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 | 4 |
| 5 class RenderingStats(object): | 5 class RenderingStats(object): |
| 6 def __init__(self, smoothness_marker, gesture_marker, rendering_stats_deltas, | 6 def __init__(self, smoothness_marker, gesture_marker, rendering_stats_deltas, |
| 7 used_gpu_benchmarking): | 7 used_gpu_benchmarking): |
| 8 """ | 8 """ |
| 9 Utility class for extracting rendering statistics from the timeline (or | 9 Utility class for extracting rendering statistics from the timeline (or |
| 10 other loggin facilities), and providing them in a common format to classes | 10 other loggin facilities), and providing them in a common format to classes |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 | 38 |
| 39 def initFrameCountsFromRenderingStats(self, rs): | 39 def initFrameCountsFromRenderingStats(self, rs): |
| 40 # TODO(ernstm): remove numFramesSentToScreen when RenderingStats | 40 # TODO(ernstm): remove numFramesSentToScreen when RenderingStats |
| 41 # cleanup CL was picked up by the reference build. | 41 # cleanup CL was picked up by the reference build. |
| 42 if 'frameCount' in rs: | 42 if 'frameCount' in rs: |
| 43 self.frame_count = rs.get('frameCount', 0) | 43 self.frame_count = rs.get('frameCount', 0) |
| 44 else: | 44 else: |
| 45 self.frame_count = rs.get('numFramesSentToScreen', 0) | 45 self.frame_count = rs.get('numFramesSentToScreen', 0) |
| 46 | 46 |
| 47 def initMainThreadStatsFromTimeline(self): | 47 def initMainThreadStatsFromTimeline(self): |
| 48 # TODO(ernstm): Remove when CL with new event names was rolled into |
| 49 # reference build. |
| 50 event_name = 'BenchmarkInstrumentation::MainThreadRenderingStats' |
| 48 for event in self.renderer_process.IterAllSlicesOfName( | 51 for event in self.renderer_process.IterAllSlicesOfName( |
| 49 'MainThreadRenderingStats::IssueTraceEvent'): | 52 'MainThreadRenderingStats::IssueTraceEvent'): |
| 53 event_name = 'MainThreadRenderingStats::IssueTraceEvent' |
| 54 for event in self.renderer_process.IterAllSlicesOfName(event_name): |
| 50 if event.start >= self.start and event.end <= self.end: | 55 if event.start >= self.start and event.end <= self.end: |
| 51 if 'data' not in event.args: | 56 if 'data' not in event.args: |
| 52 continue | 57 continue |
| 53 # TODO(ernstm): remove screen_frame_count when RenderingStats | 58 # TODO(ernstm): remove screen_frame_count when RenderingStats |
| 54 # cleanup CL was picked up by the reference build. | 59 # cleanup CL was picked up by the reference build. |
| 55 if 'frame_count' in event.args['data']: | 60 if 'frame_count' in event.args['data']: |
| 56 frame_count = event.args['data']['frame_count'] | 61 frame_count = event.args['data']['frame_count'] |
| 57 else: | 62 else: |
| 58 frame_count = event.args['data']['screen_frame_count'] | 63 frame_count = event.args['data']['screen_frame_count'] |
| 59 self.frame_count.append(frame_count) | 64 self.frame_count.append(frame_count) |
| 60 if frame_count > 1: | 65 if frame_count > 1: |
| 61 raise ValueError, 'trace contains multi-frame render stats' | 66 raise ValueError, 'trace contains multi-frame render stats' |
| 62 if frame_count == 1: | 67 if frame_count == 1: |
| 63 self.frame_timestamps.append( | 68 self.frame_timestamps.append( |
| 64 event.start) | 69 event.start) |
| 65 self.paint_time.append( | 70 self.paint_time.append( |
| 66 event.args['data']['paint_time']) | 71 event.args['data']['paint_time']) |
| 67 self.painted_pixel_count.append( | 72 self.painted_pixel_count.append( |
| 68 event.args['data']['painted_pixel_count']) | 73 event.args['data']['painted_pixel_count']) |
| 69 self.record_time.append( | 74 self.record_time.append( |
| 70 event.args['data']['record_time']) | 75 event.args['data']['record_time']) |
| 71 self.recorded_pixel_count.append( | 76 self.recorded_pixel_count.append( |
| 72 event.args['data']['recorded_pixel_count']) | 77 event.args['data']['recorded_pixel_count']) |
| 73 | 78 |
| 74 def initImplThreadStatsFromTimeline(self): | 79 def initImplThreadStatsFromTimeline(self): |
| 80 # TODO(ernstm): Remove when CL with new event names was rolled into |
| 81 # reference build. |
| 82 event_name = 'BenchmarkInstrumentation::ImplThreadRenderingStats' |
| 75 for event in self.renderer_process.IterAllSlicesOfName( | 83 for event in self.renderer_process.IterAllSlicesOfName( |
| 76 'ImplThreadRenderingStats::IssueTraceEvent'): | 84 'ImplThreadRenderingStats::IssueTraceEvent'): |
| 85 event_name = 'ImplThreadRenderingStats::IssueTraceEvent' |
| 86 for event in self.renderer_process.IterAllSlicesOfName(event_name): |
| 77 if event.start >= self.start and event.end <= self.end: | 87 if event.start >= self.start and event.end <= self.end: |
| 78 if 'data' not in event.args: | 88 if 'data' not in event.args: |
| 79 continue | 89 continue |
| 80 # TODO(ernstm): remove screen_frame_count when RenderingStats | 90 # TODO(ernstm): remove screen_frame_count when RenderingStats |
| 81 # cleanup CL was picked up by the reference build. | 91 # cleanup CL was picked up by the reference build. |
| 82 if 'frame_count' in event.args['data']: | 92 if 'frame_count' in event.args['data']: |
| 83 frame_count = event.args['data']['frame_count'] | 93 frame_count = event.args['data']['frame_count'] |
| 84 else: | 94 else: |
| 85 frame_count = event.args['data']['screen_frame_count'] | 95 frame_count = event.args['data']['screen_frame_count'] |
| 86 self.frame_count.append(frame_count) | 96 self.frame_count.append(frame_count) |
| 87 if frame_count > 1: | 97 if frame_count > 1: |
| 88 raise ValueError, 'trace contains multi-frame render stats' | 98 raise ValueError, 'trace contains multi-frame render stats' |
| 89 if frame_count == 1: | 99 if frame_count == 1: |
| 90 self.frame_timestamps.append( | 100 self.frame_timestamps.append( |
| 91 event.start) | 101 event.start) |
| 92 self.rasterize_time.append( | 102 self.rasterize_time.append( |
| 93 event.args['data']['rasterize_time']) | 103 event.args['data']['rasterize_time']) |
| 94 self.rasterized_pixel_count.append( | 104 self.rasterized_pixel_count.append( |
| 95 event.args['data']['rasterized_pixel_count']) | 105 event.args['data']['rasterized_pixel_count']) |
| OLD | NEW |