Log

Author Commit Date CI Message
Garret Rieger 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.
Garret Rieger 51028e63 2022-11-23T22:51:16 [subset] Retain all glyphs in preprocessed face.
Garret Rieger 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.
Garret Rieger 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.
Garret Rieger 81640fdf 2022-11-23T20:22:36 [subset] fix leaked font in glyf::subset(...)
Behdad Esfahbod a23f8204 2022-11-23T12:56:13 [subset-cff] Micro-optimize array access
Behdad Esfahbod 1e8f1ac6 2022-11-23T12:28:29 [subset-glyf] Micro-optimize array access
Behdad Esfahbod 356d135e 2022-11-23T12:20:51 [subset-glyf] Reduce roundf calls Saves 7% on MPLUS1-Variable/6000 benchmark.
Behdad Esfahbod dcce53dd 2022-11-23T13:19:38 [cff] Micro-optimize fetch_op
Behdad Esfahbod 0bf7d9eb 2022-11-23T13:00:23 [subset-cff] Micro-optimize encode_byte
Garret Rieger 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.
Behdad Esfahbod 299ec902 2022-11-22T16:03:02 [glyf] Move instanciation to serialize()
Behdad Esfahbod d8d881f2 2022-11-22T15:24:16 [subset-glyf] Don't create a second glyf accelerator
Behdad Esfahbod 75609300 2022-11-22T15:22:25 [glyf] Add _create_font_for_instancing
Behdad Esfahbod 40634cee 2022-11-22T15:07:16 [glyf] Adjust data types
Behdad Esfahbod ba0d28ea 2022-11-22T15:01:48 [glyf] Fix font error check
Behdad Esfahbod 04c52501 2022-11-22T14:54:55 [glyf] Use a malloc instead of calloc
Behdad Esfahbod 024aa818 2022-11-22T14:51:42 [glyf] Micro-optimize encode_coord
Behdad Esfahbod b6694597 2022-11-22T14:49:01 [glyf] Micro-optimize encode_flag()
Behdad Esfahbod d47cfe79 2022-11-22T14:45:04 [glyf] Minor use operator ++
Behdad Esfahbod 03e6bde7 2022-11-22T14:40:36 [glyf] Minor adjustment to lastflag handling No logic change.
Behdad Esfahbod 0ca9fda8 2022-11-22T14:39:10 [glyf] Remove misplaced comment
Behdad Esfahbod 44be8ef4 2022-11-22T14:21:25 [gvar] Skip degenerate all-untouched delta-sets
Behdad Esfahbod 656bb223 2022-11-22T14:16:40 [gvar] Micro-optimize unpack_points
Behdad Esfahbod a3830272 2022-11-22T14:15:17 [gvar] Cosmetic
Behdad Esfahbod 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.
Behdad Esfahbod e8ddf107 2022-11-22T13:29:32 [gvar] Optimize a loop
Behdad Esfahbod dd6fcec9 2022-11-22T13:27:40 [gvar] Remove a conditional
Behdad Esfahbod a0231723 2022-11-22T13:24:39 [gvar] Refactor deltas array access
Behdad Esfahbod c34c7769 2022-11-22T13:21:01 [gvar] Don't try IUP if all points are specified
Behdad Esfahbod 27c4037e 2022-11-22T13:12:22 [gvar] Micro-optimize boundary-checking
Behdad Esfahbod ab8346fb 2022-11-22T13:07:39 [gvar] Add an unlikely
Behdad Esfahbod 1e8a342e 2022-11-22T13:02:38 [gvar] Micro-optimize int types
Behdad Esfahbod 4afcdf67 2022-11-22T12:56:48 More hb_memcpy
Behdad Esfahbod 58a696d8 2022-11-22T12:56:05 More hb_memset
Behdad Esfahbod 59c45f6d 2022-11-22T12:54:50 Use hb_memcpy instead of memcpy consistently
Behdad Esfahbod ac0efaf8 2022-11-22T12:50:36 Use hb_memset instead of memset consistently
Behdad Esfahbod 44a892a2 2022-11-22T12:48:52 [shape] Use hb_memcmp instead of memcmp
Behdad Esfahbod c53c6481 2022-11-22T12:46:25 [subset-cff] Another handrolled memcpy
Behdad Esfahbod 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.
Behdad Esfahbod 13e1ca9e 2022-11-22T12:19:28 [cff] Micro-optimize memcpy
Behdad Esfahbod 2968dd78 2022-11-22T11:57:29 [gvar] Optimize as_array() access
Behdad Esfahbod bb3bb764 2022-11-22T11:53:35 [gvar] Optimize scalar = 1.0 case
Behdad Esfahbod 2d098d5d 2022-11-22T11:51:04 [gvar] Use memset
Behdad Esfahbod e630a65e 2022-11-22T11:27:05 [gvar] Micro-optize vector extend
Behdad Esfahbod 49d4f621 2022-11-22T11:14:56 [gvar] Micro-optimize
Behdad Esfahbod 1758ee66 2022-11-22T10:45:49 [glyf] Minor write loop more idiomatically
Behdad Esfahbod 16ec9dcc 2022-11-22T10:43:46 [gvar] Whitespace
Behdad Esfahbod b567ce51 2022-11-21T20:08:54 [subset] Don't trim glyf's again if preprocessed Speeds up M1/10000 benchmark by 30%!
Behdad Esfahbod 72059a47 2022-11-22T10:41:37 [gvar] Optimize IUP alg
Behdad Esfahbod ee9873b5 2022-11-22T10:23:17 [gvar] Disable initializing vectors when not necessary
Behdad Esfahbod b0d26411 2022-11-22T10:20:11 [vector] Add "initialize" argument to resize()
Behdad Esfahbod a2059f8f 2022-11-22T10:16:21 [gvar] Optimize unpack_points
Behdad Esfahbod 6d7206b6 2022-11-22T10:13:14 [gvar] Optimize unpack_deltas
Behdad Esfahbod bca569ae 2022-11-21T23:19:42 [array] Speed up hash() for byte arrays
Behdad Esfahbod d7b492e3 2022-11-21T23:08:51 Revert "[array] Remove hash specializations for bytes" This reverts commit 213117317cefeb4e75d21c5c21e383309f116bb0.
Behdad Esfahbod 1572ba28 2022-11-21T22:26:44 [subset-cff] Return in subr closure if already seen subr Not sure why this was not done before.
Behdad Esfahbod a29ca6ef 2022-11-21T22:02:17 [subset-cff] Comment
Behdad Esfahbod 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.
Behdad Esfahbod 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.
Behdad Esfahbod 4f056b92 2022-11-21T21:37:38 [subset-cff] Optimize op_str_t layout
Behdad Esfahbod a750cb01 2022-11-21T21:03:32 Simplify rvalue creation
Behdad Esfahbod 86a763c6 2022-11-21T20:53:44 [map] Make keys moveable
Behdad Esfahbod cf20d2ec 2022-11-21T20:46:01 [map] Take const key
Behdad Esfahbod 3d1c76f7 2022-11-21T19:40:32 [serializer] Don't hash objects twice
Behdad Esfahbod 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.
Behdad Esfahbod a2984a29 2022-11-21T18:40:01 [cff] Remove unnecessary namespacing
Behdad Esfahbod dc3bb5e0 2022-11-21T18:18:48 [subset-cff] Pre-allocate values array for subroutines as well
Behdad Esfahbod 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.
Behdad Esfahbod bab8ec58 2022-11-21T17:46:32 [subset-cff] Disable sharing when packing charstring INDEXes Saves another 8%ish.
Behdad Esfahbod 2cadacad 2022-11-21T17:17:15 [cff] Simplify str_encoder_t error handling
Behdad Esfahbod f263e3fe 2022-11-21T17:04:55 [cff] Manually copy short strings instead of memcpy()
Behdad Esfahbod 38efd186 2022-11-21T17:02:11 [cff] Add a likely()
Behdad Esfahbod 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%).
Behdad Esfahbod 4b2caafe 2022-11-21T16:46:20 [subset-cff] Optimize parsed_cs_op_t size Shows 5% speedup on SourceHanSans-Regular/10000 benchmark.
Behdad Esfahbod e0b06bd1 2022-11-21T16:09:39 [subset] Cache has_seac in accelerator Speeds up SourceHanSans-Regular/10000 benchmark by %25.
Garret Rieger 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.
Behdad Esfahbod 59451502 2022-11-21T15:23:16 [cff] Optimize env error checking
Behdad Esfahbod b238578a 2022-11-21T14:36:57 [cff] Optimize INDEX operator[]
Behdad Esfahbod d9de515a 2022-11-21T14:23:07 [cff] Optimize byte_str_ref_t array access
Behdad Esfahbod a81ec9b2 2022-11-21T14:03:28 [cff] Optimize byte_str_ref_t inc() Shows a couple percent speedup.
Behdad Esfahbod 3ff75411 2022-11-21T13:08:55 [algs] Fix bot fail
Behdad Esfahbod b81e3989 2022-11-21T13:02:40 Try fixing arm-eabi build after a10cfe3f32861c13578dc21476b2fe4d2e0af43c
Behdad Esfahbod 4c14043b 2022-11-21T12:56:33 [algs] Add output argument to hb_unsigned_mul_overflows()
Behdad Esfahbod 25adbb38 2022-11-21T12:47:53 [algs] Use __builtin_mul_overflow Compiles to smaller binary.
Behdad Esfahbod a10cfe3f 2022-11-21T12:37:59 [algs] Write hb_in_ranges() recursively
Behdad Esfahbod 2e86700e 2022-11-21T12:28:10 [gvar] Add memory-barrier as in ArrayOf
Behdad Esfahbod b00a911f 2022-11-21T12:11:30 [sorted-array] Add faster iterator implementation here as well
Behdad Esfahbod 7cc79a8a 2022-11-21T12:09:24 [vector] Adjust comment
Behdad Esfahbod e82a3c69 2022-11-21T12:00:10 [array/vector] Optimize range-based for-loop Avoid bounds-checking.
Behdad Esfahbod 0387182c 2022-11-21T11:05:47 [ot-map] Minor refactor features[i] access
Behdad Esfahbod 5ee6d5d7 2022-11-21T11:00:29 [cff] Add memory-barrier to INDEX Like we do for ArrayOf.
Behdad Esfahbod 6905d36d 2022-11-21T10:51:33 [cff] Fix fetch_op() bounds-checking
Behdad Esfahbod 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.
Behdad Esfahbod 7a39464b 2022-11-21T09:48:54 [cff] Hide members of byte_str_ref_t
Behdad Esfahbod 18141f00 2022-11-21T09:47:03 [cff] Move a sub_array call No logic change.... I hope?!
Behdad Esfahbod f66415cd 2022-11-21T09:39:27 [cff] Move initialization of a type to constructor
Behdad Esfahbod 70a5cd53 2022-11-21T08:52:33 [algs] Assert trivial copy assignable in stable_sort
Behdad Esfahbod 9bb39423 2022-11-20T17:40:54 [algs] Simplify stable_sort signatures
Behdad Esfahbod d119568d 2022-11-20T14:11:51 [cbdt] Use vector tail()