Log

Author Commit Date CI Message
Behdad Esfahbod c2eaedd2 2023-06-04T09:25:07 [fuzzing] Add a test font From https://oss-fuzz.com/testcase-detail/5855710991482880
Behdad Esfahbod af3fdf1f 2023-06-04T09:22:42 [subset/glyf] Simplify error handling
Behdad Esfahbod 3dd1de46 2023-06-04T09:15:14 [subset/glyf] Fix a few return_trace's
Behdad Esfahbod 73f2f935 2023-06-04T09:12:18 [subset/glyf] Fix another leak
Behdad Esfahbod 3d08a2f1 2023-06-03T23:38:38 [subset/glyf] Fix leak
Behdad Esfahbod fc33200d 2023-06-03T23:29:39 [subset/glyf] Avoid a vector copy Oops!
Behdad Esfahbod 3bfcbd61 2023-06-03T23:17:56 [subset/glyf] Minor use range lopp
Behdad Esfahbod 917c8d0a 2023-06-03T23:15:56 [subset/glyf] Minor change of value
Behdad Esfahbod 2b8c4313 2023-06-03T23:01:27 [vector] Oops!
Behdad Esfahbod 054f966a 2023-06-03T22:52:16 [subset/cff1] Don't allocate memory for retaingid holes 40% speedup in BM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/retaingids/10 benchmark.
Behdad Esfahbod b5792f11 2023-06-03T22:24:06 [subset] Reuse num_glyphs in various places
Behdad Esfahbod 7e4311a8 2023-06-03T22:11:47 [cff] Speed up for retaingids
Behdad Esfahbod ca237e6b 2023-06-03T22:07:29 [subset/cff] Reuse num_glyphs
Behdad Esfahbod 1590754b 2023-06-03T22:04:52 [subset/cff] Speed up for retaingids
Behdad Esfahbod dff3a936 2023-06-03T22:00:28 [subset/cff1] Speed up for retaingids
Behdad Esfahbod fa8d15d5 2023-06-03T21:58:21 [subset/cff1] Reuse num_glyphs
Behdad Esfahbod 937ead2f 2023-06-03T21:38:56 [subset/hvar] Speed up for retaingids
Behdad Esfahbod acab716b 2023-06-03T21:15:36 [subset/hvar] Speed up for retaingids
Behdad Esfahbod bc6dbf43 2023-06-03T21:09:33 [subset/gvar] Micro-optimize
Behdad Esfahbod 84134753 2023-06-03T21:08:30 [subset/gvar] Speed up for retaingids
Behdad Esfahbod 87cf09bd 2023-06-03T21:00:56 [subset/loca] Fix up for retaingid null glyphs at the end We currently don't have those, but in case we add.
Behdad Esfahbod 2fb670a5 2023-06-03T20:56:04 [subset/gvar] Speed up for retaingids
Behdad Esfahbod 5b167934 2023-06-03T20:45:52 [subset/hdmx] Micro-optimize
Behdad Esfahbod 9b733532 2023-06-03T20:44:08 [subset/hdmx] Fix build
Behdad Esfahbod 4d4792ce 2023-06-03T20:34:51 [subset/hdmx] Speed up more for retaingids
Behdad Esfahbod a3f7ed70 2023-06-03T20:25:14 [subset/hdmx] Don't clear memory unnecessarily
Behdad Esfahbod e263c3cc 2023-06-03T20:20:57 [subset/hdmx] Speed up
Behdad Esfahbod 0e16be9b 2023-06-03T19:45:44 [subset-plan] Reuse glyph_for_gid result
Behdad Esfahbod 590fb352 2023-06-03T19:21:22 [subset] Reduce memory pressure
Behdad Esfahbod c03c3000 2023-06-03T19:05:10 [subset] Tweak memory allocation Reduces chances of rework, specially for glyf table if padding is needed...
Behdad Esfahbod 38fa0323 2023-06-03T18:51:09 Revert "[subset/loca] Build in the serializer memory" This reverts commit 546b51818666ca1ddb01824f752eccbd6a751b4b.
Behdad Esfahbod 546b5181 2023-06-03T18:50:35 [subset/loca] Build in the serializer memory Because it's hot. Doesn't seem to speed up though. Slight slowdown. Going to revert.
Behdad Esfahbod 3cb2b49e 2023-06-03T18:44:56 [subset/loca] Shuffle code around
Behdad Esfahbod f014112d 2023-06-03T18:27:24 Revert "[subset] Allow adding table directly from subset()" This reverts commit 25a6514887ebe899bd4ede1e283e067f97e15def.
Behdad Esfahbod 25a65148 2023-06-03T18:26:36 [subset] Allow adding table directly from subset() And do it for hmtx. Going to revert since it slows things down. Apparently the serializer buffer is in caches and hot, so faster to write to and copy even.
Behdad Esfahbod b0d0babb 2023-06-03T17:14:55 [subset/loca] Rewrite loop faster
Behdad Esfahbod 8dab4441 2023-06-03T17:06:30 [subset/hmtx] Micro-optimize last commit hb_zip has its own overhead...
Behdad Esfahbod e981dc24 2023-06-03T17:01:52 [subset/hmtx] Rewrite loop faster for retaingid
Behdad Esfahbod 4a9da026 2023-06-03T16:46:29 [subset/hmtx] Micro-optimize
Behdad Esfahbod 6a3fcc64 2023-06-03T16:38:18 [map] Don't call hash() if map is empty
Behdad Esfahbod 735d2496 2023-06-03T16:35:03 [map] Remove an unlikely Empty maps are common in some subsetting operations.
Behdad Esfahbod ca27925d 2023-06-03T16:18:15 Use hb_codepoint_pair_t in more places
Behdad Esfahbod 841e86fd 2023-06-03T16:09:45 [subset/hmtx] Further speedup!
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