|
72881234
|
2023-07-08T14:14:27
|
|
Allow overriding HB_ALWAYS_INLINE
|
|
9fea19eb
|
2023-07-08T13:56:24
|
|
[shape] Another always-inline
|
|
5b45c56c
|
2023-07-08T13:47:41
|
|
[shape] Always-inline more
Another 10% speedup in BM_Shape Gulzar-Regular.
|
|
bb9692e8
|
2023-07-08T13:45:48
|
|
[shape] Always-inline match_input
10% speedup in BM_Shape Gulzar-Regular.
|
|
6c451054
|
2023-07-08T12:55:34
|
|
[sanitize] Sprinkle a few unlikely's
|
|
4ecc62c2
|
2023-07-08T12:53:23
|
|
[sanitize] Simplify ChainRule::sanitize again
check_struct does the same now.
|
|
253ec08b
|
2023-07-08T12:48:05
|
|
[sanitize] Speed up check_struct on x64
|
|
fb02f4a8
|
2023-07-08T12:29:18
|
|
[sanitize] Micro-optimize ChainRule::sanitize
|
|
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
|
|
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.
|
|
0b879afb
|
2023-07-07T22:35:43
|
|
[sanitize] Inline Coverage::sanitize
|
|
92448910
|
2023-07-07T22:16:24
|
|
[sanitize] Minor inline a few more short functions
|
|
d8450420
|
2023-07-07T21:56:17
|
|
[sanitize] Optimize away an overflow check when not needed
When the length argument is 16bit...
|
|
e4856cf8
|
2023-07-07T21:21:33
|
|
[sanitize] Only check trailing edge of ranges
Assumptions...
Speeds up Gulzar load_face_and_shape benchmark by 7%.
|
|
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.
|
|
c24ea103
|
2023-07-07T20:43:20
|
|
[sanitize] Minor tweak to len=0 case which is handled otherwise anyway
|
|
403bc7ca
|
2023-07-07T20:17:32
|
|
[sanitize] Simplify Rule::sanitize()
|
|
385896ff
|
2023-07-07T19:56:19
|
|
[sanitize] Speed up ChainRule::sanitize()
10% speedup in sanitizing Gulzar-Regular.
|
|
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...
|
|
7a85663c
|
2023-07-07T19:21:18
|
|
Revert "[sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size"
This reverts commit 10f8556c73f3cf231c6b5a900a6a1903f9516f90.
This was, unfortunately, wrong :(.
|
|
f2a3680f
|
2023-07-07T19:21:03
|
|
Revert "[gsubgpos] Limit (Chain)ContextFormat3 for consistency"
This reverts commit 90b48917dadbef51bc5e90904d0f81e81199b9e2.
|
|
90b48917
|
2023-07-07T18:50:01
|
|
[gsubgpos] Limit (Chain)ContextFormat3 for consistency
|
|
10f8556c
|
2023-07-07T17:07:11
|
|
[sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size
|
|
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...
|
|
90752cd5
|
2023-07-07T15:47:28
|
|
[type] Add HeadlessArray16Of
|
|
59abcda2
|
2023-07-07T14:27:18
|
|
[sanitize] Add an ALWAYS_INLINE
Looks like it was always inlined anyway.
|
|
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
|
|
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
|
|
de2c1073
|
2023-07-02T16:44:48
|
|
[ot-map] Speed up for default shaper
Sort late, the reduced number of features.
|
|
8156c5a6
|
2023-07-02T16:35:32
|
|
[ot-map] Minor micro-optimize
|
|
5ac9eaa0
|
2023-07-02T16:18:08
|
|
[sanitize] Minor micro-optimize
|
|
e8948d63
|
2023-07-02T15:35:18
|
|
[set-digest] Micro-optimize more
|
|
cb73ba71
|
2023-07-02T15:27:26
|
|
[set-digest] Fixup for previous commit
|
|
918ad892
|
2023-07-02T14:54:24
|
|
[set-digest] Early terminate add_range() if we're full
|
|
bb33675e
|
2023-07-02T14:11:40
|
|
[sanitize] Micro-optimize check_range()
|
|
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.
|
|
ec943866
|
2023-07-02T13:29:53
|
|
[OffsetTo] Micro-optimize away a check
|
|
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
|
|
46e54a23
|
2023-07-02T13:03:16
|
|
[GPOS] Remove extra check
|
|
7f5380fe
|
2023-07-02T12:19:22
|
|
[Composite] Don't apply transformation if phantom_only
|
|
0cf759b0
|
2023-07-02T12:15:43
|
|
[Glyph] Don't shift anchored Composite if phantom_only
Fixes https://oss-fuzz.com/testcase-detail/5114131137822720
|
|
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.
|
|
e92eefaa
|
2023-07-02T11:35:51
|
|
[gvar] Cache two values in shared_tuple_active_idx
Speeds up varc-hangul.ttf draw_glyph by 10%.
|
|
2d6091fc
|
2023-06-30T11:48:56
|
|
[GPOS] Make AnchorMatrix sanitize lazy again
Was reverted in the previous commit, because it was incomplete.
|
|
0887382c
|
2023-06-30T11:39:46
|
|
[GPOS] Fix sanitize
|
|
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
|
|
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
|
|
7a356682
|
2023-06-30T10:50:25
|
|
Minor variable fix
|
|
d338506c
|
2023-06-30T10:13:05
|
|
[GPOS] Reuse sanitize_values_stride_unsafe in another function
|
|
794fac32
|
2023-06-29T20:55:52
|
|
[glyf] Minor another range for loop
|
|
0ae16766
|
2023-06-29T20:38:42
|
|
[CompositeGlyph] Minor use a range for loop
|
|
05c01ad5
|
2023-06-29T16:49:20
|
|
[SimpleGlyph] Minor use a range for loop
|
|
4123e0c7
|
2023-06-29T16:27:35
|
|
[path-builder] Speed up mid-point calculation
|
|
73376b24
|
2023-06-29T16:14:45
|
|
[subset/cff1] More error handling
|
|
cc44b3bc
|
2023-06-29T16:12:10
|
|
[subset/cff1] Handle an error condition
Fixes https://oss-fuzz.com/testcase-detail/5191907895279616
|
|
fc38c01a
|
2023-06-29T15:29:15
|
|
Minor inline a function
|
|
a520177e
|
2023-06-29T14:56:05
|
|
[gvar] Remove unnecessary initialization
|
|
ca44c38c
|
2023-06-29T14:41:21
|
|
Add HB_ALWAYS_INLINE
With MSVC implementation as well.
|
|
0a00dc0c
|
2023-06-29T14:17:47
|
|
[draw] Add a few unlikely's
|
|
2d9c3da0
|
2023-06-29T13:31:11
|
|
[draw] Inline more functions
|
|
d26b3ade
|
2023-06-29T13:25:52
|
|
[draw-session] Inline small functions
|
|
7aba1e6d
|
2023-06-29T12:44:34
|
|
[cache] Minor use a range for loop
|
|
afae537c
|
2023-06-29T12:42:44
|
|
[cache] Minor remove .init()
Use constructor.
|
|
c49ca371
|
2023-06-29T12:38:45
|
|
[Glyph] Minor micro-optimize away a function call
For when coords are not set.
|
|
5fb7b02a
|
2023-06-29T12:28:43
|
|
[CompositeGlyph] Minor use range loop
|
|
20b32b04
|
2023-06-29T12:08:11
|
|
[SimpleGlyph] Micro-optimize phantom_only
|
|
d1660eaf
|
2023-06-29T11:59:03
|
|
[subset/cff] Minor use HB_OPTIMIZE_SIZE_VAL
|
|
04809ede
|
2023-06-29T11:58:53
|
|
[CompositeGlyph] Micro-optimize translate()
|
|
229db973
|
2023-06-29T11:54:10
|
|
[CompositeGlyph] Minor use vector::push()
|
|
75101802
|
2023-06-29T10:54:49
|
|
[CompositeGlyph] Micro-optimize
|
|
e9d74d6b
|
2023-06-29T10:53:52
|
|
[SimpleGlyph] Minor add an unlikely to error condition
|
|
6abca413
|
2023-06-29T10:39:49
|
|
[path-builder] Micro-optimize
No need to initialize these when has_data=false.
|
|
5703c1c4
|
2023-06-29T10:35:23
|
|
[path-builder] Add a couple of unlikely's
|
|
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.
|
|
e42d6df5
|
2023-06-28T14:25:11
|
|
[glyf] Minor refactor a couple of lines and micro-optimize
|
|
c31471d1
|
2023-06-28T13:51:54
|
|
[glyf] Micro-optimize
|
|
83d75d5e
|
2023-06-28T13:35:24
|
|
[glyf] always_inline consume_point
7% speedup in:
BM_Font/draw_glyph/Roboto-Regular.ttf/hb
|
|
8795cced
|
2023-06-28T13:29:29
|
|
Revert "[SimpleGlyph] Avoid branches in read_points"
This reverts commit ba062c713e469f91f57f3c85990f721789ec7c2a.
|
|
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.
|
|
62f5ed46
|
2023-06-28T12:02:52
|
|
[subset/cff] Fix an infinite loop
Fixes https://oss-fuzz.com/testcase-detail/5419002026131456
|
|
10b9ca54
|
2023-06-28T07:46:33
|
|
Fix typo: subtitution -> substitution
|
|
73a82af1
|
2023-06-27T17:05:22
|
|
[subset/cff] Remove stale wrong code
With my recent rewrite of serialize_header, this seems to
work now.
|
|
158eba66
|
2023-06-27T16:22:54
|
|
[subset/cff] Fix compiler error
About variable with internal linkage with no definition.
|
|
b0472199
|
2023-06-27T16:07:54
|
|
[subset/cff1] Micro-optimize code
Let compiler see whether optional argument is present.
|
|
1cabb65b
|
2023-06-27T16:01:17
|
|
[subset/cff] Micro-optimize CFFIndex::serialize_header
Unfortunately hb_array_t::begin/end are faster than its _begin/_end.
As such, a range loop on array itself is faster than range loop on
pipeline starting with array. Rework code to loop on the array always.
|
|
dfaf9cd5
|
2023-06-27T14:56:32
|
|
[subset/cff1] Minor optimize
|
|
585c8426
|
2023-06-27T11:28:38
|
|
[subset/cff1] Minor micro-optimize
|
|
00904503
|
2023-06-27T08:18:18
|
|
[config] Graduate avar2 from boring-expansion
|
|
3edd6cdc
|
2023-06-27T06:56:00
|
|
[vector] Minor micro-optimize shrink_vector
The compiler seems to understand this pattern better.
|
|
aed21563
|
2023-06-26T22:51:50
|
|
[subset/cff1] Micro-optimize
|
|
40a1c08f
|
2023-06-26T19:03:04
|
|
[subset/cff1] Micro-optimize
|
|
bd3e7877
|
2023-06-26T18:55:39
|
|
[subset/cff1] Reuse a function
|
|
ffd23d3a
|
2023-06-26T18:54:06
|
|
[subset/cff1] Micro-optimize Charset serialization
|
|
452557cd
|
2023-06-26T18:40:54
|
|
Replace a free with hb_free
Ouch.
|
|
1fc128f6
|
2023-06-26T18:34:27
|
|
Replace a few memset/memcpy's with hb_ equivalents
|
|
2c359635
|
2023-06-26T18:28:11
|
|
[face-builder] Don't zero allocation
We overwrite it.
|
|
347b9448
|
2023-06-26T18:09:40
|
|
[null] Fix getting Crap(hb_bytes_t)
Fixes https://oss-fuzz.com/testcase-detail/6187272924692480
|
|
49c52fa9
|
2023-06-26T17:55:29
|
|
[cmap] Don't zero a few allocations unnecessarily
|
|
e4b2d9c3
|
2023-06-26T17:52:37
|
|
[pool] Don't clear unused memory
|