Log

Author Commit Date CI Message
Behdad Esfahbod de729ec1 2023-06-03T15:48:54 [meta] Return reference from reference-wrapper
Behdad Esfahbod c7493efe 2023-06-03T15:39:27 [subset/loca] Micro-optimize
Behdad Esfahbod 13a4c7b3 2023-06-03T15:12:53 [subset/hmtx] Comment
Behdad Esfahbod 4da2996f 2023-06-03T15:08:20 [doc] Fix
Behdad Esfahbod c3e7f451 2023-06-03T14:56:47 Add HB_CODEPOINT_INVALID Fixes https://github.com/harfbuzz/harfbuzz/issues/4262
Behdad Esfahbod efefec13 2023-06-02T20:33:52 [subset/glyf] Remove unneeded codepath
Behdad Esfahbod ac1f5ca0 2023-06-02T17:07:44 [subset/loca] Micro-optimize
Behdad Esfahbod 6eae9325 2023-06-02T17:05:27 [subset/loca] Reduce a vector allocation
Behdad Esfahbod cd249d23 2023-06-02T16:15:05 [subset/hmtx] Micro-optimize
Behdad Esfahbod ec8965e4 2023-06-02T16:10:25 [subset/glyf] Don't clear loca allocation
Behdad Esfahbod 916629d1 2023-06-02T16:08:49 [subset/hmtx] Don't clear allocation
Behdad Esfahbod 24b069cd 2023-06-02T15:55:53 [subset] Pre-alloc a few maps
Behdad Esfahbod 7319d0d7 2023-06-02T15:41:47 [subset-plan] Add a couple of map pre-allocations Approximate...
Behdad Esfahbod 76904b04 2023-06-02T15:30:12 [subset-plan] Simplify / speedup planning glyphset
Behdad Esfahbod 965ce7bb 2023-06-02T15:24:00 [subset-plan] Speed up planning new_to_old_gid_list
Behdad Esfahbod b67e464b 2023-06-02T15:11:06 [subset/retaingid] Regain perf lost In 0f12fd5a66a5dd1c3c9ac5ea8a52341bafcfe567
Behdad Esfahbod 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.
Behdad Esfahbod 66ce902c 2023-06-02T13:53:21 [glyf] Reduce allocation again
Behdad Esfahbod 0e0110e7 2023-06-02T13:34:58 [glyf] Avoid a SubsetGlyph copy Unfortunately hb_second() always does a copy...
Behdad Esfahbod 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
Garret Rieger 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
Behdad Esfahbod c6368e01 2023-06-01T20:51:17 [map] Return const reference from operator() Like we do in operator[].
Behdad Esfahbod 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.
Behdad Esfahbod a830f085 2023-06-01T20:37:29 [subset/glyf] Exact allocation
Behdad Esfahbod 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.
Behdad Esfahbod 65a7d8c6 2023-06-01T20:20:00 [glyf] Empty glyphs need no padding
Behdad Esfahbod 73c18d1d 2023-06-01T20:06:42 [glyf] Micro-optimize padded_offsets
Behdad Esfahbod 88d8a6d6 2023-06-01T19:24:02 [BEInt] Use packed-int trick for writing as well
Behdad Esfahbod 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
Behdad Esfahbod 6ec7629f 2023-06-01T18:18:30 [subset/glyf] Add a const
Behdad Esfahbod 9f54ab92 2023-06-01T17:45:03 [subset-plan] Keep a reverse-gid vector To speed up iteration.
Garret Rieger 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.
Qunxin Liu 1ae99d1a 2023-06-01T15:22:26 bug fix
Behdad Esfahbod aa7dd70a 2023-06-01T14:24:33 [hmtx] Reduce map usage slightly
Garret Rieger f41c5ec9 2023-06-01T18:38:05 [map] update map benchmark to also test lookups that hit.
Qunxin Liu 4acf6a82 2023-05-30T09:26:58 [instancer-solver] port solver fix from fonttools See https://github.com/fonttools/fonttools/issues/3139
Garret Rieger f3b4d35f 2023-05-29T22:38:40 [subset] Fix fuzzer crash. https://oss-fuzz.com/testcase-detail/6608005089853440
Garret Rieger ff326fbe 2023-05-29T21:31:01 [repacker] check the result of add_buffer() in other places where it's called.
Behdad Esfahbod 66a84355 2023-05-29T17:17:15 [hash] Use unsigned types Hopefully ubsan wouldn't complain about overflows now.
Behdad Esfahbod 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.
Behdad Esfahbod 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
Behdad Esfahbod 7f111787 2023-05-27T12:41:05 [benchmark-map] Remove overhead
Behdad Esfahbod 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...
Behdad Esfahbod 00900f76 2023-05-27T10:13:53 [hash] Enable better hash for integers https://github.com/harfbuzz/harfbuzz/pull/4228#issuecomment-1565079537
Garret Rieger 20c564bc 2023-05-26T23:04:25 [repacker] Fix fuzzer memory leak. https://oss-fuzz.com/testcase-detail/6419865171525632
Behdad Esfahbod 5abe7132 2023-05-26T15:56:30 [map] Resize map on long chain probes
Garret Rieger 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.
Behdad Esfahbod 208c9490 2023-05-26T12:02:03 [VarComposite] Limit number of axes that are copied Bandaid for https://oss-fuzz.com/testcase-detail/4591122882887680
Behdad Esfahbod 5872bdf6 2023-05-26T11:41:54 [vector] Add copy-constructor for array_t's
Chun-wei Fan 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.
Behdad Esfahbod 84354d3f 2023-05-23T11:57:22 [cff] When max-ops is reached return false Slight speedup too.
Behdad Esfahbod 2655b760 2023-05-23T10:57:58 [map] Micro-optimize This shows a speedup.
Behdad Esfahbod 12b0680e 2023-05-23T10:49:41 [map] Fix set() This was broken in 2133aa2407657d0b3b4b73a4951c05ed26d055f2. We have to keep probing over tombstones.
Behdad Esfahbod 4056315c 2023-05-22T14:17:12 [font] Remove redundant avar mapping line The avar mapping happens in hb_ot_var_normalize_coords() call.
Behdad Esfahbod 592a3d0e 2023-05-21T22:00:53 Merge pull request #4237 from harfbuzz/layout-font-extents [layout] Add hb_ot_layout_get_font_extents()
Khaled Hosny 0d354e04 2023-05-21T19:01:04 [layout] Add tests for baseline 2 APIs
Behdad Esfahbod e047b1ab 2023-05-20T10:27:31 [layout] Improve docs
Behdad Esfahbod 132391ad 2023-05-19T15:01:49 [layout] Add test for font_extents
Behdad Esfahbod 6996e64f 2023-05-19T14:22:13 [BASE] Sanitize and get_min_max fixups Seems to work now.
Behdad Esfahbod 02e0e939 2023-05-19T13:18:06 [layout] Fetch default font extents if localized extents not found
Behdad Esfahbod 8ccc1ff2 2023-05-19T13:14:57 [layout] Mark language as nullable GI needs it apparently.
Behdad Esfahbod 792ca22c 2023-05-19T11:42:20 [layout] Document new API
Behdad Esfahbod 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
Behdad Esfahbod 3e110c69 2023-05-19T11:06:26 [layout] Add hb_ot_layout_get_font_extents() Untested. Fixes https://github.com/harfbuzz/harfbuzz/issues/3290
Simon Cozens 2f21dc23 2023-05-18T07:14:28 [wasm] [docs] Improve build flags information
Simon Cozens 134cc8ed 2023-05-17T16:58:49 [wasm] [docs] How to build
Behdad Esfahbod 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>
Behdad Esfahbod ccfd7ef0 2023-05-17T16:00:33 Merge pull request #4131 from harfbuzz/wasm [wasm] WebAssembly shaper
Behdad Esfahbod 6ed792ef 2023-05-17T07:58:27 [meson] Report WebAssembly build
Simon Cozens 56af88d0 2023-05-17T12:38:59 [wasm] More thorough API docs
Behdad Esfahbod c248fd91 2023-05-10T01:44:10 [hash] Comment
Behdad Esfahbod 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!
Behdad Esfahbod 0270e3e9 2023-05-09T23:46:18 [map] Reinstate quadratic probing
Behdad Esfahbod 19b628bd 2023-05-09T23:40:07 Revert "[map] Implement Robinhood hashing" This reverts commit 705617856818056a44a627f340c91e335c57f310.
Behdad Esfahbod 18c3ba50 2023-05-09T22:44:22 [map] Implement Robinhood hashing Numbers are not improved though. :(
Behdad Esfahbod 2133aa24 2023-05-09T21:06:17 [map] Inline code for set()
Behdad Esfahbod 5bf5188e 2023-05-09T20:47:46 [map] Simplify del()
Behdad Esfahbod 2ffec3a6 2023-05-09T20:44:23 [map] Shuffle fetch_item
Behdad Esfahbod 1dc99128 2023-05-09T20:37:12 [map] Separate has() code from set() code
Behdad Esfahbod 2dd0803c 2023-05-09T20:35:09 [map] Downgrade from quadratic to linear probing
Behdad Esfahbod 49819767 2023-05-09T20:24:12 [map] Write get() in terms of has()
Qunxin Liu f37941bb 2023-05-09T11:53:15 [instancer] add tests for instancer-solver from python test suite Also fix bug in the solver code
Qunxin Liu 39ac79a7 2023-05-10T10:22:49 address review comments
Qunxin Liu 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.
Qunxin Liu f3a3c3b2 2023-05-04T13:19:12 fix bot
Qunxin Liu efc77dc6 2023-05-04T10:59:09 [instancer] update code for collecting FeatureVariationRecord
Qunxin Liu bf298e50 2023-05-01T13:40:19 [instancer ]update OS_2/post/glyf tables to accept Triple for axes positions
Qunxin Liu 51c7451b 2023-05-01T13:38:02 [instancer] update fvar table to accept Tripe for axes positions
Qunxin Liu bf46d566 2023-05-01T11:23:51 [instancer] update STAT table to accept Triples for axes positions
Qunxin Liu 779e8ba0 2023-04-27T13:48:24 [instancer] update subset-plan.cc to accept Triple as axes positions
Qunxin Liu 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
Qunxin Liu 0799afe2 2023-04-20T14:02:20 [instancer] Add hb_subset_input_set_axis_range() API
Behdad Esfahbod 5d543d64 2023-05-09T19:02:26 Merge pull request #4228 from harfbuzz/better-hash Better hash
Behdad Esfahbod 5d0cc006 2023-05-09T18:40:35 [hash] Disable int hash as it has negative performance gain
Behdad Esfahbod 1fbb0858 2023-05-09T17:11:05 [hash] Adjust prime number Previous one wasn't a prime. Ouch!
Behdad Esfahbod 9cc7eb80 2023-05-09T16:13:46 [hash] Speed-up int64 hash
Khaled Hosny 4584bcdc 2023-05-10T00:20:25 7.3.0
Behdad Esfahbod 826fe2c9 2023-05-09T13:48:38 [hash] Wrap specialization in HB_OPTIMIZE_SIZE_MORE
Behdad Esfahbod b2b15fa3 2023-05-09T13:39:52 [hash] Links
Behdad Esfahbod 05567da0 2023-05-09T12:22:43 Revert "[hash] Use fasthash for integer hash" This reverts commit 3bf758a57071572a0ffae3c359b4cfec5a096312. This was resulting in long chains again :(.