xref: /aosp_15_r20/external/skia/bench/ChromeBench.cpp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker /*
2*c8dee2aaSAndroid Build Coastguard Worker  * Copyright 2011 Google Inc.
3*c8dee2aaSAndroid Build Coastguard Worker  *
4*c8dee2aaSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
5*c8dee2aaSAndroid Build Coastguard Worker  * found in the LICENSE file.
6*c8dee2aaSAndroid Build Coastguard Worker  */
7*c8dee2aaSAndroid Build Coastguard Worker #include "bench/Benchmark.h"
8*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkCanvas.h"
9*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkPaint.h"
10*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkString.h"
11*c8dee2aaSAndroid Build Coastguard Worker 
12*c8dee2aaSAndroid Build Coastguard Worker /**
13*c8dee2aaSAndroid Build Coastguard Worker    Benchmarks that try to emulate a particular Skia call pattern observed in Chrome.
14*c8dee2aaSAndroid Build Coastguard Worker */
15*c8dee2aaSAndroid Build Coastguard Worker 
16*c8dee2aaSAndroid Build Coastguard Worker /// blitRect() calls emitted by Chrome while scrolling through gmail: count, width, height.
17*c8dee2aaSAndroid Build Coastguard Worker int gmailScrollingRectSpec [431*3] = {
18*c8dee2aaSAndroid Build Coastguard Worker       1, 1254, 1160,
19*c8dee2aaSAndroid Build Coastguard Worker       1, 64, 112,
20*c8dee2aaSAndroid Build Coastguard Worker       1, 1034, 261,
21*c8dee2aaSAndroid Build Coastguard Worker       1, 1166, 1,
22*c8dee2aaSAndroid Build Coastguard Worker       1, 1166, 20,
23*c8dee2aaSAndroid Build Coastguard Worker       1, 1254, 40,
24*c8dee2aaSAndroid Build Coastguard Worker       1, 140, 20,
25*c8dee2aaSAndroid Build Coastguard Worker       1, 22, 30,
26*c8dee2aaSAndroid Build Coastguard Worker       1, 22, 39,
27*c8dee2aaSAndroid Build Coastguard Worker       1, 294, 29,
28*c8dee2aaSAndroid Build Coastguard Worker       1, 336, 25,
29*c8dee2aaSAndroid Build Coastguard Worker       1, 336, 5,
30*c8dee2aaSAndroid Build Coastguard Worker       1, 37, 3,
31*c8dee2aaSAndroid Build Coastguard Worker       1, 37, 4,
32*c8dee2aaSAndroid Build Coastguard Worker       1, 37, 5,
33*c8dee2aaSAndroid Build Coastguard Worker       1, 41, 29,
34*c8dee2aaSAndroid Build Coastguard Worker       1, 57, 15,
35*c8dee2aaSAndroid Build Coastguard Worker       1, 72, 5,
36*c8dee2aaSAndroid Build Coastguard Worker       1, 72, 8,
37*c8dee2aaSAndroid Build Coastguard Worker       1, 76, 29,
38*c8dee2aaSAndroid Build Coastguard Worker       1, 981, 88,
39*c8dee2aaSAndroid Build Coastguard Worker       1, 990, 2,
40*c8dee2aaSAndroid Build Coastguard Worker       1, 990, 6,
41*c8dee2aaSAndroid Build Coastguard Worker       2, 220, 88,
42*c8dee2aaSAndroid Build Coastguard Worker       2, 294, 1,
43*c8dee2aaSAndroid Build Coastguard Worker       2, 37, 6,
44*c8dee2aaSAndroid Build Coastguard Worker       2, 391, 55,
45*c8dee2aaSAndroid Build Coastguard Worker       2, 57, 11,
46*c8dee2aaSAndroid Build Coastguard Worker       2, 57, 14,
47*c8dee2aaSAndroid Build Coastguard Worker       2, 57, 7,
48*c8dee2aaSAndroid Build Coastguard Worker       2, 981, 30,
49*c8dee2aaSAndroid Build Coastguard Worker       2, 990, 15,
50*c8dee2aaSAndroid Build Coastguard Worker       2, 990, 19,
51*c8dee2aaSAndroid Build Coastguard Worker       3, 114, 16,
52*c8dee2aaSAndroid Build Coastguard Worker       3, 1166, 39,
53*c8dee2aaSAndroid Build Coastguard Worker       3, 1254, 154,
54*c8dee2aaSAndroid Build Coastguard Worker       3, 12, 12,
55*c8dee2aaSAndroid Build Coastguard Worker       3, 162, 7,
56*c8dee2aaSAndroid Build Coastguard Worker       3, 164, 479,
57*c8dee2aaSAndroid Build Coastguard Worker       3, 167, 449,
58*c8dee2aaSAndroid Build Coastguard Worker       3, 16, 24,
59*c8dee2aaSAndroid Build Coastguard Worker       3, 204, 497,
60*c8dee2aaSAndroid Build Coastguard Worker       3, 205, 434,
61*c8dee2aaSAndroid Build Coastguard Worker       3, 220, 1127,
62*c8dee2aaSAndroid Build Coastguard Worker       3, 220, 1132,
63*c8dee2aaSAndroid Build Coastguard Worker       3, 220, 931,
64*c8dee2aaSAndroid Build Coastguard Worker       3, 220, 933,
65*c8dee2aaSAndroid Build Coastguard Worker       3, 220, 934,
66*c8dee2aaSAndroid Build Coastguard Worker       3, 297, 8,
67*c8dee2aaSAndroid Build Coastguard Worker       3, 72, 25,
68*c8dee2aaSAndroid Build Coastguard Worker       3, 87, 30,
69*c8dee2aaSAndroid Build Coastguard Worker       3, 981, 1,
70*c8dee2aaSAndroid Build Coastguard Worker       3, 981, 126,
71*c8dee2aaSAndroid Build Coastguard Worker       3, 990, 27,
72*c8dee2aaSAndroid Build Coastguard Worker       3, 990, 36,
73*c8dee2aaSAndroid Build Coastguard Worker       3, 991, 29,
74*c8dee2aaSAndroid Build Coastguard Worker       4, 1254, 306,
75*c8dee2aaSAndroid Build Coastguard Worker       4, 1254, 36,
76*c8dee2aaSAndroid Build Coastguard Worker       4, 1, 1,
77*c8dee2aaSAndroid Build Coastguard Worker       4, 1, 14,
78*c8dee2aaSAndroid Build Coastguard Worker       4, 1, 19,
79*c8dee2aaSAndroid Build Coastguard Worker       4, 1, 7,
80*c8dee2aaSAndroid Build Coastguard Worker       4, 21, 21,
81*c8dee2aaSAndroid Build Coastguard Worker       4, 220, 30,
82*c8dee2aaSAndroid Build Coastguard Worker       4, 46, 949,
83*c8dee2aaSAndroid Build Coastguard Worker       4, 509, 30,
84*c8dee2aaSAndroid Build Coastguard Worker       4, 57, 2,
85*c8dee2aaSAndroid Build Coastguard Worker       4, 57, 6,
86*c8dee2aaSAndroid Build Coastguard Worker       4, 990, 11,
87*c8dee2aaSAndroid Build Coastguard Worker       5, 13, 8,
88*c8dee2aaSAndroid Build Coastguard Worker       5, 198, 24,
89*c8dee2aaSAndroid Build Coastguard Worker       5, 24, 24,
90*c8dee2aaSAndroid Build Coastguard Worker       5, 25, 24,
91*c8dee2aaSAndroid Build Coastguard Worker       5, 2, 24,
92*c8dee2aaSAndroid Build Coastguard Worker       5, 37, 33,
93*c8dee2aaSAndroid Build Coastguard Worker       5, 57, 4,
94*c8dee2aaSAndroid Build Coastguard Worker       5, 599, 24,
95*c8dee2aaSAndroid Build Coastguard Worker       5, 90, 24,
96*c8dee2aaSAndroid Build Coastguard Worker       5, 981, 19,
97*c8dee2aaSAndroid Build Coastguard Worker       5, 990, 23,
98*c8dee2aaSAndroid Build Coastguard Worker       5, 990, 8,
99*c8dee2aaSAndroid Build Coastguard Worker       6, 101, 29,
100*c8dee2aaSAndroid Build Coastguard Worker       6, 117, 29,
101*c8dee2aaSAndroid Build Coastguard Worker       6, 1254, 88,
102*c8dee2aaSAndroid Build Coastguard Worker       6, 139, 29,
103*c8dee2aaSAndroid Build Coastguard Worker       6, 13, 12,
104*c8dee2aaSAndroid Build Coastguard Worker       6, 15, 15,
105*c8dee2aaSAndroid Build Coastguard Worker       6, 164, 25,
106*c8dee2aaSAndroid Build Coastguard Worker       6, 16, 16,
107*c8dee2aaSAndroid Build Coastguard Worker       6, 198, 7,
108*c8dee2aaSAndroid Build Coastguard Worker       6, 1, 12,
109*c8dee2aaSAndroid Build Coastguard Worker       6, 1, 15,
110*c8dee2aaSAndroid Build Coastguard Worker       6, 1, 27,
111*c8dee2aaSAndroid Build Coastguard Worker       6, 220, 936,
112*c8dee2aaSAndroid Build Coastguard Worker       6, 24, 7,
113*c8dee2aaSAndroid Build Coastguard Worker       6, 25, 7,
114*c8dee2aaSAndroid Build Coastguard Worker       6, 2, 7,
115*c8dee2aaSAndroid Build Coastguard Worker       6, 326, 29,
116*c8dee2aaSAndroid Build Coastguard Worker       6, 336, 29,
117*c8dee2aaSAndroid Build Coastguard Worker       6, 599, 7,
118*c8dee2aaSAndroid Build Coastguard Worker       6, 86, 29,
119*c8dee2aaSAndroid Build Coastguard Worker       6, 90, 7,
120*c8dee2aaSAndroid Build Coastguard Worker       6, 96, 29,
121*c8dee2aaSAndroid Build Coastguard Worker       6, 991, 31,
122*c8dee2aaSAndroid Build Coastguard Worker       7, 198, 12,
123*c8dee2aaSAndroid Build Coastguard Worker       7, 198, 20,
124*c8dee2aaSAndroid Build Coastguard Worker       7, 198, 33,
125*c8dee2aaSAndroid Build Coastguard Worker       7, 198, 35,
126*c8dee2aaSAndroid Build Coastguard Worker       7, 24, 12,
127*c8dee2aaSAndroid Build Coastguard Worker       7, 24, 20,
128*c8dee2aaSAndroid Build Coastguard Worker       7, 24, 33,
129*c8dee2aaSAndroid Build Coastguard Worker       7, 24, 35,
130*c8dee2aaSAndroid Build Coastguard Worker       7, 25, 12,
131*c8dee2aaSAndroid Build Coastguard Worker       7, 25, 20,
132*c8dee2aaSAndroid Build Coastguard Worker       7, 25, 33,
133*c8dee2aaSAndroid Build Coastguard Worker       7, 25, 35,
134*c8dee2aaSAndroid Build Coastguard Worker       7, 2, 12,
135*c8dee2aaSAndroid Build Coastguard Worker       7, 2, 20,
136*c8dee2aaSAndroid Build Coastguard Worker       7, 2, 33,
137*c8dee2aaSAndroid Build Coastguard Worker       7, 2, 35,
138*c8dee2aaSAndroid Build Coastguard Worker       7, 304, 1,
139*c8dee2aaSAndroid Build Coastguard Worker       7, 38, 29,
140*c8dee2aaSAndroid Build Coastguard Worker       7, 51, 29,
141*c8dee2aaSAndroid Build Coastguard Worker       7, 599, 12,
142*c8dee2aaSAndroid Build Coastguard Worker       7, 599, 20,
143*c8dee2aaSAndroid Build Coastguard Worker       7, 599, 33,
144*c8dee2aaSAndroid Build Coastguard Worker       7, 599, 35,
145*c8dee2aaSAndroid Build Coastguard Worker       7, 90, 12,
146*c8dee2aaSAndroid Build Coastguard Worker       7, 90, 20,
147*c8dee2aaSAndroid Build Coastguard Worker       7, 90, 33,
148*c8dee2aaSAndroid Build Coastguard Worker       7, 90, 35,
149*c8dee2aaSAndroid Build Coastguard Worker       8, 13, 5,
150*c8dee2aaSAndroid Build Coastguard Worker       8, 198, 13,
151*c8dee2aaSAndroid Build Coastguard Worker       8, 198, 23,
152*c8dee2aaSAndroid Build Coastguard Worker       8, 220, 1,
153*c8dee2aaSAndroid Build Coastguard Worker       8, 24, 13,
154*c8dee2aaSAndroid Build Coastguard Worker       8, 24, 23,
155*c8dee2aaSAndroid Build Coastguard Worker       8, 25, 13,
156*c8dee2aaSAndroid Build Coastguard Worker       8, 25, 23,
157*c8dee2aaSAndroid Build Coastguard Worker       8, 2, 13,
158*c8dee2aaSAndroid Build Coastguard Worker       8, 2, 23,
159*c8dee2aaSAndroid Build Coastguard Worker       8, 329, 28,
160*c8dee2aaSAndroid Build Coastguard Worker       8, 57, 10,
161*c8dee2aaSAndroid Build Coastguard Worker       8, 599, 13,
162*c8dee2aaSAndroid Build Coastguard Worker       8, 599, 23,
163*c8dee2aaSAndroid Build Coastguard Worker       8, 90, 13,
164*c8dee2aaSAndroid Build Coastguard Worker       8, 90, 23,
165*c8dee2aaSAndroid Build Coastguard Worker       9, 198, 17,
166*c8dee2aaSAndroid Build Coastguard Worker       9, 198, 19,
167*c8dee2aaSAndroid Build Coastguard Worker       9, 198, 37,
168*c8dee2aaSAndroid Build Coastguard Worker       9, 198, 5,
169*c8dee2aaSAndroid Build Coastguard Worker       9, 198, 8,
170*c8dee2aaSAndroid Build Coastguard Worker       9, 24, 17,
171*c8dee2aaSAndroid Build Coastguard Worker       9, 24, 19,
172*c8dee2aaSAndroid Build Coastguard Worker       9, 24, 37,
173*c8dee2aaSAndroid Build Coastguard Worker       9, 24, 5,
174*c8dee2aaSAndroid Build Coastguard Worker       9, 24, 8,
175*c8dee2aaSAndroid Build Coastguard Worker       9, 25, 17,
176*c8dee2aaSAndroid Build Coastguard Worker       9, 25, 19,
177*c8dee2aaSAndroid Build Coastguard Worker       9, 25, 37,
178*c8dee2aaSAndroid Build Coastguard Worker       9, 25, 5,
179*c8dee2aaSAndroid Build Coastguard Worker       9, 25, 8,
180*c8dee2aaSAndroid Build Coastguard Worker       9, 2, 17,
181*c8dee2aaSAndroid Build Coastguard Worker       9, 2, 19,
182*c8dee2aaSAndroid Build Coastguard Worker       9, 2, 37,
183*c8dee2aaSAndroid Build Coastguard Worker       9, 2, 5,
184*c8dee2aaSAndroid Build Coastguard Worker       9, 2, 8,
185*c8dee2aaSAndroid Build Coastguard Worker       9, 599, 17,
186*c8dee2aaSAndroid Build Coastguard Worker       9, 599, 19,
187*c8dee2aaSAndroid Build Coastguard Worker       9, 599, 37,
188*c8dee2aaSAndroid Build Coastguard Worker       9, 599, 5,
189*c8dee2aaSAndroid Build Coastguard Worker       9, 599, 8,
190*c8dee2aaSAndroid Build Coastguard Worker       9, 72, 29,
191*c8dee2aaSAndroid Build Coastguard Worker       9, 90, 17,
192*c8dee2aaSAndroid Build Coastguard Worker       9, 90, 19,
193*c8dee2aaSAndroid Build Coastguard Worker       9, 90, 37,
194*c8dee2aaSAndroid Build Coastguard Worker       9, 90, 5,
195*c8dee2aaSAndroid Build Coastguard Worker       9, 90, 8,
196*c8dee2aaSAndroid Build Coastguard Worker      10, 13, 11,
197*c8dee2aaSAndroid Build Coastguard Worker      10, 13, 9,
198*c8dee2aaSAndroid Build Coastguard Worker      10, 198, 26,
199*c8dee2aaSAndroid Build Coastguard Worker      10, 198, 28,
200*c8dee2aaSAndroid Build Coastguard Worker      10, 1, 23,
201*c8dee2aaSAndroid Build Coastguard Worker      10, 1, 4,
202*c8dee2aaSAndroid Build Coastguard Worker      10, 1, 6,
203*c8dee2aaSAndroid Build Coastguard Worker      10, 24, 26,
204*c8dee2aaSAndroid Build Coastguard Worker      10, 24, 28,
205*c8dee2aaSAndroid Build Coastguard Worker      10, 25, 26,
206*c8dee2aaSAndroid Build Coastguard Worker      10, 25, 28,
207*c8dee2aaSAndroid Build Coastguard Worker      10, 26, 24,
208*c8dee2aaSAndroid Build Coastguard Worker      10, 2, 26,
209*c8dee2aaSAndroid Build Coastguard Worker      10, 2, 28,
210*c8dee2aaSAndroid Build Coastguard Worker      10, 599, 26,
211*c8dee2aaSAndroid Build Coastguard Worker      10, 599, 28,
212*c8dee2aaSAndroid Build Coastguard Worker      10, 90, 26,
213*c8dee2aaSAndroid Build Coastguard Worker      10, 90, 28,
214*c8dee2aaSAndroid Build Coastguard Worker      11, 198, 27,
215*c8dee2aaSAndroid Build Coastguard Worker      11, 24, 27,
216*c8dee2aaSAndroid Build Coastguard Worker      11, 25, 27,
217*c8dee2aaSAndroid Build Coastguard Worker      11, 2, 27,
218*c8dee2aaSAndroid Build Coastguard Worker      11, 599, 27,
219*c8dee2aaSAndroid Build Coastguard Worker      11, 90, 27,
220*c8dee2aaSAndroid Build Coastguard Worker      12, 198, 14,
221*c8dee2aaSAndroid Build Coastguard Worker      12, 198, 21,
222*c8dee2aaSAndroid Build Coastguard Worker      12, 198, 3,
223*c8dee2aaSAndroid Build Coastguard Worker      12, 1, 11,
224*c8dee2aaSAndroid Build Coastguard Worker      12, 1, 2,
225*c8dee2aaSAndroid Build Coastguard Worker      12, 1, 8,
226*c8dee2aaSAndroid Build Coastguard Worker      12, 24, 14,
227*c8dee2aaSAndroid Build Coastguard Worker      12, 24, 21,
228*c8dee2aaSAndroid Build Coastguard Worker      12, 24, 3,
229*c8dee2aaSAndroid Build Coastguard Worker      12, 25, 14,
230*c8dee2aaSAndroid Build Coastguard Worker      12, 25, 21,
231*c8dee2aaSAndroid Build Coastguard Worker      12, 25, 3,
232*c8dee2aaSAndroid Build Coastguard Worker      12, 26, 7,
233*c8dee2aaSAndroid Build Coastguard Worker      12, 2, 14,
234*c8dee2aaSAndroid Build Coastguard Worker      12, 2, 21,
235*c8dee2aaSAndroid Build Coastguard Worker      12, 2, 3,
236*c8dee2aaSAndroid Build Coastguard Worker      12, 329, 14,
237*c8dee2aaSAndroid Build Coastguard Worker      12, 38, 2,
238*c8dee2aaSAndroid Build Coastguard Worker      12, 599, 14,
239*c8dee2aaSAndroid Build Coastguard Worker      12, 599, 21,
240*c8dee2aaSAndroid Build Coastguard Worker      12, 599, 3,
241*c8dee2aaSAndroid Build Coastguard Worker      12, 90, 14,
242*c8dee2aaSAndroid Build Coastguard Worker      12, 90, 21,
243*c8dee2aaSAndroid Build Coastguard Worker      12, 90, 3,
244*c8dee2aaSAndroid Build Coastguard Worker      13, 198, 11,
245*c8dee2aaSAndroid Build Coastguard Worker      13, 198, 15,
246*c8dee2aaSAndroid Build Coastguard Worker      13, 198, 31,
247*c8dee2aaSAndroid Build Coastguard Worker      13, 24, 11,
248*c8dee2aaSAndroid Build Coastguard Worker      13, 24, 15,
249*c8dee2aaSAndroid Build Coastguard Worker      13, 24, 31,
250*c8dee2aaSAndroid Build Coastguard Worker      13, 25, 11,
251*c8dee2aaSAndroid Build Coastguard Worker      13, 25, 15,
252*c8dee2aaSAndroid Build Coastguard Worker      13, 25, 31,
253*c8dee2aaSAndroid Build Coastguard Worker      13, 2, 11,
254*c8dee2aaSAndroid Build Coastguard Worker      13, 2, 15,
255*c8dee2aaSAndroid Build Coastguard Worker      13, 2, 31,
256*c8dee2aaSAndroid Build Coastguard Worker      13, 57, 13,
257*c8dee2aaSAndroid Build Coastguard Worker      13, 599, 11,
258*c8dee2aaSAndroid Build Coastguard Worker      13, 599, 15,
259*c8dee2aaSAndroid Build Coastguard Worker      13, 599, 31,
260*c8dee2aaSAndroid Build Coastguard Worker      13, 71, 29,
261*c8dee2aaSAndroid Build Coastguard Worker      13, 90, 11,
262*c8dee2aaSAndroid Build Coastguard Worker      13, 90, 15,
263*c8dee2aaSAndroid Build Coastguard Worker      13, 90, 31,
264*c8dee2aaSAndroid Build Coastguard Worker      14, 13, 2,
265*c8dee2aaSAndroid Build Coastguard Worker      14, 198, 10,
266*c8dee2aaSAndroid Build Coastguard Worker      14, 24, 10,
267*c8dee2aaSAndroid Build Coastguard Worker      14, 25, 10,
268*c8dee2aaSAndroid Build Coastguard Worker      14, 26, 12,
269*c8dee2aaSAndroid Build Coastguard Worker      14, 26, 20,
270*c8dee2aaSAndroid Build Coastguard Worker      14, 26, 33,
271*c8dee2aaSAndroid Build Coastguard Worker      14, 26, 35,
272*c8dee2aaSAndroid Build Coastguard Worker      14, 2, 10,
273*c8dee2aaSAndroid Build Coastguard Worker      14, 336, 1,
274*c8dee2aaSAndroid Build Coastguard Worker      14, 45, 29,
275*c8dee2aaSAndroid Build Coastguard Worker      14, 599, 10,
276*c8dee2aaSAndroid Build Coastguard Worker      14, 63, 29,
277*c8dee2aaSAndroid Build Coastguard Worker      14, 90, 10,
278*c8dee2aaSAndroid Build Coastguard Worker      15, 13, 3,
279*c8dee2aaSAndroid Build Coastguard Worker      15, 198, 2,
280*c8dee2aaSAndroid Build Coastguard Worker      15, 198, 29,
281*c8dee2aaSAndroid Build Coastguard Worker      15, 198, 34,
282*c8dee2aaSAndroid Build Coastguard Worker      15, 24, 2,
283*c8dee2aaSAndroid Build Coastguard Worker      15, 24, 29,
284*c8dee2aaSAndroid Build Coastguard Worker      15, 24, 34,
285*c8dee2aaSAndroid Build Coastguard Worker      15, 25, 2,
286*c8dee2aaSAndroid Build Coastguard Worker      15, 25, 29,
287*c8dee2aaSAndroid Build Coastguard Worker      15, 25, 34,
288*c8dee2aaSAndroid Build Coastguard Worker      15, 2, 2,
289*c8dee2aaSAndroid Build Coastguard Worker      15, 2, 29,
290*c8dee2aaSAndroid Build Coastguard Worker      15, 2, 34,
291*c8dee2aaSAndroid Build Coastguard Worker      15, 599, 2,
292*c8dee2aaSAndroid Build Coastguard Worker      15, 599, 29,
293*c8dee2aaSAndroid Build Coastguard Worker      15, 599, 34,
294*c8dee2aaSAndroid Build Coastguard Worker      15, 90, 2,
295*c8dee2aaSAndroid Build Coastguard Worker      15, 90, 29,
296*c8dee2aaSAndroid Build Coastguard Worker      15, 90, 34,
297*c8dee2aaSAndroid Build Coastguard Worker      16, 13, 4,
298*c8dee2aaSAndroid Build Coastguard Worker      16, 13, 6,
299*c8dee2aaSAndroid Build Coastguard Worker      16, 198, 16,
300*c8dee2aaSAndroid Build Coastguard Worker      16, 198, 9,
301*c8dee2aaSAndroid Build Coastguard Worker      16, 1, 10,
302*c8dee2aaSAndroid Build Coastguard Worker      16, 24, 16,
303*c8dee2aaSAndroid Build Coastguard Worker      16, 24, 9,
304*c8dee2aaSAndroid Build Coastguard Worker      16, 25, 16,
305*c8dee2aaSAndroid Build Coastguard Worker      16, 25, 9,
306*c8dee2aaSAndroid Build Coastguard Worker      16, 26, 13,
307*c8dee2aaSAndroid Build Coastguard Worker      16, 26, 23,
308*c8dee2aaSAndroid Build Coastguard Worker      16, 2, 16,
309*c8dee2aaSAndroid Build Coastguard Worker      16, 2, 9,
310*c8dee2aaSAndroid Build Coastguard Worker      16, 599, 16,
311*c8dee2aaSAndroid Build Coastguard Worker      16, 599, 9,
312*c8dee2aaSAndroid Build Coastguard Worker      16, 90, 16,
313*c8dee2aaSAndroid Build Coastguard Worker      16, 90, 9,
314*c8dee2aaSAndroid Build Coastguard Worker      17, 13, 7,
315*c8dee2aaSAndroid Build Coastguard Worker      17, 198, 18,
316*c8dee2aaSAndroid Build Coastguard Worker      17, 24, 18,
317*c8dee2aaSAndroid Build Coastguard Worker      17, 25, 18,
318*c8dee2aaSAndroid Build Coastguard Worker      17, 2, 18,
319*c8dee2aaSAndroid Build Coastguard Worker      17, 599, 18,
320*c8dee2aaSAndroid Build Coastguard Worker      17, 90, 18,
321*c8dee2aaSAndroid Build Coastguard Worker      18, 198, 22,
322*c8dee2aaSAndroid Build Coastguard Worker      18, 198, 32,
323*c8dee2aaSAndroid Build Coastguard Worker      18, 198, 36,
324*c8dee2aaSAndroid Build Coastguard Worker      18, 198, 4,
325*c8dee2aaSAndroid Build Coastguard Worker      18, 24, 22,
326*c8dee2aaSAndroid Build Coastguard Worker      18, 24, 32,
327*c8dee2aaSAndroid Build Coastguard Worker      18, 24, 36,
328*c8dee2aaSAndroid Build Coastguard Worker      18, 24, 4,
329*c8dee2aaSAndroid Build Coastguard Worker      18, 25, 22,
330*c8dee2aaSAndroid Build Coastguard Worker      18, 25, 32,
331*c8dee2aaSAndroid Build Coastguard Worker      18, 25, 36,
332*c8dee2aaSAndroid Build Coastguard Worker      18, 25, 4,
333*c8dee2aaSAndroid Build Coastguard Worker      18, 26, 17,
334*c8dee2aaSAndroid Build Coastguard Worker      18, 26, 19,
335*c8dee2aaSAndroid Build Coastguard Worker      18, 26, 37,
336*c8dee2aaSAndroid Build Coastguard Worker      18, 26, 5,
337*c8dee2aaSAndroid Build Coastguard Worker      18, 26, 8,
338*c8dee2aaSAndroid Build Coastguard Worker      18, 2, 22,
339*c8dee2aaSAndroid Build Coastguard Worker      18, 2, 32,
340*c8dee2aaSAndroid Build Coastguard Worker      18, 2, 36,
341*c8dee2aaSAndroid Build Coastguard Worker      18, 2, 4,
342*c8dee2aaSAndroid Build Coastguard Worker      18, 599, 22,
343*c8dee2aaSAndroid Build Coastguard Worker      18, 599, 32,
344*c8dee2aaSAndroid Build Coastguard Worker      18, 599, 36,
345*c8dee2aaSAndroid Build Coastguard Worker      18, 599, 4,
346*c8dee2aaSAndroid Build Coastguard Worker      18, 90, 22,
347*c8dee2aaSAndroid Build Coastguard Worker      18, 90, 32,
348*c8dee2aaSAndroid Build Coastguard Worker      18, 90, 36,
349*c8dee2aaSAndroid Build Coastguard Worker      18, 90, 4,
350*c8dee2aaSAndroid Build Coastguard Worker      19, 13, 10,
351*c8dee2aaSAndroid Build Coastguard Worker      20, 1254, 30,
352*c8dee2aaSAndroid Build Coastguard Worker      20, 16, 1007,
353*c8dee2aaSAndroid Build Coastguard Worker      20, 26, 26,
354*c8dee2aaSAndroid Build Coastguard Worker      20, 26, 28,
355*c8dee2aaSAndroid Build Coastguard Worker      21, 198, 6,
356*c8dee2aaSAndroid Build Coastguard Worker      21, 24, 6,
357*c8dee2aaSAndroid Build Coastguard Worker      21, 25, 6,
358*c8dee2aaSAndroid Build Coastguard Worker      21, 2, 6,
359*c8dee2aaSAndroid Build Coastguard Worker      21, 599, 6,
360*c8dee2aaSAndroid Build Coastguard Worker      21, 90, 6,
361*c8dee2aaSAndroid Build Coastguard Worker      22, 198, 38,
362*c8dee2aaSAndroid Build Coastguard Worker      22, 22, 40,
363*c8dee2aaSAndroid Build Coastguard Worker      22, 24, 38,
364*c8dee2aaSAndroid Build Coastguard Worker      22, 25, 38,
365*c8dee2aaSAndroid Build Coastguard Worker      22, 26, 27,
366*c8dee2aaSAndroid Build Coastguard Worker      22, 2, 38,
367*c8dee2aaSAndroid Build Coastguard Worker      22, 599, 38,
368*c8dee2aaSAndroid Build Coastguard Worker      22, 90, 38,
369*c8dee2aaSAndroid Build Coastguard Worker      23, 1254, 1160,
370*c8dee2aaSAndroid Build Coastguard Worker      24, 220, 930,
371*c8dee2aaSAndroid Build Coastguard Worker      24, 26, 14,
372*c8dee2aaSAndroid Build Coastguard Worker      24, 26, 21,
373*c8dee2aaSAndroid Build Coastguard Worker      24, 26, 3,
374*c8dee2aaSAndroid Build Coastguard Worker      26, 11, 11,
375*c8dee2aaSAndroid Build Coastguard Worker      26, 1, 13,
376*c8dee2aaSAndroid Build Coastguard Worker      26, 26, 11,
377*c8dee2aaSAndroid Build Coastguard Worker      26, 26, 15,
378*c8dee2aaSAndroid Build Coastguard Worker      26, 26, 31,
379*c8dee2aaSAndroid Build Coastguard Worker      28, 26, 10,
380*c8dee2aaSAndroid Build Coastguard Worker      30, 176, 60,
381*c8dee2aaSAndroid Build Coastguard Worker      30, 26, 2,
382*c8dee2aaSAndroid Build Coastguard Worker      30, 26, 29,
383*c8dee2aaSAndroid Build Coastguard Worker      30, 26, 34,
384*c8dee2aaSAndroid Build Coastguard Worker      32, 26, 16,
385*c8dee2aaSAndroid Build Coastguard Worker      32, 26, 9,
386*c8dee2aaSAndroid Build Coastguard Worker      34, 26, 18,
387*c8dee2aaSAndroid Build Coastguard Worker      36, 26, 22,
388*c8dee2aaSAndroid Build Coastguard Worker      36, 26, 32,
389*c8dee2aaSAndroid Build Coastguard Worker      36, 26, 36,
390*c8dee2aaSAndroid Build Coastguard Worker      36, 26, 4,
391*c8dee2aaSAndroid Build Coastguard Worker      36, 37, 26,
392*c8dee2aaSAndroid Build Coastguard Worker      42, 26, 6,
393*c8dee2aaSAndroid Build Coastguard Worker      43, 115, 29,
394*c8dee2aaSAndroid Build Coastguard Worker      44, 198, 25,
395*c8dee2aaSAndroid Build Coastguard Worker      44, 24, 25,
396*c8dee2aaSAndroid Build Coastguard Worker      44, 25, 25,
397*c8dee2aaSAndroid Build Coastguard Worker      44, 26, 38,
398*c8dee2aaSAndroid Build Coastguard Worker      44, 2, 25,
399*c8dee2aaSAndroid Build Coastguard Worker      44, 599, 25,
400*c8dee2aaSAndroid Build Coastguard Worker      44, 90, 25,
401*c8dee2aaSAndroid Build Coastguard Worker      46, 22, 1,
402*c8dee2aaSAndroid Build Coastguard Worker      47, 198, 30,
403*c8dee2aaSAndroid Build Coastguard Worker      47, 25, 30,
404*c8dee2aaSAndroid Build Coastguard Worker      47, 2, 30,
405*c8dee2aaSAndroid Build Coastguard Worker      47, 599, 30,
406*c8dee2aaSAndroid Build Coastguard Worker      47, 90, 30,
407*c8dee2aaSAndroid Build Coastguard Worker      48, 24, 30,
408*c8dee2aaSAndroid Build Coastguard Worker      52, 176, 30,
409*c8dee2aaSAndroid Build Coastguard Worker      58, 140, 24,
410*c8dee2aaSAndroid Build Coastguard Worker      58, 4, 30,
411*c8dee2aaSAndroid Build Coastguard Worker      63, 990, 29,
412*c8dee2aaSAndroid Build Coastguard Worker      64, 1254, 1,
413*c8dee2aaSAndroid Build Coastguard Worker      88, 26, 25,
414*c8dee2aaSAndroid Build Coastguard Worker      92, 198, 39,
415*c8dee2aaSAndroid Build Coastguard Worker      92, 25, 39,
416*c8dee2aaSAndroid Build Coastguard Worker      92, 2, 39,
417*c8dee2aaSAndroid Build Coastguard Worker      92, 599, 39,
418*c8dee2aaSAndroid Build Coastguard Worker      92, 90, 39,
419*c8dee2aaSAndroid Build Coastguard Worker      93, 24, 39,
420*c8dee2aaSAndroid Build Coastguard Worker      94, 26, 30,
421*c8dee2aaSAndroid Build Coastguard Worker     108, 1254, 1051,
422*c8dee2aaSAndroid Build Coastguard Worker     117, 140, 1,
423*c8dee2aaSAndroid Build Coastguard Worker     119, 160, 1,
424*c8dee2aaSAndroid Build Coastguard Worker     126, 1, 29,
425*c8dee2aaSAndroid Build Coastguard Worker     132, 135, 16,
426*c8dee2aaSAndroid Build Coastguard Worker     147, 72, 16,
427*c8dee2aaSAndroid Build Coastguard Worker     184, 26, 39,
428*c8dee2aaSAndroid Build Coastguard Worker     238, 990, 1,
429*c8dee2aaSAndroid Build Coastguard Worker     376, 11, 1007,
430*c8dee2aaSAndroid Build Coastguard Worker     380, 11, 487,
431*c8dee2aaSAndroid Build Coastguard Worker    1389, 1034, 1007,
432*c8dee2aaSAndroid Build Coastguard Worker    1870, 57, 16,
433*c8dee2aaSAndroid Build Coastguard Worker    4034, 1, 16,
434*c8dee2aaSAndroid Build Coastguard Worker    8521, 198, 40,
435*c8dee2aaSAndroid Build Coastguard Worker    8521, 25, 40,
436*c8dee2aaSAndroid Build Coastguard Worker    8521, 2, 40,
437*c8dee2aaSAndroid Build Coastguard Worker    8521, 599, 40,
438*c8dee2aaSAndroid Build Coastguard Worker    8521, 90, 40,
439*c8dee2aaSAndroid Build Coastguard Worker    8543, 24, 40,
440*c8dee2aaSAndroid Build Coastguard Worker    8883, 13, 13,
441*c8dee2aaSAndroid Build Coastguard Worker   17042, 26, 40,
442*c8dee2aaSAndroid Build Coastguard Worker   17664, 198, 1,
443*c8dee2aaSAndroid Build Coastguard Worker   17664, 25, 1,
444*c8dee2aaSAndroid Build Coastguard Worker   17664, 2, 1,
445*c8dee2aaSAndroid Build Coastguard Worker   17664, 599, 1,
446*c8dee2aaSAndroid Build Coastguard Worker   17664, 90, 1,
447*c8dee2aaSAndroid Build Coastguard Worker   17710, 24, 1,
448*c8dee2aaSAndroid Build Coastguard Worker   35328, 26, 1,
449*c8dee2aaSAndroid Build Coastguard Worker };
450*c8dee2aaSAndroid Build Coastguard Worker 
451*c8dee2aaSAndroid Build Coastguard Worker /// Emulates the mix of rects blitted by gmail during scrolling
452*c8dee2aaSAndroid Build Coastguard Worker class ScrollGmailBench : public Benchmark {
453*c8dee2aaSAndroid Build Coastguard Worker     enum {
454*c8dee2aaSAndroid Build Coastguard Worker         W = 1254,
455*c8dee2aaSAndroid Build Coastguard Worker         H = 1160,
456*c8dee2aaSAndroid Build Coastguard Worker         N = 431
457*c8dee2aaSAndroid Build Coastguard Worker     };
458*c8dee2aaSAndroid Build Coastguard Worker public:
ScrollGmailBench()459*c8dee2aaSAndroid Build Coastguard Worker     ScrollGmailBench()  { }
460*c8dee2aaSAndroid Build Coastguard Worker 
461*c8dee2aaSAndroid Build Coastguard Worker protected:
462*c8dee2aaSAndroid Build Coastguard Worker 
onGetName()463*c8dee2aaSAndroid Build Coastguard Worker     const char* onGetName() override { return "chrome_scrollGmail"; }
onDraw(int loops,SkCanvas * canvas)464*c8dee2aaSAndroid Build Coastguard Worker     void onDraw(int loops, SkCanvas* canvas) override {
465*c8dee2aaSAndroid Build Coastguard Worker         SkDEBUGCODE(this->validateBounds(canvas));
466*c8dee2aaSAndroid Build Coastguard Worker         SkPaint paint;
467*c8dee2aaSAndroid Build Coastguard Worker         this->setupPaint(&paint);
468*c8dee2aaSAndroid Build Coastguard Worker         for (int i = 0; i < N; i++) {
469*c8dee2aaSAndroid Build Coastguard Worker             SkRect current;
470*c8dee2aaSAndroid Build Coastguard Worker             setRectangle(current, i);
471*c8dee2aaSAndroid Build Coastguard Worker             for (int j = 0; j < loops * gmailScrollingRectSpec[i*3]; j++) {
472*c8dee2aaSAndroid Build Coastguard Worker                 canvas->drawRect(current, paint);
473*c8dee2aaSAndroid Build Coastguard Worker             }
474*c8dee2aaSAndroid Build Coastguard Worker         }
475*c8dee2aaSAndroid Build Coastguard Worker     }
onGetSize()476*c8dee2aaSAndroid Build Coastguard Worker     SkISize onGetSize() override { return SkISize::Make(W, H); }
477*c8dee2aaSAndroid Build Coastguard Worker 
setRectangle(SkRect & current,int i)478*c8dee2aaSAndroid Build Coastguard Worker     void setRectangle(SkRect& current, int i) {
479*c8dee2aaSAndroid Build Coastguard Worker         current.setWH(SkIntToScalar(gmailScrollingRectSpec[i*3+1]),
480*c8dee2aaSAndroid Build Coastguard Worker                       SkIntToScalar(gmailScrollingRectSpec[i*3+2]));
481*c8dee2aaSAndroid Build Coastguard Worker     }
validateBounds(SkCanvas * canvas)482*c8dee2aaSAndroid Build Coastguard Worker     void validateBounds(SkCanvas* canvas) {
483*c8dee2aaSAndroid Build Coastguard Worker #ifdef SK_DEBUG
484*c8dee2aaSAndroid Build Coastguard Worker         SkIRect bounds = canvas->getDeviceClipBounds();
485*c8dee2aaSAndroid Build Coastguard Worker         SkASSERT(bounds.right()-bounds.left() >= W);
486*c8dee2aaSAndroid Build Coastguard Worker         SkASSERT(bounds.bottom()-bounds.top() >= H);
487*c8dee2aaSAndroid Build Coastguard Worker #endif
488*c8dee2aaSAndroid Build Coastguard Worker     }
489*c8dee2aaSAndroid Build Coastguard Worker 
490*c8dee2aaSAndroid Build Coastguard Worker 
491*c8dee2aaSAndroid Build Coastguard Worker private:
492*c8dee2aaSAndroid Build Coastguard Worker     using INHERITED = Benchmark;
493*c8dee2aaSAndroid Build Coastguard Worker };
494*c8dee2aaSAndroid Build Coastguard Worker 
495*c8dee2aaSAndroid Build Coastguard Worker // Disabled this benchmark: it takes 15x longer than any other benchmark
496*c8dee2aaSAndroid Build Coastguard Worker // and is probably not giving us important information.
497*c8dee2aaSAndroid Build Coastguard Worker // DEF_BENCH(return new ScrollGmailBench);
498