|
37d3275d
|
2022-05-19T15:01:23
|
|
[test-vector] Enable disabled test
This seems to work already.
|
|
544ffb91
|
2022-05-19T14:50:12
|
|
[set] Adjust grow_vector condition
|
|
0623aa59
|
2022-05-19T14:12:42
|
|
[benchmark-set] Add benchmark for set copy
|
|
44952bcc
|
2022-05-19T14:02:48
|
|
[set] Cache hash value
|
|
844ac328
|
2022-05-19T13:54:31
|
|
[set] Fix hb_set_t hash stability
|
|
2d0b1248
|
2022-05-19T13:53:53
|
|
[test-map] Test hb_set_t hash stability
Fails currently.
|
|
561e02fe
|
2022-05-19T13:38:52
|
|
[map] Make hb_map_t hashable
|
|
ad176990
|
2022-05-19T13:36:12
|
|
[map] Add is_equal() / towards making hb_map_t hashable
New API:
+ hb_map_is_equal()
|
|
14a24d8e
|
2022-05-19T13:03:50
|
|
[vector] Make hb_vector_t hashable
|
|
124f9aeb
|
2022-05-19T12:58:02
|
|
[set] Make hb_set_t hashable
|
|
3ab2c793
|
2022-05-19T17:23:36
|
|
[subset-perf] Signficiantly speed up ClassDef*::subset.
Eliminates the usage of a glyph -> klass hash map and replaces it with a vector storing the mapping. This allows us to use the vector directly as the iterator driving the serialize. Approximately 1% speedup for Noto Nastaliq.
|
|
e3e685e5
|
2022-05-18T15:05:55
|
|
[ot-tags] Fix `min_subtag_len` calculations
|
|
0b1c2ff9
|
2022-05-18T23:32:03
|
|
[subset-perf] Remove extra map lookup in ClassDef subset methods.
|
|
13ace77f
|
2022-05-18T22:38:43
|
|
[subset-perf] Use glyph_map instead of set in ClassDefFormat.
|
|
adae2f22
|
2022-05-18T21:42:28
|
|
[subset-perf] Cache a glyph map for gsub.
This allows us in some cases to avoid using glyph_set_gsub as a filter.
|
|
202e6c46
|
2022-05-18T17:12:43
|
|
[subset] Remove unnecessary test
|
|
cedf7396
|
2022-05-18T16:52:35
|
|
Add some commented-out code
|
|
6b62c10f
|
2022-05-18T16:27:54
|
|
[priority-queue] Remove old init/fini
|
|
bff8248a
|
2022-05-18T16:25:03
|
|
[repacker] Pre-alloc vertices
|
|
39a424ca
|
2022-05-18T16:17:16
|
|
[priority-queue] Optimize heap access
|
|
9308659f
|
2022-05-18T16:14:25
|
|
[priority-queue] Optimize swap()
|
|
c7317ef7
|
2022-05-18T16:03:41
|
|
[repacker] Avoid destroying and recreating objects
|
|
864e09a0
|
2022-05-18T15:59:29
|
|
[repacker] Reuse allocated vector
|
|
ca77f164
|
2022-05-18T15:55:49
|
|
[repacker] Remove unnecessary vector .fini() calls
|
|
4cfc2d66
|
2022-05-18T15:32:19
|
|
[subset] Use a std::move on set_t when feasible
|
|
1f578b5a
|
2022-05-18T15:24:40
|
|
[set] Add pre-allocation internal API
|
|
48dfbd54
|
2022-05-18T21:03:56
|
|
[subset] minor cleanup.
|
|
482c6e5d
|
2022-05-18T19:58:55
|
|
[subset-perf] Speed up Coverage::serialize by caching iterator.
|
|
14b18725
|
2022-05-18T15:14:32
|
|
In Coverage::iter_t, assume iterators are from same Coverage object
No need to support otherwise.
|
|
27141735
|
2022-05-18T15:12:49
|
|
[subset] Add Coverage::__end__ implementation
|
|
c476f58a
|
2022-05-18T14:20:23
|
|
[subset] Write CoverageFormat2::intersects_coverage() as bsearch()
|
|
63c66951
|
2022-05-18T13:53:52
|
|
[ot-layout] Cosmetic
The implementation of HBUINT16 operator == is slower than just
comparing to ints.
|
|
777debd7
|
2022-05-18T13:46:06
|
|
[subset] Rewrite CoverageFormat2::intersects as dagger
|
|
cf5001fa
|
2022-05-18T13:38:29
|
|
[subset] Optimize CoverageFormat2::intersected_coverage_glyphs
|
|
6f37c207
|
2022-05-18T13:25:42
|
|
[subset] Minor rewrite in CoverageFormat2::serialize()
|
|
e91863b7
|
2022-05-18T12:39:55
|
|
[subset-cff] Pre-size map in subr_remap_t::create()
|
|
ce604621
|
2022-05-18T12:34:27
|
|
[subset-plan] Pre-size maps in _create_old_gid_to_new_gid_map()
|
|
f82ee17a
|
2022-05-18T12:17:43
|
|
[map] Pre-size map in constructor if we can
|
|
b5aa8a27
|
2022-05-18T11:58:58
|
|
[subset-cff] Cosmetic
|
|
0b201623
|
2022-05-18T11:58:22
|
|
[subset-cff] Fix previous commit
Oops!
|
|
47923092
|
2022-05-18T11:54:08
|
|
[subset-cff] Access vector directly
|
|
7c86f2e7
|
2022-05-18T11:45:27
|
|
[subset-cff] Pre-alloc out buffer
|
|
0761e7cd
|
2022-05-18T11:37:57
|
|
[subset-cff] Avoid resetting buffer as encoder does
|
|
71aa10a3
|
2022-05-18T11:37:24
|
|
[subset-cff] Manually grow vector to avoid memset overhead
|
|
f455cc53
|
2022-05-18T11:31:55
|
|
[subset-cff] Reuse buffer allocation
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
c657c4e1
|
2022-05-10T10:00:06
|
|
[meta] fix type traits on gcc 4.9 #3526
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
|
|
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.
|
|
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
|
|
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.
|
|
9ba9adb7
|
2022-05-10T14:42:50
|
|
[cff] Add an unlikely()
|
|
9edb03ac
|
2022-05-10T14:25:08
|
|
[cff-common] Optimize INDEX::operator[]
|
|
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
|
|
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
|
|
1b14d2ff
|
2022-05-09T18:15:31
|
|
[cff] Fix arg-stack peek() impl
|