|
ff3cac0c
|
2022-11-23T23:50:49
|
|
[subset] Fix unecessary trailing 0 bytes left by ContextFormat2 pruning.
Uneeded rules where beind removed from the count by the bytes for them was being left in the font.
|
|
51028e63
|
2022-11-23T22:51:16
|
|
[subset] Retain all glyphs in preprocessed face.
|
|
4c49daf7
|
2022-11-23T22:33:57
|
|
[subset] actually use the preprocessed face in hb-subset.
Tests weren't actually using the preprocessed face due to this typo in util/hb-subset.
|
|
2c0afde7
|
2022-11-23T20:24:40
|
|
[subset] add an inprogress accelerator to plan.
This allows subset code to cache information into the accelerator during preprocess subset. Previously the accelerator was created at the end of subsetting.
|
|
81640fdf
|
2022-11-23T20:22:36
|
|
[subset] fix leaked font in glyf::subset(...)
|
|
a23f8204
|
2022-11-23T12:56:13
|
|
[subset-cff] Micro-optimize array access
|
|
1e8f1ac6
|
2022-11-23T12:28:29
|
|
[subset-glyf] Micro-optimize array access
|
|
356d135e
|
2022-11-23T12:20:51
|
|
[subset-glyf] Reduce roundf calls
Saves 7% on MPLUS1-Variable/6000 benchmark.
|
|
dcce53dd
|
2022-11-23T13:19:38
|
|
[cff] Micro-optimize fetch_op
|
|
0bf7d9eb
|
2022-11-23T13:00:23
|
|
[subset-cff] Micro-optimize encode_byte
|
|
463ae07e
|
2022-11-23T18:41:23
|
|
[subset] In the preprocess subset call always use long loca.
Long loca is needed so that we can store the trimmed glyph bytes to allow us to safely skip trimming in the later subset.
|
|
299ec902
|
2022-11-22T16:03:02
|
|
[glyf] Move instanciation to serialize()
|
|
d8d881f2
|
2022-11-22T15:24:16
|
|
[subset-glyf] Don't create a second glyf accelerator
|
|
75609300
|
2022-11-22T15:22:25
|
|
[glyf] Add _create_font_for_instancing
|
|
40634cee
|
2022-11-22T15:07:16
|
|
[glyf] Adjust data types
|
|
ba0d28ea
|
2022-11-22T15:01:48
|
|
[glyf] Fix font error check
|
|
04c52501
|
2022-11-22T14:54:55
|
|
[glyf] Use a malloc instead of calloc
|
|
024aa818
|
2022-11-22T14:51:42
|
|
[glyf] Micro-optimize encode_coord
|
|
b6694597
|
2022-11-22T14:49:01
|
|
[glyf] Micro-optimize encode_flag()
|
|
d47cfe79
|
2022-11-22T14:45:04
|
|
[glyf] Minor use operator ++
|
|
03e6bde7
|
2022-11-22T14:40:36
|
|
[glyf] Minor adjustment to lastflag handling
No logic change.
|
|
0ca9fda8
|
2022-11-22T14:39:10
|
|
[glyf] Remove misplaced comment
|
|
44be8ef4
|
2022-11-22T14:21:25
|
|
[gvar] Skip degenerate all-untouched delta-sets
|
|
656bb223
|
2022-11-22T14:16:40
|
|
[gvar] Micro-optimize unpack_points
|
|
a3830272
|
2022-11-22T14:15:17
|
|
[gvar] Cosmetic
|
|
be89919a
|
2022-11-22T13:56:20
|
|
[gvar] is_valid() remove a check
I don't know why this check was there, but it doesn't make sense
because that function never returns 0 / false.
|
|
e8ddf107
|
2022-11-22T13:29:32
|
|
[gvar] Optimize a loop
|
|
dd6fcec9
|
2022-11-22T13:27:40
|
|
[gvar] Remove a conditional
|
|
a0231723
|
2022-11-22T13:24:39
|
|
[gvar] Refactor deltas array access
|
|
c34c7769
|
2022-11-22T13:21:01
|
|
[gvar] Don't try IUP if all points are specified
|
|
27c4037e
|
2022-11-22T13:12:22
|
|
[gvar] Micro-optimize boundary-checking
|
|
ab8346fb
|
2022-11-22T13:07:39
|
|
[gvar] Add an unlikely
|
|
1e8a342e
|
2022-11-22T13:02:38
|
|
[gvar] Micro-optimize int types
|
|
4afcdf67
|
2022-11-22T12:56:48
|
|
More hb_memcpy
|
|
58a696d8
|
2022-11-22T12:56:05
|
|
More hb_memset
|
|
59c45f6d
|
2022-11-22T12:54:50
|
|
Use hb_memcpy instead of memcpy consistently
|
|
ac0efaf8
|
2022-11-22T12:50:36
|
|
Use hb_memset instead of memset consistently
|
|
44a892a2
|
2022-11-22T12:48:52
|
|
[shape] Use hb_memcmp instead of memcmp
|
|
c53c6481
|
2022-11-22T12:46:25
|
|
[subset-cff] Another handrolled memcpy
|
|
ae578705
|
2022-11-22T12:23:17
|
|
[array] Write hash as range for loop again
Now that our range loop is faster than our own iter.
|
|
13e1ca9e
|
2022-11-22T12:19:28
|
|
[cff] Micro-optimize memcpy
|
|
2968dd78
|
2022-11-22T11:57:29
|
|
[gvar] Optimize as_array() access
|
|
bb3bb764
|
2022-11-22T11:53:35
|
|
[gvar] Optimize scalar = 1.0 case
|
|
2d098d5d
|
2022-11-22T11:51:04
|
|
[gvar] Use memset
|
|
e630a65e
|
2022-11-22T11:27:05
|
|
[gvar] Micro-optize vector extend
|
|
49d4f621
|
2022-11-22T11:14:56
|
|
[gvar] Micro-optimize
|
|
1758ee66
|
2022-11-22T10:45:49
|
|
[glyf] Minor write loop more idiomatically
|
|
16ec9dcc
|
2022-11-22T10:43:46
|
|
[gvar] Whitespace
|
|
b567ce51
|
2022-11-21T20:08:54
|
|
[subset] Don't trim glyf's again if preprocessed
Speeds up M1/10000 benchmark by 30%!
|
|
72059a47
|
2022-11-22T10:41:37
|
|
[gvar] Optimize IUP alg
|
|
ee9873b5
|
2022-11-22T10:23:17
|
|
[gvar] Disable initializing vectors when not necessary
|
|
b0d26411
|
2022-11-22T10:20:11
|
|
[vector] Add "initialize" argument to resize()
|
|
a2059f8f
|
2022-11-22T10:16:21
|
|
[gvar] Optimize unpack_points
|
|
6d7206b6
|
2022-11-22T10:13:14
|
|
[gvar] Optimize unpack_deltas
|
|
bca569ae
|
2022-11-21T23:19:42
|
|
[array] Speed up hash() for byte arrays
|
|
d7b492e3
|
2022-11-21T23:08:51
|
|
Revert "[array] Remove hash specializations for bytes"
This reverts commit 213117317cefeb4e75d21c5c21e383309f116bb0.
|
|
1572ba28
|
2022-11-21T22:26:44
|
|
[subset-cff] Return in subr closure if already seen subr
Not sure why this was not done before.
|
|
a29ca6ef
|
2022-11-21T22:02:17
|
|
[subset-cff] Comment
|
|
28e767dd
|
2022-11-21T21:59:51
|
|
[subset-cff] Really optimize op_str_t / parsed_cs_op_t layout
Now parsed_cs_op_t and op_str_t are both 16 bytes.
Saves another 7% in SourceHanSans/10000 benchmark.
|
|
2d5ee237
|
2022-11-21T21:37:38
|
|
[subset-cff] Readjust parsed_cs_op_t
Now it doesn't matter anymore since op_str_t is adjusted and
is 16 bytes with 8byte alignment.
|
|
4f056b92
|
2022-11-21T21:37:38
|
|
[subset-cff] Optimize op_str_t layout
|
|
a750cb01
|
2022-11-21T21:03:32
|
|
Simplify rvalue creation
|
|
86a763c6
|
2022-11-21T20:53:44
|
|
[map] Make keys moveable
|
|
cf20d2ec
|
2022-11-21T20:46:01
|
|
[map] Take const key
|
|
3d1c76f7
|
2022-11-21T19:40:32
|
|
[serializer] Don't hash objects twice
|
|
35878df2
|
2022-11-21T19:14:03
|
|
[algs] Implement swap() for pair_t
Helps priority_queue::pop_minimum and friends, which help subsetter
repacker. Shows a few percentage improvement on NotoNastaliq benchmark.
|
|
a2984a29
|
2022-11-21T18:40:01
|
|
[cff] Remove unnecessary namespacing
|
|
dc3bb5e0
|
2022-11-21T18:18:48
|
|
[subset-cff] Pre-allocate values array for subroutines as well
|
|
c6279224
|
2022-11-21T18:01:50
|
|
[cff] Adjust pre-allocation
This better matches actual usage, given that ops are one or two
bytes, and vector also allocates 50% extra.
|
|
bab8ec58
|
2022-11-21T17:46:32
|
|
[subset-cff] Disable sharing when packing charstring INDEXes
Saves another 8%ish.
|
|
2cadacad
|
2022-11-21T17:17:15
|
|
[cff] Simplify str_encoder_t error handling
|
|
f263e3fe
|
2022-11-21T17:04:55
|
|
[cff] Manually copy short strings instead of memcpy()
|
|
38efd186
|
2022-11-21T17:02:11
|
|
[cff] Add a likely()
|
|
191025cc
|
2022-11-21T16:58:19
|
|
[cff] Adjust buffer pre-allocation
Most ops take one or two bytes, so allocate count*2, not count*3.
Shows minor speedup in subsetting benchmark (around 2%).
|
|
4b2caafe
|
2022-11-21T16:46:20
|
|
[subset-cff] Optimize parsed_cs_op_t size
Shows 5% speedup on SourceHanSans-Regular/10000 benchmark.
|
|
e0b06bd1
|
2022-11-21T16:09:39
|
|
[subset] Cache has_seac in accelerator
Speeds up SourceHanSans-Regular/10000 benchmark by %25.
|
|
dd1ba328
|
2022-11-21T23:20:59
|
|
[repacker] fix fuzzer timeout.
For https://oss-fuzz.com/testcase-detail/5845846876356608. Only process the set of unique overflows.
|
|
59451502
|
2022-11-21T15:23:16
|
|
[cff] Optimize env error checking
|
|
b238578a
|
2022-11-21T14:36:57
|
|
[cff] Optimize INDEX operator[]
|
|
d9de515a
|
2022-11-21T14:23:07
|
|
[cff] Optimize byte_str_ref_t array access
|
|
a81ec9b2
|
2022-11-21T14:03:28
|
|
[cff] Optimize byte_str_ref_t inc()
Shows a couple percent speedup.
|
|
3ff75411
|
2022-11-21T13:08:55
|
|
[algs] Fix bot fail
|
|
b81e3989
|
2022-11-21T13:02:40
|
|
Try fixing arm-eabi build after a10cfe3f32861c13578dc21476b2fe4d2e0af43c
|
|
4c14043b
|
2022-11-21T12:56:33
|
|
[algs] Add output argument to hb_unsigned_mul_overflows()
|
|
25adbb38
|
2022-11-21T12:47:53
|
|
[algs] Use __builtin_mul_overflow
Compiles to smaller binary.
|
|
a10cfe3f
|
2022-11-21T12:37:59
|
|
[algs] Write hb_in_ranges() recursively
|
|
2e86700e
|
2022-11-21T12:28:10
|
|
[gvar] Add memory-barrier as in ArrayOf
|
|
b00a911f
|
2022-11-21T12:11:30
|
|
[sorted-array] Add faster iterator implementation here as well
|
|
7cc79a8a
|
2022-11-21T12:09:24
|
|
[vector] Adjust comment
|
|
e82a3c69
|
2022-11-21T12:00:10
|
|
[array/vector] Optimize range-based for-loop
Avoid bounds-checking.
|
|
0387182c
|
2022-11-21T11:05:47
|
|
[ot-map] Minor refactor features[i] access
|
|
5ee6d5d7
|
2022-11-21T11:00:29
|
|
[cff] Add memory-barrier to INDEX
Like we do for ArrayOf.
|
|
6905d36d
|
2022-11-21T10:51:33
|
|
[cff] Fix fetch_op() bounds-checking
|
|
b51ab1a9
|
2022-11-21T10:27:07
|
|
[cff] Optimize byte_str_ref_t
Make it 16 bytes instead of 24. This struct is used in the subroutine
call stack heavily.
This change makes the HB AdobeVFPrototype benchmark to become faster
than FT one, with about 6% speedup as a result of this change.
|
|
7a39464b
|
2022-11-21T09:48:54
|
|
[cff] Hide members of byte_str_ref_t
|
|
18141f00
|
2022-11-21T09:47:03
|
|
[cff] Move a sub_array call
No logic change.... I hope?!
|
|
f66415cd
|
2022-11-21T09:39:27
|
|
[cff] Move initialization of a type to constructor
|
|
70a5cd53
|
2022-11-21T08:52:33
|
|
[algs] Assert trivial copy assignable in stable_sort
|
|
9bb39423
|
2022-11-20T17:40:54
|
|
[algs] Simplify stable_sort signatures
|
|
d119568d
|
2022-11-20T14:11:51
|
|
[cbdt] Use vector tail()
|