[benchmark-subset] Add no-hinting ops
This commit is contained in:
parent
f51a624e67
commit
fad8322b3f
|
@ -114,7 +114,8 @@ static hb_face_t* preprocess_face(hb_face_t* face)
|
||||||
/* benchmark for subsetting a font */
|
/* benchmark for subsetting a font */
|
||||||
static void BM_subset (benchmark::State &state,
|
static void BM_subset (benchmark::State &state,
|
||||||
operation_t operation,
|
operation_t operation,
|
||||||
const test_input_t &test_input)
|
const test_input_t &test_input,
|
||||||
|
bool hinting)
|
||||||
{
|
{
|
||||||
unsigned subset_size = state.range(0);
|
unsigned subset_size = state.range(0);
|
||||||
|
|
||||||
|
@ -131,6 +132,9 @@ static void BM_subset (benchmark::State &state,
|
||||||
hb_subset_input_t* input = hb_subset_input_create_or_fail ();
|
hb_subset_input_t* input = hb_subset_input_create_or_fail ();
|
||||||
assert (input);
|
assert (input);
|
||||||
|
|
||||||
|
if (!hinting)
|
||||||
|
hb_subset_input_set_flags (input, HB_SUBSET_FLAGS_NO_HINTING);
|
||||||
|
|
||||||
switch (operation)
|
switch (operation)
|
||||||
{
|
{
|
||||||
case subset_codepoints:
|
case subset_codepoints:
|
||||||
|
@ -179,6 +183,7 @@ static void BM_subset (benchmark::State &state,
|
||||||
|
|
||||||
static void test_subset (operation_t op,
|
static void test_subset (operation_t op,
|
||||||
const char *op_name,
|
const char *op_name,
|
||||||
|
bool hinting,
|
||||||
benchmark::TimeUnit time_unit,
|
benchmark::TimeUnit time_unit,
|
||||||
const test_input_t &test_input)
|
const test_input_t &test_input)
|
||||||
{
|
{
|
||||||
|
@ -188,8 +193,10 @@ static void test_subset (operation_t op,
|
||||||
char name[1024] = "BM_subset/";
|
char name[1024] = "BM_subset/";
|
||||||
strcat (name, op_name);
|
strcat (name, op_name);
|
||||||
strcat (name, strrchr (test_input.font_path, '/'));
|
strcat (name, strrchr (test_input.font_path, '/'));
|
||||||
|
if (!hinting)
|
||||||
|
strcat (name, "/nohinting");
|
||||||
|
|
||||||
benchmark::RegisterBenchmark (name, BM_subset, op, test_input)
|
benchmark::RegisterBenchmark (name, BM_subset, op, test_input, hinting)
|
||||||
->Range(10, test_input.max_subset_size)
|
->Range(10, test_input.max_subset_size)
|
||||||
->Unit(time_unit);
|
->Unit(time_unit);
|
||||||
}
|
}
|
||||||
|
@ -200,7 +207,8 @@ static void test_operation (operation_t op,
|
||||||
{
|
{
|
||||||
for (auto& test_input : tests)
|
for (auto& test_input : tests)
|
||||||
{
|
{
|
||||||
test_subset (op, op_name, time_unit, test_input);
|
test_subset (op, op_name, true, time_unit, test_input);
|
||||||
|
test_subset (op, op_name, false, time_unit, test_input);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue