|
de729ec1
|
2023-06-03T15:48:54
|
|
[meta] Return reference from reference-wrapper
|
|
c7493efe
|
2023-06-03T15:39:27
|
|
[subset/loca] Micro-optimize
|
|
13a4c7b3
|
2023-06-03T15:12:53
|
|
[subset/hmtx] Comment
|
|
4da2996f
|
2023-06-03T15:08:20
|
|
[doc] Fix
|
|
c3e7f451
|
2023-06-03T14:56:47
|
|
Add HB_CODEPOINT_INVALID
Fixes https://github.com/harfbuzz/harfbuzz/issues/4262
|
|
efefec13
|
2023-06-02T20:33:52
|
|
[subset/glyf] Remove unneeded codepath
|
|
ac1f5ca0
|
2023-06-02T17:07:44
|
|
[subset/loca] Micro-optimize
|
|
6eae9325
|
2023-06-02T17:05:27
|
|
[subset/loca] Reduce a vector allocation
|
|
cd249d23
|
2023-06-02T16:15:05
|
|
[subset/hmtx] Micro-optimize
|
|
ec8965e4
|
2023-06-02T16:10:25
|
|
[subset/glyf] Don't clear loca allocation
|
|
916629d1
|
2023-06-02T16:08:49
|
|
[subset/hmtx] Don't clear allocation
|
|
24b069cd
|
2023-06-02T15:55:53
|
|
[subset] Pre-alloc a few maps
|
|
7319d0d7
|
2023-06-02T15:41:47
|
|
[subset-plan] Add a couple of map pre-allocations
Approximate...
|
|
76904b04
|
2023-06-02T15:30:12
|
|
[subset-plan] Simplify / speedup planning glyphset
|
|
965ce7bb
|
2023-06-02T15:24:00
|
|
[subset-plan] Speed up planning new_to_old_gid_list
|
|
b67e464b
|
2023-06-02T15:11:06
|
|
[subset/retaingid] Regain perf lost
In 0f12fd5a66a5dd1c3c9ac5ea8a52341bafcfe567
|
|
0f12fd5a
|
2023-06-02T13:58:55
|
|
[subset/glyf] Fix for non-monotonic glyphmap
Slows things down again, but is correct. Still a good win
combined with the previous changes.
|
|
66ce902c
|
2023-06-02T13:53:21
|
|
[glyf] Reduce allocation again
|
|
0e0110e7
|
2023-06-02T13:34:58
|
|
[glyf] Avoid a SubsetGlyph copy
Unfortunately hb_second() always does a copy...
|
|
33ea8b5e
|
2023-06-02T13:10:52
|
|
[subset/glyf] Don't allocate empty SubsetGlyf's
Shows 33% speedup on Mplus/retaingid/10 benchmark:
Comparing before to after
Benchmark Time CPU Time Old Time New CPU Old CPU New
--------------------------------------------------------------------------------------------------------------------------------------------------------
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10 -0.3296 -0.3294 0 0 0 0
|
|
ad872e23
|
2023-06-02T18:32:09
|
|
[subset] Optimize hmtx/vmtx serialization.
Make serializer allocation up front to avoid bounds checking overhead for each metric.
Benchmarks:
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10_median -0.1005 -0.1005 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/64_median -0.0693 -0.0692 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/512_median -0.0294 -0.0293 1 1 1 1
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/4096_median -0.0033 -0.0032 3 3 3 3
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10000_median +0.0170 +0.0171 7 7 7 7
|
|
c6368e01
|
2023-06-01T20:51:17
|
|
[map] Return const reference from operator()
Like we do in operator[].
|
|
b04ca1c1
|
2023-06-01T20:43:07
|
|
Revert "[subset/glyf] Exact allocation"
This reverts commit a830f085c849846f8441f5d92d4db36130ef71f8.
Weirdly enough in a benchmark I'm running I see this show
some slowdown. Makes zero sense.
|
|
a830f085
|
2023-06-01T20:37:29
|
|
[subset/glyf] Exact allocation
|
|
ff0b85cf
|
2023-06-01T20:30:56
|
|
[subset/glyf] Empty .notdef only if old-gid was also 0
Otherwise it wasn't a .notdef, even if new-gid is 0.
|
|
65a7d8c6
|
2023-06-01T20:20:00
|
|
[glyf] Empty glyphs need no padding
|
|
73c18d1d
|
2023-06-01T20:06:42
|
|
[glyf] Micro-optimize padded_offsets
|
|
88d8a6d6
|
2023-06-01T19:24:02
|
|
[BEInt] Use packed-int trick for writing as well
|
|
4d853b8b
|
2023-06-01T18:47:58
|
|
[subset/regaingid/glyf] Add a fastpath for empty glyphs
Mplus benchmark:
Comparing before to after
Benchmark Time CPU Time Old Time New CPU Old CPU New
-----------------------------------------------------------------------------------------------------------------------------------------------------------
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10 -0.1764 -0.1771 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/64 -0.1394 -0.1394 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/512 -0.0644 -0.0645 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/4096 +0.0132 +0.0131 1 1 1 1
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10000 -0.0029 -0.0034 3 3 3 3
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/10 +0.0364 +0.0362 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/64 +0.0346 +0.0343 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/512 +0.0271 +0.0268 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/4096 +0.0193 +0.0193 1 1 1 1
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/10000 -0.0240 -0.0243 2 2 2 2
OVERALL_GEOMEAN -0.0305 -0.0307 0 0 0 0
|
|
6ec7629f
|
2023-06-01T18:18:30
|
|
[subset/glyf] Add a const
|
|
9f54ab92
|
2023-06-01T17:45:03
|
|
[subset-plan] Keep a reverse-gid vector
To speed up iteration.
|
|
6b0d3867
|
2023-06-01T23:59:55
|
|
[subset] in subset benchmarks switch nohinting with retaingids.
retain gids is a more interesting case than no hinting for performance.
|
|
1ae99d1a
|
2023-06-01T15:22:26
|
|
bug fix
|
|
aa7dd70a
|
2023-06-01T14:24:33
|
|
[hmtx] Reduce map usage slightly
|
|
f41c5ec9
|
2023-06-01T18:38:05
|
|
[map] update map benchmark to also test lookups that hit.
|
|
4acf6a82
|
2023-05-30T09:26:58
|
|
[instancer-solver] port solver fix from fonttools
See https://github.com/fonttools/fonttools/issues/3139
|
|
f3b4d35f
|
2023-05-29T22:38:40
|
|
[subset] Fix fuzzer crash.
https://oss-fuzz.com/testcase-detail/6608005089853440
|
|
ff326fbe
|
2023-05-29T21:31:01
|
|
[repacker] check the result of add_buffer() in other places where it's called.
|
|
66a84355
|
2023-05-29T17:17:15
|
|
[hash] Use unsigned types
Hopefully ubsan wouldn't complain about overflows now.
|
|
4a93576b
|
2023-05-28T13:22:35
|
|
Revert "[map] Speedup for int types"
This reverts commit c1b75f5ff0460274229801816265a0efe5731b3a.
I was seeing very long chains (140) and a 17% slowdown in
BM_subset/subset_codepoints/RobotoFlex-Variable.ttf/512
Bummer.
|
|
c1b75f5f
|
2023-05-28T12:53:17
|
|
[map] Speedup for int types
Since our int hash is now good, we don't need the modulo prime
here, so forgo it. Major speedup:
Comparing before to after
Benchmark Time CPU Time Old Time New CPU Old CPU New
-------------------------------------------------------------------------------------------------------------------
BM_MapInsert/16 -0.4136 -0.4137 6 4 6 4
BM_MapInsert/64 -0.4442 -0.4441 6 3 6 3
BM_MapInsert/512 -0.5382 -0.5383 8 4 8 4
BM_MapInsert/4096 -0.4160 -0.4162 8 5 8 5
BM_MapInsert/32768 -0.3256 -0.3258 12 8 12 8
BM_MapInsert/262144 -0.1723 -0.1727 11 10 11 9
BM_MapInsert/1048576 -0.2310 -0.2309 28 22 28 22
BM_MapLookup/16 -0.0247 -0.0247 3 3 3 3
BM_MapLookup/64 -0.1039 -0.1038 3 3 3 3
BM_MapLookup/512 -0.1076 -0.1079 4 3 4 3
BM_MapLookup/4096 -0.3729 -0.3732 9 6 9 6
BM_MapLookup/32768 +0.2467 +0.2468 9 12 9 12
BM_MapLookup/262144 -0.1862 -0.1868 14 11 14 11
BM_MapLookup/1048576 +0.1159 +0.1160 15 17 15 17
OVERALL_GEOMEAN -0.2414 -0.2416 0 0 0 0
|
|
7f111787
|
2023-05-27T12:41:05
|
|
[benchmark-map] Remove overhead
|
|
56668073
|
2023-05-27T12:37:36
|
|
[benchmark-map] Improve Insert benchmark
Previously it was enlarging the map depending on whatever
number of runs the benchmark-runner decided to run the loop.
That wasn't very useful...
|
|
00900f76
|
2023-05-27T10:13:53
|
|
[hash] Enable better hash for integers
https://github.com/harfbuzz/harfbuzz/pull/4228#issuecomment-1565079537
|
|
20c564bc
|
2023-05-26T23:04:25
|
|
[repacker] Fix fuzzer memory leak.
https://oss-fuzz.com/testcase-detail/6419865171525632
|
|
5abe7132
|
2023-05-26T15:56:30
|
|
[map] Resize map on long chain probes
|
|
a652281e
|
2023-05-26T19:47:50
|
|
[subset] Fix fuzzer timeout.
Fixes https://oss-fuzz.com/testcase-detail/5979721620652032. Timeout was caused by degenerate map insert behaviour due to poor integer hash function. Presize the map to avoid it. Also fixes collect_mapping() for cmap format 13.
|
|
208c9490
|
2023-05-26T12:02:03
|
|
[VarComposite] Limit number of axes that are copied
Bandaid for https://oss-fuzz.com/testcase-detail/4591122882887680
|
|
5872bdf6
|
2023-05-26T11:41:54
|
|
[vector] Add copy-constructor for array_t's
|
|
42aba5ff
|
2023-05-24T12:19:50
|
|
harfbuzz-config.cmake.in: Support Windows usage
Apply the appropriate library prefix/suffix by whether we are building
as a statib build in Meson, or by using
${CMAKE_[SHARED|IMPORT]_LIBRARY_PREFIX} and
${CMAKE_[SHARED|IMPORT]_LIRBARY_SUFFIX} as appropriate according to
the target platform for shared builds.
|
|
84354d3f
|
2023-05-23T11:57:22
|
|
[cff] When max-ops is reached return false
Slight speedup too.
|
|
2655b760
|
2023-05-23T10:57:58
|
|
[map] Micro-optimize
This shows a speedup.
|
|
12b0680e
|
2023-05-23T10:49:41
|
|
[map] Fix set()
This was broken in 2133aa2407657d0b3b4b73a4951c05ed26d055f2.
We have to keep probing over tombstones.
|
|
4056315c
|
2023-05-22T14:17:12
|
|
[font] Remove redundant avar mapping line
The avar mapping happens in hb_ot_var_normalize_coords() call.
|
|
592a3d0e
|
2023-05-21T22:00:53
|
|
Merge pull request #4237 from harfbuzz/layout-font-extents
[layout] Add hb_ot_layout_get_font_extents()
|
|
0d354e04
|
2023-05-21T19:01:04
|
|
[layout] Add tests for baseline 2 APIs
|
|
e047b1ab
|
2023-05-20T10:27:31
|
|
[layout] Improve docs
|
|
132391ad
|
2023-05-19T15:01:49
|
|
[layout] Add test for font_extents
|
|
6996e64f
|
2023-05-19T14:22:13
|
|
[BASE] Sanitize and get_min_max fixups
Seems to work now.
|
|
02e0e939
|
2023-05-19T13:18:06
|
|
[layout] Fetch default font extents if localized extents not found
|
|
8ccc1ff2
|
2023-05-19T13:14:57
|
|
[layout] Mark language as nullable
GI needs it apparently.
|
|
792ca22c
|
2023-05-19T11:42:20
|
|
[layout] Document new API
|
|
0894813a
|
2023-05-19T11:30:03
|
|
[layout] Add "2" version of BASE table API
...that do the script/language resolution.
Part of https://github.com/harfbuzz/harfbuzz/pull/4237
Ref https://github.com/harfbuzz/harfbuzz/issues/3439
|
|
3e110c69
|
2023-05-19T11:06:26
|
|
[layout] Add hb_ot_layout_get_font_extents()
Untested.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3290
|
|
2f21dc23
|
2023-05-18T07:14:28
|
|
[wasm] [docs] Improve build flags information
|
|
134cc8ed
|
2023-05-17T16:58:49
|
|
[wasm] [docs] How to build
|
|
5543d058
|
2023-05-17T17:29:44
|
|
[subset] Use vector instead of map for glyph bounds (#4232)
* [subset] Use vector instead of map for glyph bounds
Is faster.
Part of https://github.com/harfbuzz/harfbuzz/issues/4231
* [subset] initialize bounds_vec value to 0xFFFFFFFF
Some non-EMPTY glyph might have 0 bounds width/height
---------
Co-authored-by: Qunxin Liu <qxliu@google.com>
|
|
ccfd7ef0
|
2023-05-17T16:00:33
|
|
Merge pull request #4131 from harfbuzz/wasm
[wasm] WebAssembly shaper
|
|
6ed792ef
|
2023-05-17T07:58:27
|
|
[meson] Report WebAssembly build
|
|
56af88d0
|
2023-05-17T12:38:59
|
|
[wasm] More thorough API docs
|
|
c248fd91
|
2023-05-10T01:44:10
|
|
[hash] Comment
|
|
42f4dab8
|
2023-05-10T01:11:32
|
|
[hash] Switch to Knuth multiplicative hash
Wow, the old adhoc one was why the cmap test was timing out!
|
|
0270e3e9
|
2023-05-09T23:46:18
|
|
[map] Reinstate quadratic probing
|
|
19b628bd
|
2023-05-09T23:40:07
|
|
Revert "[map] Implement Robinhood hashing"
This reverts commit 705617856818056a44a627f340c91e335c57f310.
|
|
18c3ba50
|
2023-05-09T22:44:22
|
|
[map] Implement Robinhood hashing
Numbers are not improved though. :(
|
|
2133aa24
|
2023-05-09T21:06:17
|
|
[map] Inline code for set()
|
|
5bf5188e
|
2023-05-09T20:47:46
|
|
[map] Simplify del()
|
|
2ffec3a6
|
2023-05-09T20:44:23
|
|
[map] Shuffle fetch_item
|
|
1dc99128
|
2023-05-09T20:37:12
|
|
[map] Separate has() code from set() code
|
|
2dd0803c
|
2023-05-09T20:35:09
|
|
[map] Downgrade from quadratic to linear probing
|
|
49819767
|
2023-05-09T20:24:12
|
|
[map] Write get() in terms of has()
|
|
f37941bb
|
2023-05-09T11:53:15
|
|
[instancer] add tests for instancer-solver from python test suite
Also fix bug in the solver code
|
|
39ac79a7
|
2023-05-10T10:22:49
|
|
address review comments
|
|
58f68dd3
|
2023-05-04T14:25:14
|
|
[instancer] wrap hb_subset_input_Set_axis_range() under experimental
Also add notes: it's not actually working yet.
|
|
f3a3c3b2
|
2023-05-04T13:19:12
|
|
fix bot
|
|
efc77dc6
|
2023-05-04T10:59:09
|
|
[instancer] update code for collecting FeatureVariationRecord
|
|
bf298e50
|
2023-05-01T13:40:19
|
|
[instancer ]update OS_2/post/glyf tables to accept Triple for axes positions
|
|
51c7451b
|
2023-05-01T13:38:02
|
|
[instancer] update fvar table to accept Tripe for axes positions
|
|
bf46d566
|
2023-05-01T11:23:51
|
|
[instancer] update STAT table to accept Triples for axes positions
|
|
779e8ba0
|
2023-04-27T13:48:24
|
|
[instancer] update subset-plan.cc to accept Triple as axes positions
|
|
22cca43d
|
2023-04-20T14:37:29
|
|
[instancer ]update internal hashmap to use Triple instead of single value
-Added hb-subset-instancer-solver.hh file and moved Triple struct to the
head file
|
|
0799afe2
|
2023-04-20T14:02:20
|
|
[instancer] Add hb_subset_input_set_axis_range() API
|
|
5d543d64
|
2023-05-09T19:02:26
|
|
Merge pull request #4228 from harfbuzz/better-hash
Better hash
|
|
5d0cc006
|
2023-05-09T18:40:35
|
|
[hash] Disable int hash as it has negative performance gain
|
|
1fbb0858
|
2023-05-09T17:11:05
|
|
[hash] Adjust prime number
Previous one wasn't a prime. Ouch!
|
|
9cc7eb80
|
2023-05-09T16:13:46
|
|
[hash] Speed-up int64 hash
|
|
4584bcdc
|
2023-05-10T00:20:25
|
|
7.3.0
|
|
826fe2c9
|
2023-05-09T13:48:38
|
|
[hash] Wrap specialization in HB_OPTIMIZE_SIZE_MORE
|
|
b2b15fa3
|
2023-05-09T13:39:52
|
|
[hash] Links
|
|
05567da0
|
2023-05-09T12:22:43
|
|
Revert "[hash] Use fasthash for integer hash"
This reverts commit 3bf758a57071572a0ffae3c359b4cfec5a096312.
This was resulting in long chains again :(.
|