Index: tools/perf/measurements/rasterize_and_record_micro.py |
diff --git a/tools/perf/measurements/rasterize_and_record_micro.py b/tools/perf/measurements/rasterize_and_record_micro.py |
index 0928d3330e01a78a8fa3e6d36f459abf5f2ba423..12f86cff4ef22bf1fd87da519abaff1a2f9fe036 100644 |
--- a/tools/perf/measurements/rasterize_and_record_micro.py |
+++ b/tools/perf/measurements/rasterize_and_record_micro.py |
@@ -7,10 +7,12 @@ import time |
from telemetry.core.util import TimeoutException |
from telemetry.page import page_measurement |
+from telemetry.page import page_test |
class RasterizeAndRecordMicro(page_measurement.PageMeasurement): |
def __init__(self): |
super(RasterizeAndRecordMicro, self).__init__('', True) |
+ self._compositing_features_enabled = False |
def AddCommandLineOptions(self, parser): |
parser.add_option('--start-wait-time', dest='start_wait_time', |
@@ -38,15 +40,29 @@ class RasterizeAndRecordMicro(page_measurement.PageMeasurement): |
'--enable-gpu-benchmarking' |
]) |
+ def DidStartBrowser(self, browser): |
+ # Check if the we actually have threaded forced compositing enabled. |
vmpstr
2013/12/20 23:20:10
nit: s/the // and possibly s/forced //
|
+ system_info = browser.GetSystemInfo() |
+ if (system_info.gpu.feature_status |
+ and system_info.gpu.feature_status.get( |
vmpstr
2013/12/20 23:20:10
nit: I don't really know the (chromium) python sty
|
+ 'compositing', None) == 'enabled_force_threaded'): |
vmpstr
2013/12/20 23:20:10
I think None is not needed here, assuming feature_
|
+ self._compositing_features_enabled = True |
+ |
def MeasurePage(self, page, tab, results): |
+ # Throw an exception if threaded forced compositing is not enabled. |
+ if (not self._compositing_features_enabled): |
+ raise page_test.TestNotSupportedOnPlatformFailure( |
+ 'Compositing feature status unknown or not '+ |
+ 'forced and threaded. Skipping measurement.') |
+ |
# TODO(vmpstr): Remove this temporary workaround when reference build has |
# been updated to branch 1713 or later. |
backend = tab.browser._browser_backend # pylint: disable=W0212 |
if (not hasattr(backend, 'chrome_branch_number') or |
(sys.platform != 'android' and backend.chrome_branch_number < 1713)): |
- print ('Warning: rasterize_and_record_micro requires Chrome branch 1713 ' |
- 'or later. Skipping measurement.') |
- sys.exit(0) |
+ raise page_test.TestNotSupportedOnPlatformFailure( |
+ 'rasterize_and_record_micro requires Chrome branch 1713 ' |
+ 'or later. Skipping measurement.') |
try: |
tab.WaitForJavaScriptExpression("document.readyState == 'complete'", 10) |
@@ -91,4 +107,3 @@ class RasterizeAndRecordMicro(page_measurement.PageMeasurement): |
results.Add('record_time', 'ms', record_time) |
results.Add('pixels_rasterized', '', pixels_rasterized) |
results.Add('rasterize_time', 'ms', rasterize_time) |
- |