Log

Author Commit Date CI Message
Behdad Esfahbod d84c5f29 2023-07-08T15:22:51 Revert "[gsubgpos] Make (Chain)Context funcs templatized" This reverts commit 03ac08d267eb7ad2f1ac039115fc0030ea475fae.
Behdad Esfahbod e73223b9 2023-07-08T15:22:18 [gsubgpos] Make (Chain)Context funcs templatized Unfortunately they still won't be inlined because the matcher_t needs function pointers. So, no speed up. Going to revert.
Behdad Esfahbod 3e3820ba 2023-07-08T14:36:23 Simplify a few bool returns Unnecessary. Cast to bool does the job.
Behdad Esfahbod 1c8d54de 2023-07-08T14:28:07 [shape] Another always-inline
Behdad Esfahbod df45067f 2023-07-08T14:22:59 [shape] More always-inline
Behdad Esfahbod c3a28be5 2023-07-08T14:20:45 [shape] One more always-inline
Behdad Esfahbod 72881234 2023-07-08T14:14:27 Allow overriding HB_ALWAYS_INLINE
Behdad Esfahbod 9fea19eb 2023-07-08T13:56:24 [shape] Another always-inline
Behdad Esfahbod 5b45c56c 2023-07-08T13:47:41 [shape] Always-inline more Another 10% speedup in BM_Shape Gulzar-Regular.
Behdad Esfahbod bb9692e8 2023-07-08T13:45:48 [shape] Always-inline match_input 10% speedup in BM_Shape Gulzar-Regular.
Behdad Esfahbod 6c451054 2023-07-08T12:55:34 [sanitize] Sprinkle a few unlikely's
Behdad Esfahbod 4ecc62c2 2023-07-08T12:53:23 [sanitize] Simplify ChainRule::sanitize again check_struct does the same now.
Behdad Esfahbod 253ec08b 2023-07-08T12:48:05 [sanitize] Speed up check_struct on x64
Behdad Esfahbod fb02f4a8 2023-07-08T12:29:18 [sanitize] Micro-optimize ChainRule::sanitize
Khaled Hosny c650858c 2023-07-08T13:57:05 [graphite] Fix cluster advance width Based on https://github.com/harfbuzz/harfbuzz/issues/4309#issuecomment-1624730406 Fixes https://github.com/harfbuzz/harfbuzz/issues/4309
Behdad Esfahbod 73ee9c34 2023-07-07T22:47:20 Revert "[sanitize] Only check trailing edge of ranges" This reverts commit e4856cf8098b9741a910e7f7979096cf11d8fead. This is wrong on at least 32-bit systems. Might add a condition version later.
Behdad Esfahbod 0b879afb 2023-07-07T22:35:43 [sanitize] Inline Coverage::sanitize
Behdad Esfahbod 92448910 2023-07-07T22:16:24 [sanitize] Minor inline a few more short functions
Behdad Esfahbod d8450420 2023-07-07T21:56:17 [sanitize] Optimize away an overflow check when not needed When the length argument is 16bit...
Behdad Esfahbod e4856cf8 2023-07-07T21:21:33 [sanitize] Only check trailing edge of ranges Assumptions... Speeds up Gulzar load_face_and_shape benchmark by 7%.
Behdad Esfahbod 6a683ea6 2023-07-07T21:02:15 [sanitize] Enlighten check_range() some more No need to check for len=0 arrays. They must still be in range.
Behdad Esfahbod c24ea103 2023-07-07T20:43:20 [sanitize] Minor tweak to len=0 case which is handled otherwise anyway
Behdad Esfahbod 403bc7ca 2023-07-07T20:17:32 [sanitize] Simplify Rule::sanitize()
Behdad Esfahbod 385896ff 2023-07-07T19:56:19 [sanitize] Speed up ChainRule::sanitize() 10% speedup in sanitizing Gulzar-Regular.
Behdad Esfahbod 2006d321 2023-07-07T17:07:11 [sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size Unfortunately this doesn't speed up NotoNastaliq or Gulzar as I was hoping for. Their GSUB tables are not large enough for this to kick in...
Behdad Esfahbod 7a85663c 2023-07-07T19:21:18 Revert "[sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size" This reverts commit 10f8556c73f3cf231c6b5a900a6a1903f9516f90. This was, unfortunately, wrong :(.
Behdad Esfahbod f2a3680f 2023-07-07T19:21:03 Revert "[gsubgpos] Limit (Chain)ContextFormat3 for consistency" This reverts commit 90b48917dadbef51bc5e90904d0f81e81199b9e2.
Behdad Esfahbod 90b48917 2023-07-07T18:50:01 [gsubgpos] Limit (Chain)ContextFormat3 for consistency
Behdad Esfahbod 3b02f694 2023-07-07T18:39:28 [sanitize/GSUBGPOS] Limit max-size of a few offset arrays This significantly speeds up Gulzar-Regular sanitize, by 40%.
Behdad Esfahbod 10f8556c 2023-07-07T17:07:11 [sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size
Behdad Esfahbod 68b78914 2023-07-07T17:07:11 [sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size Unfortunately this doesn't speed up NotoNastaliq or Gulzar as I was hoping for. Their GSUB tables are not large enough for this to kick in...
Behdad Esfahbod 90752cd5 2023-07-07T15:47:28 [type] Add HeadlessArray16Of
Behdad Esfahbod 59abcda2 2023-07-07T14:27:18 [sanitize] Add an ALWAYS_INLINE Looks like it was always inlined anyway.
Behdad Esfahbod 45a17212 2023-07-06T16:06:50 [ot-font] Prefer CFF2 over CFF1
أحمد المحمودي 43d0aff6 2023-07-04T09:22:53 [introspection] Pass both libharfbuzz_gobject & libharfbuzz as positional parameters Fixes #4304
Behdad Esfahbod 25297408 2023-07-03T10:34:26 [COLR] Fix PaintComposite sanitize timeout Was timing out after recent sanitize() change. Fixes https://oss-fuzz.com/testcase-detail/5692635449524224
dependabot[bot] a8c655e6 2023-07-03T10:17:36 Bump actions/checkout from 3.5.1 to 3.5.3 Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.1 to 3.5.3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3.5.1...c85c95e3d7251135ab7dc9ce3241c5835cc595a9) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Behdad Esfahbod de2c1073 2023-07-02T16:44:48 [ot-map] Speed up for default shaper Sort late, the reduced number of features.
Behdad Esfahbod 8156c5a6 2023-07-02T16:35:32 [ot-map] Minor micro-optimize
Behdad Esfahbod 5ac9eaa0 2023-07-02T16:18:08 [sanitize] Minor micro-optimize
Behdad Esfahbod e8948d63 2023-07-02T15:35:18 [set-digest] Micro-optimize more
Behdad Esfahbod cb73ba71 2023-07-02T15:27:26 [set-digest] Fixup for previous commit
Behdad Esfahbod 918ad892 2023-07-02T14:54:24 [set-digest] Early terminate add_range() if we're full
Behdad Esfahbod bb33675e 2023-07-02T14:11:40 [sanitize] Micro-optimize check_range()
Behdad Esfahbod d1c82a1c 2023-07-02T13:38:22 [sanitize] Speed up check_struct() Don't account for length here. Should not be a problem. Fingers crossed fuzzers. 18% speed up in load_face_and_shape Gulzar-Regular.
Behdad Esfahbod ec943866 2023-07-02T13:29:53 [OffsetTo] Micro-optimize away a check
Behdad Esfahbod eae82788 2023-07-02T13:07:26 [GPOS] Micro-optimize lazy_some_gpos check Speeds up 11% in: BM_Font/load_face_and_shape/Roboto-Regular.ttf/hb
Behdad Esfahbod 46e54a23 2023-07-02T13:03:16 [GPOS] Remove extra check
Behdad Esfahbod 13438da1 2023-07-02T12:56:13 [benchmark-font] Minor move a variable
Behdad Esfahbod 7f5380fe 2023-07-02T12:19:22 [Composite] Don't apply transformation if phantom_only
Behdad Esfahbod 0cf759b0 2023-07-02T12:15:43 [Glyph] Don't shift anchored Composite if phantom_only Fixes https://oss-fuzz.com/testcase-detail/5114131137822720
Behdad Esfahbod 645bde47 2023-07-02T12:07:22 [Glyph] Pass phantom-only to gvar only for SIMPLE glyphs For Composites we need to get the translation offset deltas.
Behdad Esfahbod e92eefaa 2023-07-02T11:35:51 [gvar] Cache two values in shared_tuple_active_idx Speeds up varc-hangul.ttf draw_glyph by 10%.
Behdad Esfahbod 7d72fdd5 2023-07-02T09:55:37 [benchmark-font] Do some work in draw_glyph callbacks For no good reason other than matching what I'm adding to skrifa benchmark. Doesn't seem to affect benchmarks whatsoever.
Behdad Esfahbod 47b5ee67 2023-07-01T14:48:39 Merge pull request #4306 from harfbuzz/gpos-lazy-device GPOS lazy Device
Behdad Esfahbod 2d6091fc 2023-06-30T11:48:56 [GPOS] Make AnchorMatrix sanitize lazy again Was reverted in the previous commit, because it was incomplete.
Behdad Esfahbod 0887382c 2023-06-30T11:39:46 [GPOS] Fix sanitize
Behdad Esfahbod 83eb744e 2023-06-30T11:33:39 [sanizie] Inline check_range if not OPTIMIZE_SIZE BM_Font/load_face_and_shape/NotoNastaliqUrdu-Regular.ttf/hb -0.1046 -0.1051 194 173 193 172 BM_Font/load_face_and_shape/NotoSerifMyanmar-Regular.otf/hb -0.2401 -0.2412 36 27 36 27
Behdad Esfahbod 690af7aa 2023-06-30T10:36:01 [GPOS] Sanitize Device tables lazily This speeds up face loading for variable fonts by 80%! Comparing before to after Benchmark Time CPU Time Old Time New CPU Old CPU New --------------------------------------------------------------------------------------------------------------------------------------------------------------- BM_Font/load_face_and_shape/Roboto-Regular.ttf/hb -0.0368 -0.0366 20 20 20 19 BM_Font/load_face_and_shape/RobotoFlex-Variable.ttf/hb -0.7149 -0.7162 77 22 77 22 BM_Font/load_face_and_shape/RobotoFlex-Variable.ttf/var/hb -0.7241 -0.7255 80 22 79 22 BM_Font/load_face_and_shape/SourceSansPro-Regular.otf/hb -0.1441 -0.1445 28 24 28 24 BM_Font/load_face_and_shape/AdobeVFPrototype.otf/hb -0.7893 -0.7910 66 14 66 14 BM_Font/load_face_and_shape/AdobeVFPrototype.otf/var/hb -0.7865 -0.7882 67 14 66 14 BM_Font/load_face_and_shape/SourceSerifVariable-Roman.ttf/hb -0.8895 -0.8900 227 25 226 25 BM_Font/load_face_and_shape/SourceSerifVariable-Roman.ttf/var/hb -0.8895 -0.8900 226 25 225 25 BM_Font/load_face_and_shape/Comfortaa-Regular-new.ttf/hb -0.5512 -0.5531 42 19 42 19 BM_Font/load_face_and_shape/NotoNastaliqUrdu-Regular.ttf/hb -0.1511 -0.1510 227 192 225 191 BM_Font/load_face_and_shape/NotoSerifMyanmar-Regular.otf/hb -0.1494 -0.1498 41 35 40 34 OVERALL_GEOMEAN -0.6443 -0.6456 0 0 0 0
Behdad Esfahbod 7a356682 2023-06-30T10:50:25 Minor variable fix
Behdad Esfahbod d338506c 2023-06-30T10:13:05 [GPOS] Reuse sanitize_values_stride_unsafe in another function
Behdad Esfahbod 0fceaef0 2023-06-30T08:50:49 [benchmark-subset] Report in microseconds, not milli We're in that range now. :)
Behdad Esfahbod 547dc1a4 2023-06-30T08:48:43 [benchmark-font] Add load_face_and_shape benchmark To measure face-loading performance
Behdad Esfahbod fcf70af1 2023-06-30T08:43:10 [perf] Fix break
Behdad Esfahbod 794fac32 2023-06-29T20:55:52 [glyf] Minor another range for loop
Behdad Esfahbod 0ae16766 2023-06-29T20:38:42 [CompositeGlyph] Minor use a range for loop
Behdad Esfahbod 05c01ad5 2023-06-29T16:49:20 [SimpleGlyph] Minor use a range for loop
Behdad Esfahbod 4123e0c7 2023-06-29T16:27:35 [path-builder] Speed up mid-point calculation
Behdad Esfahbod 73376b24 2023-06-29T16:14:45 [subset/cff1] More error handling
Behdad Esfahbod cc44b3bc 2023-06-29T16:12:10 [subset/cff1] Handle an error condition Fixes https://oss-fuzz.com/testcase-detail/5191907895279616
Behdad Esfahbod fc38c01a 2023-06-29T15:29:15 Minor inline a function
Behdad Esfahbod a520177e 2023-06-29T14:56:05 [gvar] Remove unnecessary initialization
Behdad Esfahbod ca44c38c 2023-06-29T14:41:21 Add HB_ALWAYS_INLINE With MSVC implementation as well.
Behdad Esfahbod 0a00dc0c 2023-06-29T14:17:47 [draw] Add a few unlikely's
Behdad Esfahbod 2d9c3da0 2023-06-29T13:31:11 [draw] Inline more functions
Behdad Esfahbod 17f29c81 2023-06-29T13:27:09 [benchmark_font/draw_glyphs] Implement quadratic_to Not interested in the fallback implementation here.
Behdad Esfahbod d26b3ade 2023-06-29T13:25:52 [draw-session] Inline small functions
Behdad Esfahbod 7aba1e6d 2023-06-29T12:44:34 [cache] Minor use a range for loop
Behdad Esfahbod afae537c 2023-06-29T12:42:44 [cache] Minor remove .init() Use constructor.
Behdad Esfahbod c49ca371 2023-06-29T12:38:45 [Glyph] Minor micro-optimize away a function call For when coords are not set.
Behdad Esfahbod 5fb7b02a 2023-06-29T12:28:43 [CompositeGlyph] Minor use range loop
Behdad Esfahbod 20b32b04 2023-06-29T12:08:11 [SimpleGlyph] Micro-optimize phantom_only
Behdad Esfahbod d1660eaf 2023-06-29T11:59:03 [subset/cff] Minor use HB_OPTIMIZE_SIZE_VAL
Behdad Esfahbod 04809ede 2023-06-29T11:58:53 [CompositeGlyph] Micro-optimize translate()
Behdad Esfahbod 229db973 2023-06-29T11:54:10 [CompositeGlyph] Minor use vector::push()
Behdad Esfahbod 75101802 2023-06-29T10:54:49 [CompositeGlyph] Micro-optimize
Behdad Esfahbod e9d74d6b 2023-06-29T10:53:52 [SimpleGlyph] Minor add an unlikely to error condition
Behdad Esfahbod 6abca413 2023-06-29T10:39:49 [path-builder] Micro-optimize No need to initialize these when has_data=false.
Behdad Esfahbod 5703c1c4 2023-06-29T10:35:23 [path-builder] Add a couple of unlikely's
Behdad Esfahbod f5eead04 2023-06-28T15:07:15 [glyf/gvar] Optimize getting variable phantom points Used when there's no HVAR table and get_h_advance(). I see some 10% speedup with a SourceSerifVariable-Roman with the HVAR table removed.
Behdad Esfahbod e42d6df5 2023-06-28T14:25:11 [glyf] Minor refactor a couple of lines and micro-optimize
Behdad Esfahbod c31471d1 2023-06-28T13:51:54 [glyf] Micro-optimize
Behdad Esfahbod 83d75d5e 2023-06-28T13:35:24 [glyf] always_inline consume_point 7% speedup in: BM_Font/draw_glyph/Roboto-Regular.ttf/hb
Behdad Esfahbod 8795cced 2023-06-28T13:29:29 Revert "[SimpleGlyph] Avoid branches in read_points" This reverts commit ba062c713e469f91f57f3c85990f721789ec7c2a.
Behdad Esfahbod ba062c71 2023-06-28T13:24:37 [SimpleGlyph] Avoid branches in read_points Calculate total bytes in read_flags and bounds-check once. This slows things down apparently, so going to revert.
Behdad Esfahbod 62f5ed46 2023-06-28T12:02:52 [subset/cff] Fix an infinite loop Fixes https://oss-fuzz.com/testcase-detail/5419002026131456
Chun-wei Fan 87b57361 2023-06-28T15:38:40 README.python.md: Add some notes for Windows Note that the DLLs for HarfBuzz and its deps must be found %PATH% on Windows so that pygobject is able to import and use HarfBuzz in Python scripts. Also note that for Visual Studio builds, it is recommended that Visual Studio 2019 or later is used for the build, possibly in regards with how the preprocessor handles C++ code when running g-ir-scanner.
أحمد المحمودي (Ahmed El-Mahmoudy) 10b9ca54 2023-06-28T07:46:33 Fix typo: subtitution -> substitution
Behdad Esfahbod 73a82af1 2023-06-27T17:05:22 [subset/cff] Remove stale wrong code With my recent rewrite of serialize_header, this seems to work now.
Behdad Esfahbod 158eba66 2023-06-27T16:22:54 [subset/cff] Fix compiler error About variable with internal linkage with no definition.