Flutter Engine
 
Loading...
Searching...
No Matches
dl_benchmarks.h
Go to the documentation of this file.
1// Copyright 2013 The Flutter 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
5#ifndef FLUTTER_DISPLAY_LIST_BENCHMARKING_DL_BENCHMARKS_H_
6#define FLUTTER_DISPLAY_LIST_BENCHMARKING_DL_BENCHMARKS_H_
7
12
13#include "third_party/benchmark/include/benchmark/benchmark.h"
14
15namespace flutter {
16namespace testing {
17
25
26enum class RRectType {
27 kSimple,
30};
31
32enum class PathVerb {
33 kLine,
34 kQuad,
35 kConic,
36 kCubic,
37};
38
39DlPaint GetPaintForRun(unsigned attributes);
40
42
43// Benchmarks
44
45void BM_DrawLine(benchmark::State& state,
46 BackendType backend_type,
47 unsigned attributes);
48void BM_DrawRect(benchmark::State& state,
49 BackendType backend_type,
50 unsigned attributes);
51void BM_DrawCircle(benchmark::State& state,
52 BackendType backend_type,
53 unsigned attributes);
54void BM_DrawOval(benchmark::State& state,
55 BackendType backend_type,
56 unsigned attributes);
57void BM_DrawArc(benchmark::State& state,
58 BackendType backend_type,
59 unsigned attributes);
60void BM_DrawRRect(benchmark::State& state,
61 BackendType backend_type,
62 unsigned attributes,
64void BM_DrawDRRect(benchmark::State& state,
65 BackendType backend_type,
66 unsigned attributes,
68void BM_DrawPath(benchmark::State& state,
69 BackendType backend_type,
70 unsigned attributes,
72void BM_DrawPoints(benchmark::State& state,
73 BackendType backend_type,
74 unsigned attributes,
75 DlPointMode mode);
76void BM_DrawVertices(benchmark::State& state,
77 BackendType backend_type,
78 unsigned attributes,
79 DlVertexMode mode);
80void BM_DrawImage(benchmark::State& state,
81 BackendType backend_type,
82 unsigned attributes,
83 DlImageSampling options,
84 bool upload_bitmap);
85void BM_DrawImageRect(benchmark::State& state,
86 BackendType backend_type,
87 unsigned attributes,
88 DlImageSampling options,
89 DlSrcRectConstraint constraint,
90 bool upload_bitmap);
91void BM_DrawImageNine(benchmark::State& state,
92 BackendType backend_type,
93 unsigned attributes,
94 const DlFilterMode filter,
95 bool upload_bitmap);
96void BM_DrawTextBlob(benchmark::State& state,
97 BackendType backend_type,
98 unsigned attributes);
99void BM_DrawShadow(benchmark::State& state,
100 BackendType backend_type,
101 unsigned attributes,
102 bool transparent_occluder,
103 PathVerb type);
104void BM_SaveLayer(benchmark::State& state,
105 BackendType backend_type,
106 unsigned attributes,
107 size_t save_depth);
108// clang-format off
109
110// DrawLine
111#define DRAW_LINE_BENCHMARKS(BACKEND, ATTRIBUTES) \
112 BENCHMARK_CAPTURE(BM_DrawLine, BACKEND, \
113 BackendType::k##BACKEND##Backend, \
114 ATTRIBUTES) \
115 ->RangeMultiplier(2) \
116 ->Range(16, 2048) \
117 ->UseRealTime() \
118 ->Unit(benchmark::kMillisecond);
119
120// DrawRect
121#define DRAW_RECT_BENCHMARKS(BACKEND, ATTRIBUTES) \
122 BENCHMARK_CAPTURE(BM_DrawRect, BACKEND, \
123 BackendType::k##BACKEND##Backend, \
124 ATTRIBUTES) \
125 ->RangeMultiplier(2) \
126 ->Range(16, 2048) \
127 ->UseRealTime() \
128 ->Unit(benchmark::kMillisecond);
129
130// DrawOval
131#define DRAW_OVAL_BENCHMARKS(BACKEND, ATTRIBUTES) \
132 BENCHMARK_CAPTURE(BM_DrawOval, BACKEND, \
133 BackendType::k##BACKEND##Backend, \
134 ATTRIBUTES) \
135 ->RangeMultiplier(2) \
136 ->Range(16, 2048) \
137 ->UseRealTime() \
138 ->Unit(benchmark::kMillisecond);
139
140// DrawCircle
141#define DRAW_CIRCLE_BENCHMARKS(BACKEND, ATTRIBUTES) \
142 BENCHMARK_CAPTURE(BM_DrawCircle, BACKEND, \
143 BackendType::k##BACKEND##Backend, \
144 ATTRIBUTES) \
145 ->RangeMultiplier(2) \
146 ->Range(16, 2048) \
147 ->UseRealTime() \
148 ->Unit(benchmark::kMillisecond);
149
150// DrawArc
151#define DRAW_ARC_BENCHMARKS(BACKEND, ATTRIBUTES) \
152 BENCHMARK_CAPTURE(BM_DrawArc, BACKEND, \
153 BackendType::k##BACKEND##Backend, \
154 ATTRIBUTES) \
155 ->RangeMultiplier(2) \
156 ->Range(128, 2048) \
157 ->UseRealTime() \
158 ->Unit(benchmark::kMillisecond);
159
160// DrawPath
161#define DRAW_PATH_BENCHMARKS(BACKEND, ATTRIBUTES) \
162 BENCHMARK_CAPTURE(BM_DrawPath, \
163 Lines/BACKEND, \
164 BackendType::k##BACKEND##Backend, \
165 ATTRIBUTES, \
166 PathVerb::kLine) \
167 ->RangeMultiplier(2) \
168 ->Range(8, 512) \
169 ->UseRealTime() \
170 ->Unit(benchmark::kMillisecond) \
171 ->Complexity(); \
172 \
173 BENCHMARK_CAPTURE(BM_DrawPath, \
174 Quads/BACKEND, \
175 BackendType::k##BACKEND##Backend, \
176 ATTRIBUTES, \
177 PathVerb::kQuad) \
178 ->RangeMultiplier(2) \
179 ->Range(8, 512) \
180 ->UseRealTime() \
181 ->Unit(benchmark::kMillisecond) \
182 ->Complexity(); \
183 \
184 BENCHMARK_CAPTURE(BM_DrawPath, \
185 Conics/BACKEND, \
186 BackendType::k##BACKEND##Backend, \
187 ATTRIBUTES, \
188 PathVerb::kConic) \
189 ->RangeMultiplier(2) \
190 ->Range(8, 512) \
191 ->UseRealTime() \
192 ->Unit(benchmark::kMillisecond) \
193 ->Complexity(); \
194 \
195 BENCHMARK_CAPTURE(BM_DrawPath, \
196 Cubics/BACKEND, \
197 BackendType::k##BACKEND##Backend, \
198 ATTRIBUTES, \
199 PathVerb::kCubic) \
200 ->RangeMultiplier(2) \
201 ->Range(8, 512) \
202 ->UseRealTime() \
203 ->Unit(benchmark::kMillisecond) \
204 ->Complexity();
205
206// DrawPoints
207#define DRAW_POINTS_BENCHMARKS(BACKEND, ATTRIBUTES) \
208 BENCHMARK_CAPTURE(BM_DrawPoints, Points/BACKEND, \
209 BackendType::k##BACKEND##Backend, \
210 ATTRIBUTES, \
211 DlPointMode::kPoints) \
212 ->RangeMultiplier(2) \
213 ->Range(1024, 32768) \
214 ->UseRealTime() \
215 ->Unit(benchmark::kMillisecond); \
216 \
217 BENCHMARK_CAPTURE(BM_DrawPoints, Lines/BACKEND, \
218 BackendType::k##BACKEND##Backend, \
219 ATTRIBUTES, \
220 DlPointMode::kLines) \
221 ->RangeMultiplier(2) \
222 ->Range(1024, 32768) \
223 ->UseRealTime() \
224 ->Unit(benchmark::kMillisecond); \
225 \
226 BENCHMARK_CAPTURE(BM_DrawPoints, Polygon/BACKEND, \
227 BackendType::k##BACKEND##Backend, \
228 ATTRIBUTES, \
229 DlPointMode::kPolygon) \
230 ->RangeMultiplier(2) \
231 ->Range(1024, 32768) \
232 ->UseRealTime() \
233 ->Unit(benchmark::kMillisecond);
234
235// DrawVertices
236#define DRAW_VERTICES_BENCHMARKS(BACKEND, ATTRIBUTES) \
237 BENCHMARK_CAPTURE(BM_DrawVertices, \
238 TriangleStrip/BACKEND, \
239 BackendType::k##BACKEND##Backend, \
240 ATTRIBUTES, \
241 DlVertexMode::kTriangleStrip) \
242 ->RangeMultiplier(2) \
243 ->Range(16, 2048) \
244 ->UseRealTime() \
245 ->Unit(benchmark::kMillisecond) \
246 ->Complexity(); \
247 \
248 BENCHMARK_CAPTURE(BM_DrawVertices, \
249 TriangleFan/BACKEND, \
250 BackendType::k##BACKEND##Backend, \
251 ATTRIBUTES, \
252 DlVertexMode::kTriangleFan) \
253 ->RangeMultiplier(2) \
254 ->Range(16, 2048) \
255 ->UseRealTime() \
256 ->Unit(benchmark::kMillisecond) \
257 ->Complexity(); \
258 \
259 BENCHMARK_CAPTURE(BM_DrawVertices, \
260 Triangles/BACKEND, \
261 BackendType::k##BACKEND##Backend, \
262 ATTRIBUTES, \
263 DlVertexMode::kTriangles) \
264 ->RangeMultiplier(2) \
265 ->Range(16, 2048) \
266 ->UseRealTime() \
267 ->Unit(benchmark::kMillisecond) \
268 ->Complexity();
269
270// DrawRRect
271#define DRAW_RRECT_BENCHMARKS(BACKEND, ATTRIBUTES) \
272 BENCHMARK_CAPTURE(BM_DrawRRect, Symmetric/BACKEND, \
273 BackendType::k##BACKEND##Backend, \
274 ATTRIBUTES, \
275 RRectType::kSimple) \
276 ->RangeMultiplier(2) \
277 ->Range(16, 256) \
278 ->UseRealTime() \
279 ->Unit(benchmark::kMillisecond); \
280 \
281 BENCHMARK_CAPTURE(BM_DrawRRect, NinePatch/BACKEND, \
282 BackendType::k##BACKEND##Backend, \
283 ATTRIBUTES, \
284 RRectType::kNinePatch) \
285 ->RangeMultiplier(2) \
286 ->Range(16, 256) \
287 ->UseRealTime() \
288 ->Unit(benchmark::kMillisecond); \
289 \
290 BENCHMARK_CAPTURE(BM_DrawRRect, Complex/BACKEND, \
291 BackendType::k##BACKEND##Backend, \
292 ATTRIBUTES, \
293 RRectType::kComplex) \
294 ->RangeMultiplier(2) \
295 ->Range(16, 256) \
296 ->UseRealTime() \
297 ->Unit(benchmark::kMillisecond);
298
299// DrawDRRect
300#define DRAW_DRRECT_BENCHMARKS(BACKEND, ATTRIBUTES) \
301 BENCHMARK_CAPTURE(BM_DrawDRRect, Symmetric/BACKEND, \
302 BackendType::k##BACKEND##Backend, \
303 ATTRIBUTES, \
304 RRectType::kSimple) \
305 ->RangeMultiplier(2) \
306 ->Range(16, 256) \
307 ->UseRealTime() \
308 ->Unit(benchmark::kMillisecond); \
309 \
310 BENCHMARK_CAPTURE(BM_DrawDRRect, NinePatch/BACKEND, \
311 BackendType::k##BACKEND##Backend, \
312 ATTRIBUTES, \
313 RRectType::kNinePatch) \
314 ->RangeMultiplier(2) \
315 ->Range(16, 256) \
316 ->UseRealTime() \
317 ->Unit(benchmark::kMillisecond); \
318 \
319 BENCHMARK_CAPTURE(BM_DrawDRRect, Complex/BACKEND, \
320 BackendType::k##BACKEND##Backend, \
321 ATTRIBUTES, \
322 RRectType::kComplex) \
323 ->RangeMultiplier(2) \
324 ->Range(16, 256) \
325 ->UseRealTime() \
326 ->Unit(benchmark::kMillisecond);
327
328// DrawImage
329#define DRAW_IMAGE_BENCHMARKS(BACKEND, ATTRIBUTES) \
330 BENCHMARK_CAPTURE(BM_DrawImage, Texture/BACKEND, \
331 BackendType::k##BACKEND##Backend, \
332 ATTRIBUTES, \
333 DlImageSampling::kNearestNeighbor, false) \
334 ->RangeMultiplier(2) \
335 ->Range(128, 512) \
336 ->UseRealTime() \
337 ->Unit(benchmark::kMillisecond); \
338 \
339 BENCHMARK_CAPTURE(BM_DrawImage, Upload/BACKEND, \
340 BackendType::k##BACKEND##Backend, \
341 ATTRIBUTES, \
342 DlImageSampling::kNearestNeighbor, true) \
343 ->RangeMultiplier(2) \
344 ->Range(128, 512) \
345 ->UseRealTime() \
346 ->Unit(benchmark::kMillisecond);
347
348// DrawImageRect
349#define DRAW_IMAGE_RECT_BENCHMARKS(BACKEND, ATTRIBUTES) \
350 BENCHMARK_CAPTURE( \
351 BM_DrawImageRect, Texture/Strict/BACKEND, \
352 BackendType::k##BACKEND##Backend, \
353 ATTRIBUTES, \
354 DlImageSampling::kNearestNeighbor, \
355 DlSrcRectConstraint::kStrict, false) \
356 ->RangeMultiplier(2) \
357 ->Range(32, 256) \
358 ->UseRealTime() \
359 ->Unit(benchmark::kMillisecond); \
360 \
361 BENCHMARK_CAPTURE( \
362 BM_DrawImageRect, Texture/Fast/BACKEND, \
363 BackendType::k##BACKEND##Backend, \
364 ATTRIBUTES, \
365 DlImageSampling::kNearestNeighbor, \
366 DlSrcRectConstraint::kFast, false) \
367 ->RangeMultiplier(2) \
368 ->Range(32, 256) \
369 ->UseRealTime() \
370 ->Unit(benchmark::kMillisecond); \
371 \
372 BENCHMARK_CAPTURE( \
373 BM_DrawImageRect, Upload/Strict/BACKEND, \
374 BackendType::k##BACKEND##Backend, \
375 ATTRIBUTES, \
376 DlImageSampling::kNearestNeighbor, \
377 DlSrcRectConstraint::kStrict, true) \
378 ->RangeMultiplier(2) \
379 ->Range(32, 256) \
380 ->UseRealTime() \
381 ->Unit(benchmark::kMillisecond); \
382 \
383 BENCHMARK_CAPTURE( \
384 BM_DrawImageRect, Upload/Fast/BACKEND, \
385 BackendType::k##BACKEND##Backend, \
386 ATTRIBUTES, \
387 DlImageSampling::kNearestNeighbor, \
388 DlSrcRectConstraint::kFast, true) \
389 ->RangeMultiplier(2) \
390 ->Range(32, 256) \
391 ->UseRealTime() \
392 ->Unit(benchmark::kMillisecond);
393
394// DrawImageNine
395#define DRAW_IMAGE_NINE_BENCHMARKS(BACKEND, ATTRIBUTES) \
396 BENCHMARK_CAPTURE(BM_DrawImageNine, Texture/Nearest/BACKEND, \
397 BackendType::k##BACKEND##Backend, \
398 ATTRIBUTES, \
399 DlFilterMode::kNearest, false) \
400 ->RangeMultiplier(2) \
401 ->Range(32, 256) \
402 ->UseRealTime() \
403 ->Unit(benchmark::kMillisecond); \
404 \
405 BENCHMARK_CAPTURE(BM_DrawImageNine, Upload/Nearest/BACKEND, \
406 BackendType::k##BACKEND##Backend, \
407 ATTRIBUTES, \
408 DlFilterMode::kNearest, true) \
409 ->RangeMultiplier(2) \
410 ->Range(32, 256) \
411 ->UseRealTime() \
412 ->Unit(benchmark::kMillisecond); \
413 \
414 BENCHMARK_CAPTURE(BM_DrawImageNine, Texture/Linear/BACKEND, \
415 BackendType::k##BACKEND##Backend, \
416 ATTRIBUTES, \
417 DlFilterMode::kLinear, false) \
418 ->RangeMultiplier(2) \
419 ->Range(32, 256) \
420 ->UseRealTime() \
421 ->Unit(benchmark::kMillisecond); \
422 \
423 BENCHMARK_CAPTURE(BM_DrawImageNine, Upload/Linear/BACKEND, \
424 BackendType::k##BACKEND##Backend, \
425 ATTRIBUTES, \
426 DlFilterMode::kLinear, true) \
427 ->RangeMultiplier(2) \
428 ->Range(32, 256) \
429 ->UseRealTime() \
430 ->Unit(benchmark::kMillisecond);
431
432// DrawTextBlob
433#define DRAW_TEXT_BLOB_BENCHMARKS(BACKEND, ATTRIBUTES) \
434 BENCHMARK_CAPTURE(BM_DrawTextBlob, BACKEND, \
435 BackendType::k##BACKEND##Backend, \
436 ATTRIBUTES) \
437 ->RangeMultiplier(2) \
438 ->Range(1, 256) \
439 ->UseRealTime() \
440 ->Unit(benchmark::kMillisecond) \
441 ->Complexity();
442
443// DrawShadow
444#define DRAW_SHADOW_BENCHMARKS(BACKEND, ATTRIBUTES) \
445 BENCHMARK_CAPTURE(BM_DrawShadow, Lines/Transparent/BACKEND, \
446 BackendType::k##BACKEND##Backend, \
447 ATTRIBUTES, \
448 true, \
449 PathVerb::kLine) \
450 ->RangeMultiplier(2) \
451 ->Range(1, 32) \
452 ->UseRealTime() \
453 ->Unit(benchmark::kMillisecond); \
454 \
455 BENCHMARK_CAPTURE(BM_DrawShadow, Quads/Transparent/BACKEND, \
456 BackendType::k##BACKEND##Backend, \
457 ATTRIBUTES, \
458 true, \
459 PathVerb::kQuad) \
460 ->RangeMultiplier(2) \
461 ->Range(1, 32) \
462 ->UseRealTime() \
463 ->Unit(benchmark::kMillisecond); \
464 \
465 BENCHMARK_CAPTURE(BM_DrawShadow, Conics/Transparent/BACKEND, \
466 BackendType::k##BACKEND##Backend, \
467 ATTRIBUTES, \
468 true, \
469 PathVerb::kConic) \
470 ->RangeMultiplier(2) \
471 ->Range(1, 32) \
472 ->UseRealTime() \
473 ->Unit(benchmark::kMillisecond); \
474 \
475 BENCHMARK_CAPTURE(BM_DrawShadow, Cubics/Transparent/BACKEND, \
476 BackendType::k##BACKEND##Backend, \
477 ATTRIBUTES, \
478 true, \
479 PathVerb::kCubic) \
480 ->RangeMultiplier(2) \
481 ->Range(1, 32) \
482 ->UseRealTime() \
483 ->Unit(benchmark::kMillisecond); \
484 \
485 BENCHMARK_CAPTURE(BM_DrawShadow, Lines/Opaque/BACKEND, \
486 BackendType::k##BACKEND##Backend, \
487 ATTRIBUTES, \
488 false, \
489 PathVerb::kLine) \
490 ->RangeMultiplier(2) \
491 ->Range(1, 32) \
492 ->UseRealTime() \
493 ->Unit(benchmark::kMillisecond); \
494 \
495 BENCHMARK_CAPTURE(BM_DrawShadow, Quads/Opaque/BACKEND, \
496 BackendType::k##BACKEND##Backend, \
497 ATTRIBUTES, \
498 false, \
499 PathVerb::kQuad) \
500 ->RangeMultiplier(2) \
501 ->Range(1, 32) \
502 ->UseRealTime() \
503 ->Unit(benchmark::kMillisecond); \
504 \
505 BENCHMARK_CAPTURE(BM_DrawShadow, Conics/Opaque/BACKEND, \
506 BackendType::k##BACKEND##Backend, \
507 ATTRIBUTES, \
508 false, \
509 PathVerb::kConic) \
510 ->RangeMultiplier(2) \
511 ->Range(1, 32) \
512 ->UseRealTime() \
513 ->Unit(benchmark::kMillisecond); \
514 \
515 BENCHMARK_CAPTURE(BM_DrawShadow, Cubics/Opaque/BACKEND, \
516 BackendType::k##BACKEND##Backend, \
517 ATTRIBUTES, \
518 false, \
519 PathVerb::kCubic) \
520 ->RangeMultiplier(2) \
521 ->Range(1, 32) \
522 ->UseRealTime() \
523 ->Unit(benchmark::kMillisecond);
524
525// SaveLayer
526#define SAVE_LAYER_BENCHMARKS(BACKEND, ATTRIBUTES) \
527 BENCHMARK_CAPTURE(BM_SaveLayer, Depth 1/BACKEND, \
528 BackendType::k##BACKEND##Backend, \
529 ATTRIBUTES, \
530 1) \
531 ->RangeMultiplier(2) \
532 ->Range(1, 128) \
533 ->UseRealTime() \
534 ->Unit(benchmark::kMillisecond); \
535 \
536 BENCHMARK_CAPTURE(BM_SaveLayer, Depth 8/BACKEND, \
537 BackendType::k##BACKEND##Backend, \
538 ATTRIBUTES, \
539 8) \
540 ->RangeMultiplier(2) \
541 ->Range(1, 128) \
542 ->UseRealTime() \
543 ->Unit(benchmark::kMillisecond);
544
545// Applies stroke style and antialiasing
546#define STROKE_BENCHMARKS(BACKEND, ATTRIBUTES) \
547 DRAW_LINE_BENCHMARKS(BACKEND, ATTRIBUTES) \
548 DRAW_POINTS_BENCHMARKS(BACKEND, ATTRIBUTES) \
549 DRAW_RECT_BENCHMARKS(BACKEND, ATTRIBUTES) \
550 DRAW_OVAL_BENCHMARKS(BACKEND, ATTRIBUTES) \
551 DRAW_CIRCLE_BENCHMARKS(BACKEND, ATTRIBUTES) \
552 DRAW_ARC_BENCHMARKS(BACKEND, ATTRIBUTES) \
553 DRAW_PATH_BENCHMARKS(BACKEND, ATTRIBUTES) \
554 DRAW_RRECT_BENCHMARKS(BACKEND, ATTRIBUTES) \
555 DRAW_DRRECT_BENCHMARKS(BACKEND, ATTRIBUTES) \
556 DRAW_TEXT_BLOB_BENCHMARKS(BACKEND, ATTRIBUTES)
557
558// Applies fill style and antialiasing
559#define FILL_BENCHMARKS(BACKEND, ATTRIBUTES) \
560 DRAW_RECT_BENCHMARKS(BACKEND, ATTRIBUTES) \
561 DRAW_OVAL_BENCHMARKS(BACKEND, ATTRIBUTES) \
562 DRAW_CIRCLE_BENCHMARKS(BACKEND, ATTRIBUTES) \
563 DRAW_ARC_BENCHMARKS(BACKEND, ATTRIBUTES) \
564 DRAW_PATH_BENCHMARKS(BACKEND, ATTRIBUTES) \
565 DRAW_RRECT_BENCHMARKS(BACKEND, ATTRIBUTES) \
566 DRAW_DRRECT_BENCHMARKS(BACKEND, ATTRIBUTES) \
567 DRAW_TEXT_BLOB_BENCHMARKS(BACKEND, ATTRIBUTES)
568
569// Applies antialiasing
570#define ANTI_ALIASING_BENCHMARKS(BACKEND, ATTRIBUTES) \
571 DRAW_IMAGE_BENCHMARKS(BACKEND, ATTRIBUTES) \
572 DRAW_IMAGE_RECT_BENCHMARKS(BACKEND, ATTRIBUTES)
573
574// Does not apply style or antialiasing
575#define OTHER_BENCHMARKS(BACKEND, ATTRIBUTES) \
576 DRAW_IMAGE_NINE_BENCHMARKS(BACKEND, ATTRIBUTES) \
577 DRAW_VERTICES_BENCHMARKS(BACKEND, ATTRIBUTES) \
578 DRAW_SHADOW_BENCHMARKS(BACKEND, ATTRIBUTES) \
579 SAVE_LAYER_BENCHMARKS(BACKEND, ATTRIBUTES)
580
581#define RUN_DISPLAYLIST_BENCHMARKS(BACKEND) \
582 STROKE_BENCHMARKS(BACKEND, kStrokedStyle) \
583 STROKE_BENCHMARKS(BACKEND, kStrokedStyle | kAntiAliasing) \
584 STROKE_BENCHMARKS(BACKEND, kStrokedStyle | kHairlineStroke) \
585 STROKE_BENCHMARKS(BACKEND, kStrokedStyle | kHairlineStroke | \
586 kAntiAliasing) \
587 FILL_BENCHMARKS(BACKEND, kFilledStyle) \
588 FILL_BENCHMARKS(BACKEND, kFilledStyle | kAntiAliasing) \
589 ANTI_ALIASING_BENCHMARKS(BACKEND, kEmpty) \
590 ANTI_ALIASING_BENCHMARKS(BACKEND, kAntiAliasing) \
591 OTHER_BENCHMARKS(BACKEND, kEmpty)
592
593// clang-format on
594
595} // namespace testing
596} // namespace flutter
597
598#endif // FLUTTER_DISPLAY_LIST_BENCHMARKING_DL_BENCHMARKS_H_
GLenum type
void BM_DrawVertices(benchmark::State &state, BackendType backend_type, unsigned attributes, DlVertexMode mode)
void BM_DrawPath(benchmark::State &state, BackendType backend_type, unsigned attributes, PathVerb type)
void BM_DrawPoints(benchmark::State &state, BackendType backend_type, unsigned attributes, DlPointMode mode)
void BM_DrawOval(benchmark::State &state, BackendType backend_type, unsigned attributes)
void BM_DrawShadow(benchmark::State &state, BackendType backend_type, unsigned attributes, bool transparent_occluder, PathVerb type)
void BM_DrawImage(benchmark::State &state, BackendType backend_type, unsigned attributes, DlImageSampling options, bool upload_bitmap)
void BM_DrawLine(benchmark::State &state, BackendType backend_type, unsigned attributes)
void BM_DrawCircle(benchmark::State &state, BackendType backend_type, unsigned attributes)
void BM_DrawRRect(benchmark::State &state, BackendType backend_type, unsigned attributes, RRectType type)
void BM_DrawRect(benchmark::State &state, BackendType backend_type, unsigned attributes)
void BM_DrawDRRect(benchmark::State &state, BackendType backend_type, unsigned attributes, RRectType type)
void BM_DrawTextBlob(benchmark::State &state, BackendType backend_type, unsigned attributes)
void BM_DrawArc(benchmark::State &state, BackendType backend_type, unsigned attributes)
void BM_DrawImageNine(benchmark::State &state, BackendType backend_type, unsigned attributes, const DlFilterMode filter, bool upload_bitmap)
void BM_SaveLayer(benchmark::State &state, BackendType backend_type, unsigned attributes, size_t save_depth)
void BM_DrawImageRect(benchmark::State &state, BackendType backend_type, unsigned attributes, DlImageSampling options, DlSrcRectConstraint constraint, bool upload_bitmap)
DlPaint GetPaintForRun(unsigned attributes)
DlPointMode
Definition dl_types.h:15
DlVertexMode
Defines the way in which the vertices of a DlVertices object are separated into triangles into which ...
Definition dl_vertices.h:18
DlSrcRectConstraint
Definition dl_types.h:21