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