Log

Author Commit Date CI Message
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()
Behdad Esfahbod 87a88117 2022-11-20T14:10:39 [object] Use vector tail()
Behdad Esfahbod 76ce390b 2022-11-20T13:54:56 [ucd] Document algorithms
Behdad Esfahbod ed43bc51 2022-11-20T13:10:19 [buffer] Move delete_glyphs_inplace() here
Behdad Esfahbod dd88dae8 2022-11-19T15:22:39 [unicode] Simplify set_funcs a bit more
Behdad Esfahbod 2d8ff3bc 2022-11-19T15:23:44 [unicode] Destroy user_data in set_funcs fail paths This is what the font_funcs / draw_funcs do.
Behdad Esfahbod 527823cc 2022-11-19T15:19:08 [unicode] Destroy user_data in set_funcs fail paths This is what the font_funcs / draw_funcs do.
Behdad Esfahbod 56d6b699 2022-11-19T15:08:50 [font/draw] Remove unneeded branch The preamble sets user_data/destroy to nullptr if func is nullptr.
Behdad Esfahbod 976bb26c 2022-11-19T15:06:23 [draw] Optimize set_func functions
Behdad Esfahbod 114167a9 2022-11-19T14:47:45 [font] Optimize set_func functions
Behdad Esfahbod f9d7b303 2022-11-19T14:20:36 [thai] Use smaller type for arrays No logic change.
Behdad Esfahbod 72c4e431 2022-11-19T13:40:33 [use-table] Add a OPTIMIZE_SIZE version
Behdad Esfahbod 83c3a91d 2022-11-19T13:34:58 [gen-use-table] Report fullCost
Behdad Esfahbod ba08de62 2022-11-19T13:14:18 [ucd] Change OPTIMIZE_SIZE to compression level 9 Also changes default compression level from 3 to 5, but that shows no change in the generated table size.