|
6e668a2a
|
2022-05-18T11:16:11
|
|
[perf/benchmark-ot] Rename test
|
|
e24797ae
|
2022-05-18T11:10:10
|
|
[ot-tags] Follow-up to previous commit
Part of https://github.com/harfbuzz/harfbuzz/issues/3591
|
|
f5d619be
|
2022-05-18T11:04:52
|
|
[ot-tags] Further gate the slow complex case, and add more tests
Part of https://github.com/harfbuzz/harfbuzz/issues/3591
Still 'zh-trad' is the slowest case.
--------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
--------------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON zh_trad 136 ns 136 ns 5107838
BM_hb_ot_tags_from_script_and_language/COMMON ab_abcd 115 ns 115 ns 6103104
BM_hb_ot_tags_from_script_and_language/COMMON ab_abc 25.4 ns 25.3 ns 27674482
BM_hb_ot_tags_from_script_and_language/COMMON abcdef_XY 20.2 ns 20.1 ns 34795719
BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 19.4 ns 19.3 ns 36390401
BM_hb_ot_tags_from_script_and_language/COMMON cxy_CN 33.5 ns 33.4 ns 20998939
BM_hb_ot_tags_from_script_and_language/COMMON exy_CN 25.1 ns 25.0 ns 27705832
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 34.2 ns 34.1 ns 20564356
BM_hb_ot_tags_from_script_and_language/COMMON en_US 15.5 ns 15.5 ns 45032204
BM_hb_ot_tags_from_script_and_language/LATIN en_US 15.9 ns 15.8 ns 44412379
BM_hb_ot_tags_from_script_and_language/COMMON none 4.72 ns 4.71 ns 149101665
BM_hb_ot_tags_from_script_and_language/LATIN none 4.72 ns 4.70 ns 149254498
|
|
9c64bda2
|
2022-05-17T17:31:18
|
|
[ot-tag] Whitespace
|
|
3df8017e
|
2022-05-17T17:29:39
|
|
[ot-tag] Optimize subtag_matches() more
|
|
b231fc2d
|
2022-05-17T17:02:48
|
|
[perf/benchmark-ot] Add a couple more test cases
|
|
3524b14f
|
2022-05-17T17:02:48
|
|
[perf/benchmark-ot] Add a couple more test cases
|
|
7f6e8c55
|
2022-05-17T16:58:35
|
|
[ot-tags] Optimize subtag_matches() further
Part of https://github.com/harfbuzz/harfbuzz/issues/3591
Comparing before to after
Benchmark Time CPU Time Old Time New CPU Old CPU New
----------------------------------------------------------------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY -0.3371 -0.3371 71 47 71 47
|
|
27c11405
|
2022-05-17T16:51:51
|
|
[ot-tag] Optimize subtag_matches
Part of https://github.com/harfbuzz/harfbuzz/issues/3591
|
|
a07d8185
|
2022-05-17T16:46:10
|
|
[ot-tag] Add a likely() to the cache hit case
|
|
0ff5d36c
|
2022-05-17T16:34:52
|
|
[perf/benchmark-ot] Fix benchmark
Part of https://github.com/harfbuzz/harfbuzz/issues/3591
Ouch!
These are the current numbers:
------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 78.0 ns 77.7 ns 8917912
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 44.9 ns 44.8 ns 15475318
BM_hb_ot_tags_from_script_and_language/COMMON en_US 17.6 ns 17.5 ns 39812340
BM_hb_ot_tags_from_script_and_language/LATIN en_US 18.2 ns 18.1 ns 38356204
BM_hb_ot_tags_from_script_and_language/COMMON none 4.76 ns 4.74 ns 148746131
BM_hb_ot_tags_from_script_and_language/LATIN none 4.73 ns 4.71 ns 148421349
|
|
dfca47f4
|
2022-05-17T16:21:02
|
|
[ot-tag] Cache last bsearch result
Part of https://github.com/harfbuzz/harfbuzz/issues/3591
Humm. Looks like not all of the fat is bsearch overhead now. I cached
the last bsearch result, but most of the time is still there. I'm
baffled.
Before:
------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.08 ns 8.05 ns 84500482
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 42.2 ns 42.1 ns 16722006
BM_hb_ot_tags_from_script_and_language/COMMON en_US 16.1 ns 16.0 ns 43461527
BM_hb_ot_tags_from_script_and_language/LATIN en_US 16.5 ns 16.5 ns 42448505
BM_hb_ot_tags_from_script_and_language/COMMON none 4.34 ns 4.33 ns 161290530
BM_hb_ot_tags_from_script_and_language/LATIN none 4.34 ns 4.33 ns 162339799
After:
------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.13 ns 8.11 ns 80438134
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 40.0 ns 39.9 ns 17487939
BM_hb_ot_tags_from_script_and_language/COMMON en_US 12.7 ns 12.7 ns 55124394
BM_hb_ot_tags_from_script_and_language/LATIN en_US 13.1 ns 13.0 ns 53660125
BM_hb_ot_tags_from_script_and_language/COMMON none 4.61 ns 4.60 ns 151394104
BM_hb_ot_tags_from_script_and_language/LATIN none 4.70 ns 4.68 ns 150402847
|
|
909f00ac
|
2022-05-17T15:51:41
|
|
[ot-tags] Further speed up language bsearch()
Using an integer tag to bsearch, instead of string.
Part of: https://github.com/harfbuzz/harfbuzz/issues/3591
Before:
------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.11 ns 8.08 ns 87067795
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 53.6 ns 53.5 ns 13042418
BM_hb_ot_tags_from_script_and_language/COMMON en_US 24.2 ns 24.1 ns 29052731
BM_hb_ot_tags_from_script_and_language/LATIN en_US 24.4 ns 24.3 ns 28736769
BM_hb_ot_tags_from_script_and_language/COMMON none 4.43 ns 4.41 ns 160370413
BM_hb_ot_tags_from_script_and_language/LATIN none 4.35 ns 4.34 ns 160578191
After:
------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 7.97 ns 7.95 ns 85208363
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 41.7 ns 41.6 ns 16945817
BM_hb_ot_tags_from_script_and_language/COMMON en_US 16.1 ns 16.0 ns 43613523
BM_hb_ot_tags_from_script_and_language/LATIN en_US 16.5 ns 16.4 ns 42568107
BM_hb_ot_tags_from_script_and_language/COMMON none 4.30 ns 4.29 ns 164055469
BM_hb_ot_tags_from_script_and_language/LATIN none 4.29 ns 4.27 ns 163793591
|
|
c460cf74
|
2022-05-17T15:30:11
|
|
[ot-tags] Cosmetic
|
|
1c8226ed
|
2022-05-17T15:28:50
|
|
Fix compiler warning
On Mac compiler:
FAILED: src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o
c++ -Isrc/libharfbuzz.0.dylib.p -Isrc -I../src -I. -I.. -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/graphite2/1.3.14/include -I/usr/local/Cellar/glib/2.72.1/include/glib-2.0 -I/usr/local/Cellar/glib/2.72.1/lib/glib-2.0/include -I/usr/local/opt/gettext/include -I/usr/local/Cellar/pcre/8.45/include -Xclang -fcolor-diagnostics --coverage -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++11 -fno-rtti -O2 -g -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -DHAVE_CONFIG_H -Wno-non-virtual-dtor -MD -MQ src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o -MF src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o.d -o src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o -c ../src/hb-ot-tag.cc
In file included from ../src/hb-ot-tag.cc:29:
In file included from ../src/hb.hh:481:
../src/hb-array.hh:359:14: error: missing default argument on parameter 'ds'
Ts... ds) const
^
../src/hb-ot-tag.cc:292:58: note: in instantiation of function template specialization 'hb_sorted_array_t<const LangTag>::bfind<const char *, unsigned int>' requested here
if (hb_sorted_array (ot_languages, ot_languages_len).bfind (lang_str, &tag_idx,
^
1 error generated.
|
|
c1f4b57c
|
2022-05-17T15:19:40
|
|
[ot-tags] Optimize language comparison
Now that we know both strings are of equal len of 2 or 3, optimize.
Part of https://github.com/harfbuzz/harfbuzz/issues/3591
Before:
------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.50 ns 8.47 ns 81221549
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 79.6 ns 79.3 ns 8785804
BM_hb_ot_tags_from_script_and_language/COMMON en_US 40.0 ns 39.9 ns 17462768
BM_hb_ot_tags_from_script_and_language/LATIN en_US 39.2 ns 39.1 ns 17886793
BM_hb_ot_tags_from_script_and_language/COMMON none 4.31 ns 4.30 ns 162805417
BM_hb_ot_tags_from_script_and_language/LATIN none 4.32 ns 4.31 ns 162656688
After:
------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.27 ns 8.24 ns 81868701
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 56.1 ns 56.0 ns 12353284
BM_hb_ot_tags_from_script_and_language/COMMON en_US 24.3 ns 24.2 ns 28955030
BM_hb_ot_tags_from_script_and_language/LATIN en_US 24.5 ns 24.4 ns 28664868
BM_hb_ot_tags_from_script_and_language/COMMON none 4.35 ns 4.34 ns 161190014
BM_hb_ot_tags_from_script_and_language/LATIN none 4.36 ns 4.34 ns 161319000
|
|
dde48d78
|
2022-05-17T15:07:49
|
|
Fix compiler warning
|
|
15be0ded
|
2022-05-17T14:57:08
|
|
[ot-tags] Optimize lang_matches()
Part of https://github.com/harfbuzz/harfbuzz/issues/3591
Before:
------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.67 ns 8.64 ns 80324382
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 91.2 ns 90.9 ns 7674131
BM_hb_ot_tags_from_script_and_language/COMMON en_US 41.1 ns 41.0 ns 17174093
BM_hb_ot_tags_from_script_and_language/LATIN en_US 41.3 ns 41.2 ns 17000876
BM_hb_ot_tags_from_script_and_language/COMMON none 4.56 ns 4.55 ns 153914130
BM_hb_ot_tags_from_script_and_language/LATIN none 4.53 ns 4.52 ns 153830303
After:
------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.24 ns 8.21 ns 84078465
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 77.5 ns 77.2 ns 9059230
BM_hb_ot_tags_from_script_and_language/COMMON en_US 38.8 ns 38.7 ns 17790692
BM_hb_ot_tags_from_script_and_language/LATIN en_US 37.6 ns 37.5 ns 18648293
BM_hb_ot_tags_from_script_and_language/COMMON none 4.50 ns 4.49 ns 155573267
BM_hb_ot_tags_from_script_and_language/LATIN none 4.49 ns 4.47 ns 156456653
|
|
407a135b
|
2022-05-17T14:45:45
|
|
[perf/benchmark-ot] Add one more test
|
|
dd3c858f
|
2022-05-17T14:28:28
|
|
[ot-tags] Speed up hb_ot_tags_from_language()
Part of https://github.com/harfbuzz/harfbuzz/issues/3591
"After that, bulk of the time I suppose is spent in binary-searching the
language table. I suggest we split the language table in 2-letter and
3-letter tags, to speed-up the vast majority of cases that are
2-letter."
benchmark-ot, before:
----------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
----------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 112 ns 111 ns 6286271
BM_hb_ot_tags_from_script_and_language/COMMON en_US 60.6 ns 60.4 ns 11671176
BM_hb_ot_tags_from_script_and_language/LATIN en_US 61.3 ns 61.1 ns 11442645
BM_hb_ot_tags_from_script_and_language/COMMON none 4.75 ns 4.74 ns 146997235
BM_hb_ot_tags_from_script_and_language/LATIN none 4.65 ns 4.64 ns 150938747
After:
----------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
----------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 89.5 ns 89.2 ns 7747649
BM_hb_ot_tags_from_script_and_language/COMMON en_US 38.5 ns 38.4 ns 18199432
BM_hb_ot_tags_from_script_and_language/LATIN en_US 39.0 ns 38.9 ns 18049238
BM_hb_ot_tags_from_script_and_language/COMMON none 4.53 ns 4.52 ns 154895110
BM_hb_ot_tags_from_script_and_language/LATIN none 4.54 ns 4.52 ns 154762105
|
|
9baccb98
|
2022-05-17T13:34:34
|
|
[ot-tags] Speed up hb_ot_tags_from_complex_language()
Part of https://github.com/harfbuzz/harfbuzz/issues/3591
2. All the subtag_matches outside the switch match long strings (>= 6 or so).
As such, check the tag for such length before going into any of them.
benchmark-ot, before:
----------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
----------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 172 ns 171 ns 4083155
BM_hb_ot_tags_from_script_and_language/COMMON en_US 120 ns 119 ns 5849947
BM_hb_ot_tags_from_script_and_language/LATIN en_US 113 ns 112 ns 5840326
BM_hb_ot_tags_from_script_and_language/COMMON none 4.66 ns 4.64 ns 151396224
BM_hb_ot_tags_from_script_and_language/LATIN none 4.66 ns 4.64 ns 149019593
After:
----------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
----------------------------------------------------------------------------------------------
BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 112 ns 112 ns 6357763
BM_hb_ot_tags_from_script_and_language/COMMON en_US 60.5 ns 60.3 ns 11475091
BM_hb_ot_tags_from_script_and_language/LATIN en_US 54.9 ns 54.8 ns 12575690
BM_hb_ot_tags_from_script_and_language/COMMON none 4.61 ns 4.59 ns 152388450
BM_hb_ot_tags_from_script_and_language/LATIN none 4.66 ns 4.64 ns 151497600
|
|
26d906b8
|
2022-05-17T13:12:17
|
|
[perf] Add benchmark-ot
|
|
629fa8ee
|
2022-05-16T17:44:50
|
|
[perf/benchmark-font] Test Roboto as variable even though it's not
|
|
71a0cda8
|
2022-05-16T17:43:48
|
|
[perf/benchmark-font] Only certain fonts are variable
Don't test every font as variable.
|
|
fb413f52
|
2022-05-16T17:08:43
|
|
[subset/cff] Don't use bitfields for hot bools
The struct has room because of alignment, and these bools are hot.
|
|
a4d98b63
|
2022-05-16T17:02:40
|
|
[subset/cff1] Collect glyph-to-sid map to avoid an O(n^2) algorithm
Saves 13 for largest benchmark:
BM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/10000 -0.1313 -0.1308 75 65 75 65
BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/4096 -0.1009 -0.1004 54 48 54 48
BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/10000 -0.1067 -0.1066 70 62 69 62
|
|
b87f48e9
|
2022-05-16T16:33:31
|
|
[cff1] get_sid() move bounds check into each implementation
|
|
e1e359b4
|
2022-05-16T15:53:28
|
|
[cff1] Tighten up range_list_t a bit
|
|
3fbac094
|
2022-05-16T15:41:11
|
|
[cff1] Lazy-load & sort glyph names
Improves subset benchmarks by up to 70% for small CFF1 subset of
non-CID fonts!
BM_subset/subset_glyphs/SourceSansPro-Regular.otf/10 -0.7067 -0.7071 1 0 1 0
BM_subset/subset_glyphs/SourceSansPro-Regular.otf/64 -0.4817 -0.4824 1 0 1 0
BM_subset/subset_glyphs/SourceSansPro-Regular.otf/512 -0.1948 -0.1956 2 2 2 2
BM_subset/subset_glyphs/SourceSansPro-Regular.otf/2000 -0.0767 -0.0761 6 6 6 6
|
|
b58bfd98
|
2022-05-16T11:21:45
|
|
[font] Minor move of code to silence gcc-12 warning
See mailing list discussion.
|
|
602e0ca7
|
2022-05-16T10:14:34
|
|
[cff] Minor restructure of struct
Surprisingly this shows tiny benchmark improvement consistently.
|
|
acdab17e
|
2022-05-13T14:14:36
|
|
[cff] Cosmetic in parsed_values_t
|
|
b46c7faa
|
2022-05-13T14:02:54
|
|
[cff] Check buf_len, not buf
Ouch!
|
|
19a8db85
|
2022-05-13T18:05:05
|
|
[subset] fix potential integer overflow in gname_t::cmp.
|
|
2d2f66e1
|
2022-05-13T13:53:17
|
|
[cff-common] In INDEX, return empty bytes if length is zero
Before it was possible to return non-null arrayZ.
|
|
a2f132f1
|
2022-05-13T13:49:17
|
|
[cff] Check glyph-name's length, not arrayZ
As the latter can be non-null while still zero-length.
|
|
dc09053f
|
2022-05-13T17:54:11
|
|
fix build requirements for fedora/centos in buiding document
|
|
c657c4e1
|
2022-05-10T10:00:06
|
|
[meta] fix type traits on gcc 4.9 #3526
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
|
|
e4e053c8
|
2022-05-13T17:00:57
|
|
[perf] fix typo in perf Makefile.
|
|
e61234c5
|
2022-05-12T13:20:10
|
|
[vector] Add tests for move constructor/assignment
|
|
7fa580bc
|
2022-05-12T13:05:32
|
|
[map] Fix map copy/move constructors to actually work
Ouch!
|
|
a09dd87c
|
2022-05-12T12:58:07
|
|
[set] Fix set copy/move constructors to actually work
Ouch!
|
|
76fc2771
|
2022-05-12T12:14:07
|
|
[vector] Remove explicit std::move
Was confusing compilers. Let them figure it out themselves.
Makes NotoNastaliqu subsetting/1000 benchmark more than twice faster:
Benchmark Time CPU Time Old Time New CPU Old CPU New
------------------------------------------------------------------------------------------------------------------------------------------------------------
BM_subset/subset_glyphs/NotoNastaliqUrdu-Regular.ttf/1000 -0.5064 -0.5065 111 55 110 55
BM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/1000 -0.5494 -0.5493 132 59 131 59
|
|
c81198b5
|
2022-05-12T11:58:37
|
|
[set] Tweak move operators a bit
Should be equivalent.
|
|
8dc072d2
|
2022-05-11T16:45:40
|
|
Merge pull request #3579 from harfbuzz/subset-retain-buffer
Subset retain buffer
|
|
175319cd
|
2022-05-11T13:47:17
|
|
[gsubgpos] Clean up OT::ClassDefFormat2::intersected_class_glyphs 0 case
|
|
137af361
|
2022-05-11T13:39:30
|
|
[gsubgpos] Simplify OT::ClassDefFormat2::intersected_class_glyphs()
|
|
3261e05b
|
2022-05-11T13:16:31
|
|
[subset] Optimize ClassDef1::intersected_class_glyphs() for class0
|
|
c78d8ba6
|
2022-05-11T13:05:41
|
|
[subset] Allocate same size as source table for GSUB/GPOS/name
|
|
2e7f1ae4
|
2022-05-11T12:49:16
|
|
[subset] Use vector.allocated size instead of tracking buf_size
|
|
f0853796
|
2022-05-11T12:10:03
|
|
[cff-subset] Pre-alloc vector for operator decoding
|
|
7edd54f3
|
2022-05-10T18:44:14
|
|
[perf/benchmark-subset] Minor cleanup
|
|
aeb50b89
|
2022-05-10T18:06:53
|
|
[subset] Retain buffer across table subset operations
|
|
bff78e65
|
2022-05-10T16:33:37
|
|
[cff] Convert interpretation environment to use constructor
|
|
de053e2e
|
2022-05-10T15:38:37
|
|
[cff] Convert subr_subset_param_t to use constructor
|
|
96140db4
|
2022-05-10T15:34:33
|
|
[cff] Convert cff2_extents_param_t to use constructor
|
|
54544f2a
|
2022-05-10T15:31:49
|
|
[cff] Convert cff1_extents_param_t to use constructor
|
|
377befd0
|
2022-05-10T15:29:12
|
|
[cff] Convert get_seac_param_t to use constructor
|
|
8fd70362
|
2022-05-10T15:15:49
|
|
[cff] Use hb_ubytes_t() instead of Null(hb_ubytes_t)
|
|
9033c7f9
|
2022-05-10T14:58:53
|
|
[cff-common] Optimize INDEX::operator[]
Previous try showed slowdown in benchmarks, suprisingly.
Rewrite it keeping the function, hopefully allowing better optimization.
|
|
3aace243
|
2022-05-10T14:54:04
|
|
Revert "[cff-common] Optimize INDEX::operator[]"
This reverts commit 9edb03ac7ac4b4d0814f3fd1f20cc8d2be99e971.
|
|
b31ef081
|
2022-05-10T14:52:40
|
|
Revert "[cff] Add an unlikely()"
This reverts commit 9ba9adb7ed6d48504e97a2af117b7da1fdb28450.
This shows slowdown in benchmarks.
|
|
9edb03ac
|
2022-05-10T14:25:08
|
|
[cff-common] Optimize INDEX::operator[]
|
|
9ba9adb7
|
2022-05-10T14:42:50
|
|
[cff] Add an unlikely()
|
|
52d59bf1
|
2022-05-10T19:40:37
|
|
[perf] Make subset benchmark data driven.
|
|
0a42410d
|
2022-05-10T12:05:19
|
|
[cff2] Change extents/shape stack to be just a number
Do the blending immediately.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3559
Benchmark on AdobeVFPrototype shows 35% speedup. Now we're faster
than FreeType:
Benchmark Time CPU Time Old Time New CPU Old CPU New
------------------------------------------------------------------------------------------------------------------------------------------------
BM_Font/glyph_extents/AdobeVFPrototype.otf/hb -0.3792 -0.3792 1584 983 1581 982
BM_Font/glyph_extents/AdobeVFPrototype.otf/ft +0.0228 +0.0224 1220 1248 1218 1245
BM_Font/glyph_extents/AdobeVFPrototype.otf/var/hb -0.3513 -0.3518 1616 1048 1613 1046
BM_Font/glyph_extents/AdobeVFPrototype.otf/var/ft +0.0172 +0.0169 1232 1254 1230 1251
|
|
5277a577
|
2022-05-10T18:14:25
|
|
[perf] Add benchmarks for CFF subsetting.
|
|
8f9f0c49
|
2022-05-10T17:47:08
|
|
[subset] Enforce cmap12 group ordering constraints in collect_mapping.
Fixes fuzzer issue: https://oss-fuzz.com/testcase-detail/6365271012540416
|
|
c99ad0f0
|
2022-05-09T18:52:19
|
|
Merge pull request #3572 from harfbuzz/cff-stack
Cff stack
|
|
1b14d2ff
|
2022-05-09T18:15:31
|
|
[cff] Fix arg-stack peek() impl
|
|
6106ef8c
|
2022-05-09T18:12:09
|
|
[cff] Tighten up arg-stack access
|
|
8c616a6e
|
2022-05-09T17:49:54
|
|
[cff] Allocate stack inline instead of using hb_vector_t
Speeds up glyph_extents and glyph_shape benchmarks for CFF by 10
to 16 percent!
|
|
c941ece6
|
2022-05-09T16:20:22
|
|
[cff] Use using instead of typedef
|
|
64d63ceb
|
2022-05-09T16:16:07
|
|
[cff-common] Use existing types for str_buff_vec_t
|
|
e1838ec1
|
2022-05-09T16:14:13
|
|
[cff-common] Remove unused method
|
|
8aa54aac
|
2022-05-09T16:09:56
|
|
[cff] Replace byte_str_t with hb_bytes_t use
|
|
fe1d85a5
|
2022-05-09T16:04:52
|
|
[cff] Remove custom byte_str_t impl
|
|
c8a5f1e3
|
2022-05-09T15:49:47
|
|
[cff-common] Indent
|
|
be7b2905
|
2022-05-09T15:48:18
|
|
[cff-common] Remove unused INDEX::serialize() method
|
|
60390169
|
2022-05-09T15:44:09
|
|
[cff-common] Write str_buf_t::total_size() as dagger
|
|
258afb45
|
2022-05-09T15:40:55
|
|
[cff-common] Use range-based loop in str_buff_vec_t
|
|
8bb1a3ce
|
2022-05-09T15:38:40
|
|
[cff-common] Write INDEX offset-size calc using hb_bit_storage()
|
|
2ccfe84e
|
2022-05-09T15:35:04
|
|
[cff-common] Add assert to INDEX::set_offset_at()
|
|
4bcab9e9
|
2022-05-09T15:30:42
|
|
[cff-common] Use byte_str_t() instead of Null(byte_str_t)
|
|
94f7a263
|
2022-05-09T15:29:14
|
|
[cff-common] Fix get_size() for Null object
The special-casing didn't make sense.
|
|
c9cc7d5d
|
2022-05-09T15:27:27
|
|
[cff-common] Inline once-used method in INDEX
|
|
11482a3a
|
2022-05-09T15:25:21
|
|
[cff-common] Remove unused method from INDEX
|
|
d1bb3b08
|
2022-05-09T15:23:59
|
|
[cff-common] Hide more INDEX internals
|
|
d3b21387
|
2022-05-09T15:22:55
|
|
[cff-common] Remove redundant operator implementation
|
|
a96b408d
|
2022-05-09T15:20:16
|
|
[cff-common] Hide INDEX internals
|
|
335b1d83
|
2022-05-06T13:37:11
|
|
[cff-common] No need to check max-offset in INDEX
The length_at() function makes sure out-of-range offsets
are discarded. We just need to check the last offset.
|
|
b051f3fa
|
2022-05-05T23:27:34
|
|
[subset] Fix cpal subsetting when there are partial palette overlaps.
The existing code doesn't correctly handle the case where palettes partially overlap in the color record array. This changes the subsetting to only share entries in the color record array when palettes have the same first color index. Partially overlapping palettes will be converted to disjoint segments in the color record array.
Updates one of the color tests to use multiple palettes.
Also fixes fuzzer: https://oss-fuzz.com/testcase-detail/5568200165687296.
|
|
2884eb97
|
2022-05-06T12:54:02
|
|
[cff-common] Remove special-casing of count=0 in INDEX serialize
The generic code-path now can handle count=0.
|
|
fc7f51ae
|
2022-05-06T12:53:19
|
|
[cff-common] Reduce iterator calls
|
|
c857b8e3
|
2022-05-06T12:50:37
|
|
[cff-common] Set INDEX min_size to 2
That is what it is, for an empty INDEX.
|
|
dd71d2c1
|
2022-05-06T13:02:26
|
|
[gvar] Protect against offset underflow
|
|
9a6dabd6
|
2022-05-06T12:01:37
|
|
[gvar] Remove sanitize check for data array
We are not checking in sanitize that offset array is ascending,
so this check was bogus.
|
|
38478d10
|
2022-05-06T12:00:01
|
|
[gvar] DEFINE_SIZE_ARRAY instead of DEFINE_SIZE_MIN
|
|
90d278c9
|
2022-05-06T11:58:53
|
|
[gvar] Remove requirement that num_glyphs matches the font's
|
|
ca8a0f3e
|
2022-05-06T11:54:38
|
|
[gvar] Protect against out-of-range access
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47281
Fixes https://oss-fuzz.com/testcase-detail/5508865908670464
|