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

Side by Side Diff: tools/perf/measurements/rasterize_and_record.py

Issue 100443007: telemetry: handle tests that are not supported on a platform. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Catch new exception in TestTracingCleanedUp. Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | tools/perf/measurements/rasterize_and_record_micro.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 import logging
6 import time 5 import time
7 6
8 from metrics import rendering_stats 7 from metrics import rendering_stats
9 from telemetry.page import page_measurement 8 from telemetry.page import page_measurement
9 from telemetry.page import page_test
10 from telemetry.page.perf_tests_helper import FlattenList 10 from telemetry.page.perf_tests_helper import FlattenList
11 import telemetry.core.timeline.bounds as timeline_bounds 11 import telemetry.core.timeline.bounds as timeline_bounds
12 from telemetry.core.timeline.model import TimelineModel 12 from telemetry.core.timeline.model import TimelineModel
13 from telemetry.core.timeline.model import MarkerMismatchError 13 from telemetry.core.timeline.model import MarkerMismatchError
14 from telemetry.core.timeline.model import MarkerOverlapError 14 from telemetry.core.timeline.model import MarkerOverlapError
15 15
16 TIMELINE_MARKER = 'RasterizeAndRecord' 16 TIMELINE_MARKER = 'RasterizeAndRecord'
17 17
18 18
19 class RasterizeAndRecord(page_measurement.PageMeasurement): 19 class RasterizeAndRecord(page_measurement.PageMeasurement):
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 def DidStartBrowser(self, browser): 55 def DidStartBrowser(self, browser):
56 # Check if the we actually have threaded forced compositing enabled. 56 # Check if the we actually have threaded forced compositing enabled.
57 system_info = browser.GetSystemInfo() 57 system_info = browser.GetSystemInfo()
58 if (system_info.gpu.feature_status 58 if (system_info.gpu.feature_status
59 and system_info.gpu.feature_status.get( 59 and system_info.gpu.feature_status.get(
60 'compositing', None) == 'enabled_force_threaded'): 60 'compositing', None) == 'enabled_force_threaded'):
61 self._compositing_features_enabled = True 61 self._compositing_features_enabled = True
62 62
63 def MeasurePage(self, page, tab, results): 63 def MeasurePage(self, page, tab, results):
64 if not self._compositing_features_enabled: 64 if not self._compositing_features_enabled:
65 logging.warning('Warning: compositing feature status unknown or not '+ 65 raise page_test.TestNotSupportedOnPlatformFailure(
66 'forced and threaded. Skipping measurement.') 66 'Compositing feature status unknown or not '+
67 return 67 'forced and threaded. Skipping measurement.')
68 68
69 # Rasterize only what's visible. 69 # Rasterize only what's visible.
70 tab.ExecuteJavaScript( 70 tab.ExecuteJavaScript(
71 'chrome.gpuBenchmarking.setRasterizeOnlyVisibleContent();') 71 'chrome.gpuBenchmarking.setRasterizeOnlyVisibleContent();')
72 72
73 # Wait until the page has loaded and come to a somewhat steady state. 73 # Wait until the page has loaded and come to a somewhat steady state.
74 # Needs to be adjusted for every device (~2 seconds for workstation). 74 # Needs to be adjusted for every device (~2 seconds for workstation).
75 time.sleep(self.options.start_wait_time) 75 time.sleep(self.options.start_wait_time)
76 76
77 # Render one frame before we start gathering a trace. On some pages, the 77 # Render one frame before we start gathering a trace. On some pages, the
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 results.Add('rasterize_time', 'ms', max(FlattenList(stats.rasterize_times))) 118 results.Add('rasterize_time', 'ms', max(FlattenList(stats.rasterize_times)))
119 results.Add('record_time', 'ms', max(FlattenList(stats.record_times))) 119 results.Add('record_time', 'ms', max(FlattenList(stats.record_times)))
120 results.Add('rasterized_pixels', 'pixels', 120 results.Add('rasterized_pixels', 'pixels',
121 max(FlattenList(stats.rasterized_pixel_counts))) 121 max(FlattenList(stats.rasterized_pixel_counts)))
122 results.Add('recorded_pixels', 'pixels', 122 results.Add('recorded_pixels', 'pixels',
123 max(FlattenList(stats.recorded_pixel_counts))) 123 max(FlattenList(stats.recorded_pixel_counts)))
124 124
125 def CleanUpAfterPage(self, page, tab): 125 def CleanUpAfterPage(self, page, tab):
126 if tab.browser.is_tracing_running: 126 if tab.browser.is_tracing_running:
127 tab.browser.StopTracing() 127 tab.browser.StopTracing()
OLDNEW
« no previous file with comments | « no previous file | tools/perf/measurements/rasterize_and_record_micro.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698