Log

Author Commit Date CI Message
Behdad Esfahbod 29903f46 2022-12-02T17:45:01 [benchmark-subset] Cache (preprocessed) face amongst runs
Behdad Esfahbod 3fb4ea29 2022-12-02T17:08:31 Merge pull request #3914 from harfbuzz/multimap [multimap] Add a multimap datastructure & use for gid-to-unicodes subset accelerator
Behdad Esfahbod ddeac365 2022-12-02T16:51:07 [test-multimap] More tests
Behdad Esfahbod ff419789 2022-12-02T16:25:26 [subset-plan] Sort unicode_to_new_gid_list when needed
Behdad Esfahbod 1a40da4a 2022-12-02T16:13:37 [subset-plan] Use add_array instead of add_sorted_array That vector is not declared as sorted.
Behdad Esfahbod 32e049a3 2022-12-02T16:09:10 [subset-plan] Use gid-to-unicodes multimap One test fails. Need investigation.
Behdad Esfahbod da7961b2 2022-12-02T16:08:40 .
Behdad Esfahbod 7d6893a8 2022-12-02T15:50:52 [subset-accelerator] Cache gid-to-unicodes
Behdad Esfahbod 10c8fc55 2022-12-02T15:34:34 [multimap] Add a multimap datastructure
Behdad Esfahbod a42fc8ec 2022-12-02T15:41:18 [subset-accelerator] Adjust in_error()
Behdad Esfahbod 65d96303 2022-12-02T14:59:26 [subset-cff2] Whitespace
Behdad Esfahbod b33297ee 2022-12-02T14:43:37 [cff2] Remove unused typedef
Behdad Esfahbod 3ade2ffa 2022-12-02T14:26:36 [serialize] Adjust pop_discard for zerocopy
Behdad Esfahbod 043eeb29 2022-12-02T13:58:36 [subset-cff] Optimize encode_subrs Don't loop over all original subrs. Just walk over closure subrs.
Behdad Esfahbod 0ad5977c 2022-12-02T13:41:06 [subset-cff] Simplify hinting processing We already have drop_hints in the params.
Behdad Esfahbod 16cbe41b 2022-12-02T12:43:13 Merge pull request #3910 from googlefonts/repacker_fuzz [repacker] Add a fuzzer for the hb-subset-repacker api.
Behdad Esfahbod 2a7a1d5a 2022-12-02T12:33:24 [Coverage] Avoid timeout on broken ranges Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53929
Behdad Esfahbod c9476527 2022-12-01T21:48:35 [subset-cff] Micro-optimize
Behdad Esfahbod a24d4e92 2022-12-01T20:27:56 [array] Oops. Fix memcpy copy()!
Behdad Esfahbod 5e41766b 2022-12-01T20:19:04 [array] Fix hb_bytes_t memcpy copy Wasn't being used!
Behdad Esfahbod a5616227 2022-12-01T20:11:34 [subset-cff] Fix buffer size calculation
Behdad Esfahbod 015af5a8 2022-12-01T20:08:59 [subset-cff] Write a couple loops as range-based for
Behdad Esfahbod bfbbd4af 2022-12-01T20:05:20 [subset-cff] Copy str for call ops
Behdad Esfahbod c755b388 2022-12-01T20:02:38 [subset-cff] Pre-alloc enough for check-less copy
Behdad Esfahbod 062e59ae 2022-12-01T19:43:48 [subset-cff] Optimize vector allocation for preprocessed input
Behdad Esfahbod 8e9e94db 2022-12-01T19:40:21 Revert "[vector] Optimize grow_vector() for size" This reverts commit 1dd9396c7a4c24fe9d578551fab735bdd699e52a. Is faster indeed. 15% on SourceHanSans/10000 benchmark.
Behdad Esfahbod 2644540a 2022-12-01T18:49:09 [subset-cff] Compact parsed strings if using accelerator Saves 32% on SourceHanSans/10000 benchmark! Also, use memcmp now for writing out strings since now that our ops are not super short, that's faster. This makes cff-japanese test takes super long though; that needs inspection.
Behdad Esfahbod 6012d3b2 2022-12-01T17:33:53 [subset-cff] Write out charstrings zerocopy to serializer
Garret Rieger 16f61a1c 2022-12-01T23:57:30 [repacker] only build repacker fuzzer when experimental api is enabled.
Behdad Esfahbod 36e1a633 2022-12-01T16:52:29 [cff] Add total_size to INDEX
Behdad Esfahbod 38430006 2022-12-01T16:48:22 [serialize] Add start_zerocopy()
Garret Rieger de5a6213 2022-12-01T23:37:16 [repacker] enforce root node having no incoming edges.
Behdad Esfahbod a2681c37 2022-12-01T16:09:03 [cff-subset] Simplify INDEX serialize() more
Behdad Esfahbod c4b05878 2022-12-01T15:56:37 [subset-cff] Remove INDEX unused serialize() methods
Behdad Esfahbod b3ad4d72 2022-12-01T15:46:00 [cff] Another no-memset in INDEX
Behdad Esfahbod 5fd2f255 2022-12-01T15:18:59 [open-type] Don't memset 0 in serialize for ArrayOf family Not necessary.
Garret Rieger 30e405e4 2022-12-01T22:12:59 [repacker] ensure link obj indices are valid.
Behdad Esfahbod 70ac6dfb 2022-12-01T14:56:28 [subset-cff] Don't memset 0 INDEX and other serialize methods Not necessary.
Garret Rieger 554ed06f 2022-12-01T21:51:17 [repacker] add cycle detection to the graph sort. This allows us to bail early if the graph is not acyclic.
Behdad Esfahbod a66de336 2022-12-01T14:32:13 [vector] Minor use get_size() in as_bytes()
Behdad Esfahbod 0b826368 2022-12-01T14:23:25 [serializer] Don't memset memory in embed Not necessary.
Behdad Esfahbod 3b68c714 2022-12-01T14:19:27 [array] Don't clear serializer buffer when copying out Not needed.
Behdad Esfahbod 57808609 2022-12-01T14:03:56 [VarData] Move an unlikely
Garret Rieger 9e99d084 2022-09-08T23:19:02 [repacker] validate link widths during repacker setup.
Garret Rieger edf7a295 2022-09-08T22:59:34 [repacker] Validate link positions before running the repacker.
Garret Rieger 88d43752 2022-09-08T21:19:25 [repacker] add test for repacker fuzzer.
Garret Rieger 6627a1ab 2022-09-08T21:11:39 [repacker] Add a initial seed for the fuzzer repacker.
Garret Rieger deca30b2 2022-09-08T21:10:06 [repacker] get repacker fuzzer working. Additionally add helper method that allows a graph to be saved as a fuzzer seed.
Garret Rieger 261a605f 2022-09-07T22:43:06 [repacker] verify graph is a dag before using the fuzzer input.
Garret Rieger 985b19f6 2022-09-07T22:21:16 [repacker] begin implementing a fuzzer for the repacker api.
Behdad Esfahbod 8805a866 2022-11-30T17:15:00 [ClassDef2] Write a few loops as range-based for
Behdad Esfahbod ac8b232a 2022-11-30T16:42:15 [gsub] Cache intersects_class results for closure Benchmark Time CPU Time Old Time New CPU Old CPU New ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- BM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/nohinting/10 +0.0246 +0.0240 0 0 0 0 BM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/nohinting/64 -0.5541 -0.5544 4 2 4 2 BM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/nohinting/512 -0.1120 -0.1123 43 38 43 38 BM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/nohinting/1400 -0.1154 -0.1159 43 38 43 38
Behdad Esfahbod 20a0a467 2022-11-30T15:59:54 [perf] Remove stale run.sh
Behdad Esfahbod 38e7bc34 2022-11-30T15:01:38 [benchmark-subset] Support testing arbitrary fonts from cmdline
Behdad Esfahbod c6a4b601 2022-11-30T14:09:59 [gsubgpos] Add an unlikely
Behdad Esfahbod d4dec54c 2022-11-30T13:51:14 [ci] Switch configs build to Ubuntu 20.04 https://github.com/actions/runner-images/issues/6002
Behdad Esfahbod 52d8346d 2022-11-30T13:50:16 [ci] Change Linux runner to Ubuntu 20.04 https://github.com/actions/runner-images/issues/6002
Behdad Esfahbod 32dd9810 2022-11-30T13:15:58 [subset-cff1] Cache glyph-to-sid-map in the accelerator Benchmark Time CPU Time Old Time New CPU Old CPU New --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/10 -0.0841 -0.0843 0 0 0 0 BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/64 -0.1305 -0.1305 0 0 0 0 BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/512 -0.1398 -0.1401 1 1 1 1 BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/4096 +0.0382 +0.0380 9 9 9 9 BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/10000 +0.0213 +0.0211 11 11 11 11
Behdad Esfahbod 72fabef0 2022-11-30T11:37:49 [SingleSubstFormat2] Speed up closure
Behdad Esfahbod 2dc2e016 2022-11-30T11:25:50 [cff] Enable an unlikely
Behdad Esfahbod 582a87ef 2022-11-30T11:20:19 [cff] Speed up FDSelect0 sanitize
Garret Rieger 2658370f 2022-11-30T00:19:10 [subset] make the cmap cache in accelerator const.
Garret Rieger 7551a668 2022-11-30T00:04:16 [subset] Make cff_accelerator const. This gives more confidence that it won't be accidentally modified by the subset operation using it.
Behdad Esfahbod d8d0e066 2022-11-29T21:35:54 [array] Comment
Behdad Esfahbod 2fecf2aa 2022-11-29T21:25:01 [ClassDef] Minor rename
Behdad Esfahbod 8f632ca8 2022-11-29T21:23:35 [ClassDef] Write another loop as range for
Behdad Esfahbod 87b12aee 2022-11-29T21:18:48 [ClassDef] Write a couple loops as range for
Behdad Esfahbod ccd40c84 2022-11-29T21:14:44 [ClassDef] Optimize intersected_class_glyphs
Behdad Esfahbod 44c585a6 2022-11-29T20:51:58 [ClassDef] Fix disabled codeblock
Behdad Esfahbod 9b7617d4 2022-11-29T20:29:58 [ClassDef2] Use a faster algorithm in subset() Speedup across the board; up to 40% for MPlus1 at small sizes.
Behdad Esfahbod ae5e6d56 2022-11-29T15:48:38 [ClassDef2] Micro-optimize
Behdad Esfahbod 7129b794 2022-11-29T15:33:07 [open-type] Add faster range-based loop to array types
Behdad Esfahbod dc823340 2022-11-29T15:26:55 Remove a couple of unneeded .iter() invocations
Behdad Esfahbod 00f2657b 2022-11-29T13:49:15 [subset] Accelerate sanitize-table-cache Big wins all across small subsets BM_subset/subset_codepoints/Roboto-Regular.ttf/nohinting/10                              -0.1140         -0.1129             0             0             0             0 BM_subset/subset_codepoints/Amiri-Regular.ttf/nohinting/10                               -0.4717         -0.4714             0             0             0             0 BM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/nohinting/10                    -0.8147         -0.8146             0             0             0             0 BM_subset/subset_codepoints/NotoSansDevanagari-Regular.ttf/nohinting/10                  -0.3248         -0.3242             0             0             0             0 BM_subset/subset_codepoints/Mplus1p-Regular.ttf/nohinting/10                             -0.1262         -0.1260             0             0             0             0 BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/10                -0.0308         -0.0309             0             0             0             0 BM_subset/subset_codepoints/SourceSansPro-Regular.otf/nohinting/10                       -0.1374         -0.1373             0             0             0             0 BM_subset/subset_codepoints/AdobeVFPrototype.otf/nohinting/10                            -0.4555         -0.4555             0             0             0             0 BM_subset/subset_codepoints/MPLUS1-Variable.ttf/nohinting/10                             -0.4175         -0.4174             0             0             0             0 BM_subset/subset_codepoints/RobotoFlex-Variable.ttf/nohinting/10                         -0.4214         -0.4214             0             0             0
Behdad Esfahbod 33165f48 2022-11-29T15:14:15 [bit-page] Remove ELT_BITS_LOG_2 My compiler is smart enough to take care of it.
Satadru Pramanik 58925ed9 2022-11-29T13:14:10 Update freetype subproject to 2.12.1
Christoph Reiter 80dd7515 2022-11-29T19:15:31 CI: work around flaky 64bit MSYS2 builds MSYS2 Python+meson has some random crashes in CI which we haven't been able to reproduce yet. Naturally enabling debugging fixes them.. :)
Christoph Reiter 8f41b6a1 2022-11-29T18:29:46 CI: fix msvc build The Windows image for some reason now contains a zlib and freetype build which meson finds and tries to use. Force meson to use the subprojects always to avoid picking up system libs.
Garret Rieger 7a004a7a 2022-11-29T00:47:55 [subset] Cache per subtable cmap unicode mappings.
Behdad Esfahbod d2a2670e 2022-11-28T19:42:27 [iter] Simplify has() interface implementations
Behdad Esfahbod cba82829 2022-11-28T16:19:54 [subset-cff1] Share subrs object Multiple FDs might share the same subrs...
Behdad Esfahbod c7b998b3 2022-11-28T16:18:21 [cff2] Don't share fd-array link No point.
Behdad Esfahbod 3d9e3c2d 2022-11-28T16:17:09 [subset-cff2] Don't share varstore object
Behdad Esfahbod c503cf00 2022-11-28T15:53:35 [cmap] Store offset, not pointer, in cmap cache
Behdad Esfahbod 3e151139 2022-11-28T14:23:49 [PairPos] Optimize get_effective_value_format Speeds up BM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/nohinting/512 12%.
Behdad Esfahbod 3131aecf 2022-11-28T14:12:55 [array/hash] Fix asan issue ../src/hb-algs.hh:240:43: runtime error: reference binding to misaligned address 0x7ffe91a08b0e for type 'const unsigned int', which requires 4 byte alignment
Behdad Esfahbod 26ad7a60 2022-11-28T14:09:21 [gpos] Minor micro-optimize
Behdad Esfahbod c769d7e1 2022-11-28T14:03:58 [gpos] Whitespace
Behdad Esfahbod 3ea0f37c 2022-11-28T13:58:44 [subset-cff] Move an init to constructor The init was not called anyway.
Behdad Esfahbod 6c92c3e0 2022-11-28T13:54:24 [subset-cff] Remove unnecessary check
Behdad Esfahbod 7fd300dd 2022-11-28T13:51:16 [subset-cff] Use constructor for parsed_cs_op_t
Garret Rieger bd37900e 2022-11-28T20:35:34 [subset] use a reference to cached global/loca subrs. Previously they were being copied in. Copying is no longer necessary now that hint dropping doesn't mutate the arrays.
Behdad Esfahbod ded9de9c 2022-11-28T13:31:40 [cff] bsearch in fdselect Saves 8% in NotoSansCJK / 10000 subset benchmark.
Behdad Esfahbod 0c33aba3 2022-11-28T12:28:13 [subset-cff] Rename drop flag to hinting flag
Behdad Esfahbod 6f5b5319 2022-11-28T11:39:24 [subset-cff] Make no-hinting use accelerator as well
Behdad Esfahbod fad8322b 2022-11-27T15:09:48 [benchmark-subset] Add no-hinting ops
Behdad Esfahbod f51a624e 2022-11-27T14:54:39 [subset-cff] Micro-optimize drop_hints_in_str
Behdad Esfahbod 38603266 2022-11-27T13:23:13 [subset-cff] Write loop more idiomatic
Behdad Esfahbod 3ff502d3 2022-11-27T12:58:04 [subset-cff] Remove unnecessary initialization
Behdad Esfahbod 6af4985b 2022-11-26T18:20:20 [subset-cff] No need for bitflag here anymore