diff options
author | tdanderson@chromium.org <tdanderson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-26 17:06:51 +0000 |
---|---|---|
committer | tdanderson@chromium.org <tdanderson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-26 17:06:51 +0000 |
commit | 4a0999d8a0809438d7799e057e2c254d4c83dc20 (patch) | |
tree | e184c08613207029d2b26808c06f229ce0ba8290 /tools | |
parent | 4ab437604fef20962fb5b994370e116f8941efa0 (diff) | |
download | chromium_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.py | 23 | ||||
-rw-r--r-- | tools/perf/perf_tools/smoothness_benchmark_unittest.py | 13 |
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)) |