146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved.
2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch# Use of this source code is governed by a BSD-style license that can be
3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch# found in the LICENSE file.
4a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)from benchmarks import silk_flags
6f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)import page_sets
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdochfrom measurements import smoothness
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdochfrom telemetry import benchmark
9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessTop25(benchmark.Benchmark):
129ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  """Measures rendering statistics while scrolling down the top 25 web pages.
139ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
149ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  http://www.chromium.org/developers/design-documents/rendering-benchmarks"""
15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  test = smoothness.Smoothness
16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.Top25PageSet
1768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
1868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class SmoothnessToughFiltersCases(benchmark.Benchmark):
205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  test = smoothness.Smoothness
215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  page_set = page_sets.ToughFiltersCasesPageSet
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)@benchmark.Disabled('mac', 'win')  # crbug.com/388877, crbug.com/396127
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessToughCanvasCases(benchmark.Benchmark):
2668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  test = smoothness.Smoothness
27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.ToughCanvasCasesPageSet
281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Disabled('android', 'mac', 'win')  # crbug.com/373812
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessToughWebGLCases(benchmark.Benchmark):
32c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  test = smoothness.Smoothness
33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.ToughWebglCasesPageSet
34c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
35c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Enabled('android')
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessMaps(benchmark.Benchmark):
38c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  test = smoothness.Smoothness
39f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.MapsPageSet
40c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
41c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Enabled('android')
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessKeyMobileSites(benchmark.Benchmark):
441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  """Measures rendering statistics while scrolling down the key mobile sites.
451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  http://www.chromium.org/developers/design-documents/rendering-benchmarks"""
471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  test = smoothness.Smoothness
48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.KeyMobileSitesPageSet
49a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
50a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch@benchmark.Disabled('android')  # crbug.com/350692
52116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessToughAnimationCases(benchmark.Benchmark):
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  test = smoothness.Smoothness
54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.ToughAnimationCasesPageSet
555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Enabled('android')
58116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessKeySilkCases(benchmark.Benchmark):
595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  """Measures rendering statistics for the key silk cases without GPU
605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  rasterization
615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  """
625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  test = smoothness.Smoothness
63f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.KeySilkCasesPageSet
645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
65a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Enabled('android')
67116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessFastPathKeySilkCases(benchmark.Benchmark):
685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  """Measures rendering statistics for the key silk cases without GPU
69a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  rasterization using bleeding edge rendering fast paths.
705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  """
71a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  tag = 'fast_path'
725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  test = smoothness.Smoothness
73f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.KeySilkCasesPageSet
745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  def CustomizeBrowserOptions(self, options):
75a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    silk_flags.CustomizeBrowserOptionsForFastPath(options)
76a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
77a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Enabled('android')  # crbug.com/399125
79116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessGpuRasterizationTop25(benchmark.Benchmark):
80a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  """Measures rendering statistics for the top 25 with GPU rasterization
81a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  """
82a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  tag = 'gpu_rasterization'
83a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  test = smoothness.Smoothness
84f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.Top25PageSet
85a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  def CustomizeBrowserOptions(self, options):
865c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    silk_flags.CustomizeBrowserOptionsForGpuRasterization(options)
87a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
88a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Enabled('android')  # crbug.com/399125
90116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessGpuRasterizationKeyMobileSites(benchmark.Benchmark):
91a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  """Measures rendering statistics for the key mobile sites with GPU
92a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  rasterization
93a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  """
94a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  tag = 'gpu_rasterization'
95a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  test = smoothness.Smoothness
96f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.KeyMobileSitesPageSet
97a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  def CustomizeBrowserOptions(self, options):
985c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    silk_flags.CustomizeBrowserOptionsForGpuRasterization(options)
995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
100a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
1011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Disabled  # crbug.com/399125
102116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessGpuRasterizationKeySilkCases(benchmark.Benchmark):
1035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  """Measures rendering statistics for the key silk cases with GPU rasterization
1045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  """
105a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  tag = 'gpu_rasterization'
106a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  test = smoothness.Smoothness
107f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.KeySilkCasesPageSet
1085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  def CustomizeBrowserOptions(self, options):
1095c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    silk_flags.CustomizeBrowserOptionsForGpuRasterization(options)
110a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
111a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
1121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Disabled  # crbug.com/399125
113a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class SmoothnessFastPathGpuRasterizationKeySilkCases(
114a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    SmoothnessGpuRasterizationKeySilkCases):
115a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  """Measures rendering statistics for the key silk cases with GPU rasterization
116a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  using bleeding edge rendering fast paths.
117a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  """
118a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  tag = 'fast_path_gpu_rasterization'
119a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  test = smoothness.Smoothness
120f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.KeySilkCasesPageSet
121a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  def CustomizeBrowserOptions(self, options):
122a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    super(SmoothnessFastPathGpuRasterizationKeySilkCases, self). \
123a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        CustomizeBrowserOptions(options)
124a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    silk_flags.CustomizeBrowserOptionsForFastPath(options)
125a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
126a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
1271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Disabled  # crbug.com/402885
1285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class SmoothnessSimpleMobilePages(benchmark.Benchmark):
1295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  """Measures rendering statistics for pinch-zooming into the tough pinch zoom
1305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  cases
1315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  """
1325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  test = smoothness.Smoothness
1335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  page_set = page_sets.SimpleMobileSitesPageSet
1345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
1355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
1365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)@benchmark.Enabled('android')
137116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessToughPinchZoomCases(benchmark.Benchmark):
138a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  """Measures rendering statistics for pinch-zooming into the tough pinch zoom
139a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  cases
140a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  """
141a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  test = smoothness.Smoothness
142f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.ToughPinchZoomCasesPageSet
1435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
1445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
1451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Enabled('android')
146116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessPolymer(benchmark.Benchmark):
1475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  """Measures rendering statistics for Polymer cases.
1485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  """
1495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  test = smoothness.Smoothness
150f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.PolymerPageSet
1515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
1525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
1531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Enabled('android')
154116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessFastPathPolymer(benchmark.Benchmark):
1555c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  """Measures rendering statistics for the Polymer cases without GPU
1565c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  rasterization using bleeding edge rendering fast paths.
1575c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  """
1585c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  tag = 'fast_path'
1595c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  test = smoothness.Smoothness
160f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.PolymerPageSet
1615c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  def CustomizeBrowserOptions(self, options):
1625c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    silk_flags.CustomizeBrowserOptionsForFastPath(options)
1635c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
1641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Enabled('android')  # crbug.com/399125
165116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SmoothnessGpuRasterizationPolymer(benchmark.Benchmark):
1665c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  """Measures rendering statistics for the Polymer cases with GPU rasterization
1675c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  """
1685c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  tag = 'gpu_rasterization'
1695c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  test = smoothness.Smoothness
170f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.PolymerPageSet
1715c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  def CustomizeBrowserOptions(self, options):
1725c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    silk_flags.CustomizeBrowserOptionsForGpuRasterization(options)
1735c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
1745c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
1751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci@benchmark.Disabled  # crbug.com/399125
1765c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass SmoothnessFastPathGpuRasterizationPolymer(
1775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    SmoothnessGpuRasterizationPolymer):
1785c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  """Measures rendering statistics for the Polymer cases with GPU rasterization
1795c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  using bleeding edge rendering fast paths.
1805c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  """
1815c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  tag = 'fast_path_gpu_rasterization'
1825c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  test = smoothness.Smoothness
183f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.PolymerPageSet
1845c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  def CustomizeBrowserOptions(self, options):
1855c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    super(SmoothnessFastPathGpuRasterizationPolymer, self). \
1865c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu        CustomizeBrowserOptions(options)
1875c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu    silk_flags.CustomizeBrowserOptionsForFastPath(options)
188