1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4 from telemetry
import benchmark
5 from telemetry
.core
.platform
import tracing_category_filter
6 from telemetry
.web_perf
.metrics
import gpu_timeline
7 from telemetry
.web_perf
import timeline_based_measurement
9 from benchmarks
import silk_flags
12 TOPLEVEL_GL_CATEGORY
= 'gpu_toplevel'
13 TOPLEVEL_CATEGORIES
= ['disabled-by-default-gpu.device',
14 'disabled-by-default-gpu.service']
17 class _GPUTimes(benchmark
.Benchmark
):
18 def CreateTimelineBasedMeasurementOptions(self
):
19 cat_string
= ','.join(TOPLEVEL_CATEGORIES
)
20 cat_filter
= tracing_category_filter
.TracingCategoryFilter(cat_string
)
22 return timeline_based_measurement
.Options(
23 overhead_level
=cat_filter
)
26 def ValueCanBeAddedPredicate(cls
, value
, _
):
27 return (isinstance(value
, gpu_timeline
.GPUTimelineListOfValues
) or
28 isinstance(value
, gpu_timeline
.GPUTimelineValue
))
30 @benchmark.Enabled('android') # http://crbug.com/453131
31 class GPUTimesKeyMobileSites(_GPUTimes
):
32 """Measures GPU timeline metric on key mobile sites."""
33 page_set
= page_sets
.KeyMobileSitesSmoothPageSet
37 return 'gpu_times.key_mobile_sites_smooth'
39 @benchmark.Enabled('android') # http://crbug.com/453131
40 class GPUTimesGpuRasterizationKeyMobileSites(_GPUTimes
):
41 """Measures GPU timeline metric on key mobile sites with GPU rasterization.
43 page_set
= page_sets
.KeyMobileSitesSmoothPageSet
44 def CustomizeBrowserOptions(self
, options
):
45 silk_flags
.CustomizeBrowserOptionsForGpuRasterization(options
)
49 return 'gpu_times.gpu_rasterization.key_mobile_sites_smooth'
51 @benchmark.Enabled('android') # http://crbug.com/453131
52 class GPUTimesTop25Sites(_GPUTimes
):
53 """Measures GPU timeline metric for the top 25 sites."""
54 page_set
= page_sets
.Top25SmoothPageSet
58 return 'gpu_times.top_25_smooth'
60 @benchmark.Enabled('android') # http://crbug.com/453131
61 class GPUTimesGpuRasterizationTop25Sites(_GPUTimes
):
62 """Measures GPU timeline metric for the top 25 sites with GPU rasterization.
64 page_set
= page_sets
.Top25SmoothPageSet
65 def CustomizeBrowserOptions(self
, options
):
66 silk_flags
.CustomizeBrowserOptionsForGpuRasterization(options
)
70 return 'gpu_times.gpu_rasterization.top_25_smooth'