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