mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-05 14:38:13 +02:00
perf: Add a few more variations to dragon to exercise unaligned lines/spans
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
4a8f638c9a
commit
fec80f1199
1 changed files with 34 additions and 0 deletions
|
|
@ -202,6 +202,13 @@ do_dragon_solid (cairo_t *cr, int width, int height, int loops)
|
|||
return cairo_perf_timer_elapsed ();
|
||||
}
|
||||
|
||||
static cairo_perf_ticks_t
|
||||
do_dragon_solid_unaligned (cairo_t *cr, int width, int height, int loops)
|
||||
{
|
||||
cairo_translate (cr, 0.01, 0.01);
|
||||
return do_dragon_solid (cr, width, height, loops);
|
||||
}
|
||||
|
||||
static cairo_perf_ticks_t
|
||||
do_dragon_solid_aligned_clip (cairo_t *cr, int width, int height, int loops)
|
||||
{
|
||||
|
|
@ -213,6 +220,18 @@ do_dragon_solid_aligned_clip (cairo_t *cr, int width, int height, int loops)
|
|||
return do_dragon_solid (cr, width, height, loops);
|
||||
}
|
||||
|
||||
static cairo_perf_ticks_t
|
||||
do_dragon_unaligned_solid_aligned_clip (cairo_t *cr, int width, int height, int loops)
|
||||
{
|
||||
cairo_translate (cr, 0.01, 0.01);
|
||||
cairo_reset_clip (cr);
|
||||
cairo_rectangle (cr, 10, 10, width/2 + 10, height/2 + 10);
|
||||
cairo_rectangle (cr, width/2-20, height/2-20, width/2 + 10, height/2 + 10);
|
||||
cairo_clip (cr);
|
||||
|
||||
return do_dragon_solid (cr, width, height, loops);
|
||||
}
|
||||
|
||||
static cairo_perf_ticks_t
|
||||
do_dragon_solid_unaligned_clip (cairo_t *cr, int width, int height, int loops)
|
||||
{
|
||||
|
|
@ -224,6 +243,18 @@ do_dragon_solid_unaligned_clip (cairo_t *cr, int width, int height, int loops)
|
|||
return do_dragon_solid (cr, width, height, loops);
|
||||
}
|
||||
|
||||
static cairo_perf_ticks_t
|
||||
do_dragon_unaligned_solid_unaligned_clip (cairo_t *cr, int width, int height, int loops)
|
||||
{
|
||||
cairo_translate (cr, 0.01, 0.01);
|
||||
cairo_reset_clip (cr);
|
||||
cairo_rectangle (cr, 10.5, 10.5, width/2 + 10, height/2 + 10);
|
||||
cairo_rectangle (cr, width/2-20, height/2-20, width/2 + 9.5, height/2 + 9.5);
|
||||
cairo_clip (cr);
|
||||
|
||||
return do_dragon_solid (cr, width, height, loops);
|
||||
}
|
||||
|
||||
static cairo_perf_ticks_t
|
||||
do_dragon_solid_circle_clip (cairo_t *cr, int width, int height, int loops)
|
||||
{
|
||||
|
|
@ -241,8 +272,11 @@ dragon (cairo_perf_t *perf, cairo_t *cr, int width, int height)
|
|||
return;
|
||||
|
||||
cairo_perf_run (perf, "dragon-solid", do_dragon_solid, NULL);
|
||||
cairo_perf_run (perf, "dragon-unaligned-solid", do_dragon_solid_unaligned, NULL);
|
||||
cairo_perf_run (perf, "dragon-solid-aligned-clip", do_dragon_solid_aligned_clip, NULL);
|
||||
cairo_perf_run (perf, "dragon-unaligned-solid-aligned-clip", do_dragon_unaligned_solid_aligned_clip, NULL);
|
||||
cairo_perf_run (perf, "dragon-solid-unaligned-clip", do_dragon_solid_unaligned_clip, NULL);
|
||||
cairo_perf_run (perf, "dragon-unaligned-solid-unaligned-clip", do_dragon_unaligned_solid_unaligned_clip, NULL);
|
||||
cairo_perf_run (perf, "dragon-solid-circle-clip", do_dragon_solid_circle_clip, NULL);
|
||||
cairo_perf_run (perf, "dragon", do_dragon, NULL);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue