Log

Author Commit Date CI Message
Behdad Esfahbod b1522239 2023-06-04T13:58:10 [cff] Minor type change
Behdad Esfahbod 640774b9 2023-06-04T13:26:14 [subset/cff] Speed up subsr subset for retaingids
Behdad Esfahbod 6b11a3d9 2023-06-04T13:18:43 [subset/cff] Speed up closure_subroutines for retaingids
Behdad Esfahbod 31014832 2023-06-04T12:58:02 [cff1] More hygiene
Behdad Esfahbod bf0a08c9 2023-06-04T12:54:35 [cff1] Hygiene
Behdad Esfahbod ebc5257e 2023-06-04T11:25:16 [cff1] Add a couple of unlikely's
Behdad Esfahbod 9cdc0b64 2023-06-04T11:18:56 [subset/cff] Speed up subset_cff_fdselect
Behdad Esfahbod 858a0223 2023-06-04T10:55:41 Revert "[cff] Optimize writing out Index offsets" This reverts commit 78ba23c58766c16992ddc4e3af403824aa845fe2. Not enough gain, and bloats code size.
Behdad Esfahbod 78ba23c5 2023-06-04T10:52:19 [cff] Optimize writing out Index offsets
Behdad Esfahbod 89ce8048 2023-06-04T10:20:39 [serialize] Remove attribute malloc This broke tests. It wasn't technically correct.
Behdad Esfahbod 3f2a1b64 2023-06-04T10:13:53 Fix build
Behdad Esfahbod e1715056 2023-06-04T10:09:02 [serialize] One more attribute
Behdad Esfahbod 15048e50 2023-06-04T10:07:04 [serialize] Add more function attributes
Behdad Esfahbod aad12ca6 2023-06-04T09:57:51 [serialize] Add a few function attributes
Behdad Esfahbod 4e076da9 2023-06-04T09:48:42 Another try at fixing build
Behdad Esfahbod b08866af 2023-06-04T09:44:37 Fix build
Behdad Esfahbod 82741304 2023-06-04T09:41:41 [subset] start_embed never returns nullptr Remove checks.
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.