summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authortdanderson@chromium.org <tdanderson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-26 17:06:51 +0000
committertdanderson@chromium.org <tdanderson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-26 17:06:51 +0000
commit4a0999d8a0809438d7799e057e2c254d4c83dc20 (patch)
treee184c08613207029d2b26808c06f229ce0ba8290 /tools
parent4ab437604fef20962fb5b994370e116f8941efa0 (diff)
downloadchromium_src-4a0999d8a0809438d7799e057e2c254d4c83dc20.zip
chromium_src-4a0999d8a0809438d7799e057e2c254d4c83dc20.tar.gz
chromium_src-4a0999d8a0809438d7799e057e2c254d4c83dc20.tar.bz2
Report impl vs. main thread scrolling as a percentage
Report the percentage that a page impl-thread scrolled as a new value in the scrolling benchmarks. Added a new unit test and simplified the design of existing unit tests in smoothness_benchmark_unittest.py. BUG=159889,160791 Review URL: https://chromiumcodereview.appspot.com/11416151 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169438 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools')
-rw-r--r--tools/perf/perf_tools/smoothness_benchmark.py23
-rw-r--r--tools/perf/perf_tools/smoothness_benchmark_unittest.py13
2 files changed, 26 insertions, 10 deletions
diff --git a/tools/perf/perf_tools/smoothness_benchmark.py b/tools/perf/perf_tools/smoothness_benchmark.py
index fa668db..9bad0a1 100644
--- a/tools/perf/perf_tools/smoothness_benchmark.py
+++ b/tools/perf/perf_tools/smoothness_benchmark.py
@@ -29,10 +29,22 @@ def CalcScrollResults(rendering_stats_deltas, results):
rendering_stats_deltas['droppedFrameCount'] /
float(num_frames_sent_to_screen))
+ num_impl_thread_scrolls = GetOrZero('numImplThreadScrolls',
+ rendering_stats_deltas)
+
+ num_main_thread_scrolls = GetOrZero('numMainThreadScrolls',
+ rendering_stats_deltas)
+
+ percent_impl_scrolled = DivideIfPossibleOrZero(
+ float(num_impl_thread_scrolls),
+ num_impl_thread_scrolls + num_main_thread_scrolls)
+
results.Add('mean_frame_time', 'ms', round(mean_frame_time_seconds * 1000, 3))
results.Add('dropped_percent', '%', round(dropped_percent * 100, 1),
data_type='unimportant')
-
+ results.Add('percent_impl_scrolled', '%',
+ round(percent_impl_scrolled * 100, 1),
+ data_type='unimportant')
def CalcPaintingResults(rendering_stats_deltas, results):
totalPaintTime = GetOrZero('totalPaintTimeInSeconds',
@@ -103,18 +115,19 @@ def CalcFirstPaintTimeResults(results, tab):
class SmoothnessBenchmark(multi_page_benchmark.MultiPageBenchmark):
def __init__(self):
super(SmoothnessBenchmark, self).__init__('scrolling')
+ self.force_enable_threaded_compositing = False
+ self.use_gpu_benchmarking_extension = True
def AddCommandLineOptions(self, parser):
- parser.add_option('--no-gpu-benchmarking-extension', action='store_true',
- dest='no_gpu_benchmarking_extension',
- help='Disable the chrome.gpuBenchmarking extension.')
parser.add_option('--report-all-results', dest='report_all_results',
action='store_true',
help='Reports all data collected, not just FPS')
def CustomizeBrowserOptions(self, options):
- if not options.no_gpu_benchmarking_extension:
+ if self.use_gpu_benchmarking_extension:
options.extra_browser_args.append('--enable-gpu-benchmarking')
+ if self.force_enable_threaded_compositing:
+ options.extra_browser_args.append('--enable-threaded-compositing')
def CanRunForPage(self, page):
return hasattr(page, 'scrolling')
diff --git a/tools/perf/perf_tools/smoothness_benchmark_unittest.py b/tools/perf/perf_tools/smoothness_benchmark_unittest.py
index 64e64e2..afa1142 100644
--- a/tools/perf/perf_tools/smoothness_benchmark_unittest.py
+++ b/tools/perf/perf_tools/smoothness_benchmark_unittest.py
@@ -119,18 +119,21 @@ class SmoothnessBenchmarkUnitTest(
self.assertTrue(rect_bottom <= viewport_height)
self.assertTrue(rect_right <= viewport_width)
-class SmoothnessBenchmarkWithoutGpuBenchmarkingUnitTest(
- multi_page_benchmark_unittest_base.MultiPageBenchmarkUnitTestBase):
+ def testDoesImplThreadScroll(self):
+ ps = self.CreatePageSetFromFileInUnittestDataDir('scrollable_page.html')
- def CustomizeOptionsForTest(self, options):
- options.no_gpu_benchmarking_extension = True
+ benchmark = smoothness_benchmark.SmoothnessBenchmark()
+ benchmark.force_enable_threaded_compositing = True
+ all_results = self.RunBenchmark(benchmark, ps)
+
+ results0 = all_results.page_results[0]
+ self.assertTrue(results0['percent_impl_scrolled'] > 0)
def testScrollingWithoutGpuBenchmarkingExtension(self):
ps = self.CreatePageSetFromFileInUnittestDataDir('scrollable_page.html')
benchmark = smoothness_benchmark.SmoothnessBenchmark()
benchmark.use_gpu_benchmarking_extension = False
-
all_results = self.RunBenchmark(benchmark, ps)
self.assertEqual(0, len(all_results.page_failures))