src/hb-ot-var-common.hh

Branch


Log

Author Commit Date CI Message
Behdad Esfahbod e1fd2bee 2025-09-18T11:18:09 [alloc-pool] Reduce memory usage by reclaiming some discards
Behdad Esfahbod 23024337 2025-09-17T15:32:46 [instancer/iup] Reduce mallocs again Perhaps shrink() shouldn't default to realloc. Working on it.
Behdad Esfahbod 2be836c1 2025-09-17T00:31:50 Revert "[instancer] Preallocate coordinate maps from alloc pool as well" This reverts commit 3f71afe7605cdc7260990f8925e6ed49521fe728. Slowed things down.
Behdad Esfahbod 3f71afe7 2025-09-17T00:22:39 [instancer] Preallocate coordinate maps from alloc pool as well
Behdad Esfahbod d4cc4823 2025-09-16T17:00:38 [instancer/tuplevar] Tune allocation size
Behdad Esfahbod 5b04b40d 2025-09-16T16:52:53 [instancer/tuplevars] Allocate compiled_deltas from alloc pool
Behdad Esfahbod ea9b7de4 2025-09-16T16:45:02 [instancer/tuplevars] Allocate compiled_tuple_headers from alloc pool
Behdad Esfahbod fb0ef230 2025-09-16T11:16:30 Revert "[tuplevars] Allocate from pool" This reverts commit 94d78de954ab22f3717cc399920670f877616567. Slowed things down.
Behdad Esfahbod 94d78de9 2025-09-16T11:13:19 [tuplevars] Allocate from pool
Behdad Esfahbod f5fdf426 2025-09-16T02:28:29 [tuplevar] Use pool for duplicating
Behdad Esfahbod f9cd59ae 2025-09-16T01:45:36 [tuplevar] More use of pool
Behdad Esfahbod 12ce710f 2025-09-16T01:44:47 [tuplevar] Use alloc-pool instead of custom pool
Behdad Esfahbod 43e017f8 2025-09-16T01:31:21 [tupledelta] Micro optimize
Behdad Esfahbod ebdeb2e3 2025-09-16T01:09:46 [tuplevalues] Speed up encoding
Behdad Esfahbod 755ed109 2025-09-16T00:40:28 Add hb-alloc-pool and use in gvar instancer
Behdad Esfahbod 82370913 2025-09-15T20:16:52 [vector] Simplify resize()
Behdad Esfahbod c56ef9ed 2025-09-15T20:10:54 [instancer] Reuse more allocations These allocs are scratched. Don't free them, so we reuse.
Behdad Esfahbod 8e3e8c66 2025-09-15T19:49:11 [iup] Reuse more allocations
Behdad Esfahbod 5e816ef7 2025-09-15T18:43:22 [iup] Reuse vectors
Behdad Esfahbod db86e546 2025-09-15T16:41:31 [instancer/gvar] Combine peak_coords mallocs into one chunk
Behdad Esfahbod 4d590199 2025-09-14T18:04:51 [instancer/tuplevar] Allocate intermediates array on demand
Behdad Esfahbod 35212ba3 2025-09-14T17:46:13 [gvar] Change a storage type No functional change.
Behdad Esfahbod 323901f8 2025-09-14T13:47:32 [instancer/tuplevars] Reduce work by combining two loops
Behdad Esfahbod eb6de664 2025-09-14T13:13:22 [instancer/tuplevars] Reduce work
Behdad Esfahbod 1f936e23 2025-09-13T16:58:45 [instancer] Try to move instead of copy some tuples
Behdad Esfahbod f2c4ab45 2025-09-13T16:14:55 [instancer/varstore] Micro-optimize
Behdad Esfahbod cf6c9d8a 2025-09-13T13:49:56 [instancer/varstore] Put back sort again In testing with GoogleSansFlex, this produces slightly smaller result.
Behdad Esfahbod a4a50892 2025-09-12T23:41:40 [instancer/varstore] Speed up encoding merging Don't recalculate chars from all row data.
Behdad Esfahbod a878dca0 2025-09-12T19:19:07 [instancer/varstore] Remove sorting from the optimizer Just work with incoming order.
Behdad Esfahbod e16be515 2025-09-12T17:42:57 [instancer/varstore] Only optimize instanced varstore incrementally See comments. This basically wipes of the varstore optimization costs out of the profiles, which saves eg. 25% total time in GoogleSansFlex instantiation, with practically no file size downside.
Behdad Esfahbod a4087e7f 2025-09-12T15:48:26 [instancer/varlib] Minor non-functional change
Behdad Esfahbod 3965e9a6 2025-09-12T13:12:05 [instancer/varstore] Change sort key (#5540) See https://github.com/harfbuzz/harfbuzz/pull/5540
Behdad Esfahbod c9480db9 2025-09-12T12:22:17 [instancer/varstore] Add a heuristic to speed up optimization
Behdad Esfahbod e4957b0c 2025-09-12T10:57:49 [varLib/instancer] Simplify gain encoding
Behdad Esfahbod 20d7ef5f 2025-09-12T10:45:08 [instancer/varstore] Change gain encoding gain can be high in theory.
Behdad Esfahbod f12be45c 2025-09-12T03:42:49 [instancer/varstore] Optimize gain comparisons
Behdad Esfahbod 92ec75f8 2025-09-12T03:13:25 [instancer/varstore] Micro-optimize
Behdad Esfahbod 14e7d5b2 2025-09-12T03:04:59 [instancer/varstore] Speed up gain_from_merging 10% speedup instancing GoogleSansFlex.
Behdad Esfahbod aba798dd 2025-09-12T00:52:40 [instancer/varstore] Use heapify() instead of inserts()
Behdad Esfahbod 3dc5e3d6 2025-09-11T23:27:51 [instancer/varstore] Consolidate chars_t logic
Behdad Esfahbod fe6c9a0f 2025-09-11T23:23:41 [instancer/varstore] Fix a logic bug combined_chars was moved already. Also, see comment.
Behdad Esfahbod 9d971169 2025-09-11T23:10:50 [instancer/varstore] Add a chars_t type
Behdad Esfahbod 1a6c6d78 2025-09-11T21:59:41 [instancer] Micro-optimize a couple of hot comparisons
Behdad Esfahbod c938e8ce 2025-09-11T21:57:14 [instancer] Micro-optimize by using bit-set directly
Behdad Esfahbod a34f8b31 2025-09-11T19:10:05 [instancer] Use bitset instead of vector for VarStore optimizer columns ~30% faster on GoogleSansFlex.
Behdad Esfahbod 2e86070e 2025-09-11T18:15:19 [instancer] Don't clear a couple of resize allocations Not needed.
Behdad Esfahbod 01fd17d6 2025-09-11T17:05:03 [instancer] Reduce mallocs in create_from_tuple_var_data
Behdad Esfahbod 23e40cd7 2025-09-11T16:53:44 [instancer] Reduce mallocs in gain_from_merging
Behdad Esfahbod 3df6e510 2025-09-11T16:33:10 [instancer] Reduce mallocs in merge_tuple_variations
Behdad Esfahbod 6d82b40a 2025-09-11T16:09:13 [instancer] Remove unnecessary vector fini
Behdad Esfahbod 87c36992 2025-09-11T15:42:59 [instancer] Reduce mallocs in calc_inferred_deltas
Behdad Esfahbod 67bddf15 2025-09-11T15:16:30 [instancer] Reduce mallocs in change_tuple_var_axis_limit
Behdad Esfahbod 17aa37ab 2025-09-11T15:13:51 [instancer] Reduce mallocs in rebase-tent
Behdad Esfahbod 0ce2b74f 2025-07-19T20:45:50 [gvar] Don't store deltas not needed For phantoms-only case. 30% speedup on v-advances func's slowest codepath (using phantom-points).
Behdad Esfahbod 7165f117 2025-05-20T17:09:58 [var] Micro-optimize
Behdad Esfahbod 19fd08f0 2025-05-18T11:31:41 [TupleVariation] Inline the hot methods
Behdad Esfahbod 8ef23c48 2025-05-17T11:13:36 [TupleVariation] Micro-optimize more
Behdad Esfahbod c35b6eb4 2025-05-17T11:07:04 [TupleVariation] Micro-optimize non-common paths too
Behdad Esfahbod 35db5c09 2025-05-17T10:55:29 [TupleVariation] Micro-optimize more
Behdad Esfahbod 1e0b04bd 2025-05-17T10:46:46 [TupleVariation] Micro-optimize gvar-cache
Behdad Esfahbod d47daacb 2025-05-16T01:16:12 [gvar] Remove shared_tuple_active_idx cache Reduces malloc overhead and doesn't slow things down much now that we have a shared_tuple scalar_cache.
Behdad Esfahbod c6097698 2025-05-16T01:10:43 [ot-font/draw] Use a gvar shared-tuple scalar cache for calculate_scalar Massive saving on massively variable fonts. Over 30% on a tested font.
Behdad Esfahbod 49b1a4c0 2025-05-15T16:54:00 [TupleVariation] Reduce iteration overhead
Behdad Esfahbod 7fcf7b3c 2025-05-15T16:45:30 [TupleVariation] Reduce iteration overhead The check was actually wrong. And we check that upon access separately.
Behdad Esfahbod 756980ce 2025-05-15T15:50:01 [TupleVariations] Cache all active indices in shared tuples
Behdad Esfahbod ffe955b9 2025-02-26T13:40:18 [GVAR] Change offsetToData size to 24bit As per https://github.com/harfbuzz/boring-expansion-spec/issues/162
Behdad Esfahbod b12612f5 2025-02-25T13:47:06 Fix compiler warnings
Behdad Esfahbod aaecaa4c 2025-02-24T22:03:00 [vector] Disallow accidental creation of transient vectors Fix sites that were doing this under our feet. This lowers precision of some instancing operations from double to float, which modifies a few results by rounding error. TODO: Update tests.
Qunxin Liu 622e9c33 2024-11-06T10:59:17 [instancer] fix for incorrect offset calculation when we have gvar padding
Behdad Esfahbod 2ba0b9ee 2024-08-29T11:41:28 Turn some byte data into unsigned char, from char Fixes https://github.com/harfbuzz/harfbuzz/issues/4844
Qunxin Liu 72502ef0 2024-08-12T14:08:06 [instancer] dont return false when variation data is empty after partial instancing
Behdad Esfahbod 0037ee28 2024-05-24T08:10:15 Merge pull request #4578 from harfbuzz/varc-table `VARC` table
Behdad Esfahbod fecc5789 2024-05-23T16:23:21 [var] Minor, make a function a template
Garret Rieger 3f38ffd6 2024-05-13T18:50:43 [subset] Fix remaining double conversion warnings.
Garret Rieger b74a7ecc 2024-05-07T19:53:01 Fix IUP differences accoss platforms. - Slightly increase the tolerance to account for differences in floating point math across platforms. - The specific issue is a fused multiply add (d = d1 + (x - x1) * scale; in hb-subset-instancer-iup.cc) - Also fix more implicit double conversion warnings.
Behdad Esfahbod ca642570 2024-05-07T10:19:30 Rename result_t to rebase_tent_result_t
Garret Rieger e81c8c13 2024-05-03T18:06:14 Change tolerance from float to double.
Behdad Esfahbod 66cd7c04 2024-04-23T13:09:22 [Condition] Shuffle code around
Behdad Esfahbod a94a5c63 2024-04-16T17:10:43 [varc] Add get_point_at to glyf/CFF2
Behdad Esfahbod 763f8390 2024-03-15T11:45:39 [TupleValues] Move compile/decompile here
Behdad Esfahbod b24511d2 2024-03-15T11:00:31 [TupleVariations] Rename encode/unpack to compile/decompile
Behdad Esfahbod 8ccebae1 2024-03-15T10:53:25 [TupleVariations] Simplify encode API
Behdad Esfahbod 3d0c03ae 2024-03-15T10:48:18 [TupleVariations] Take array instead of vector in encode
Behdad Esfahbod 0dcdbb4f 2024-02-06T16:23:48 [VARC] Add consume_all to unpack_deltas() Untested.
Behdad Esfahbod bd795373 2024-02-06T14:38:21 [TupleValues] Encode 32bit values https://github.com/harfbuzz/boring-expansion-spec/blob/main/VARC.md#tuplevalues
Behdad Esfahbod 0c605453 2024-02-06T14:29:50 [TupleValues] Decode 32bit values https://github.com/harfbuzz/boring-expansion-spec/blob/main/VARC.md#tuplevalues
Behdad Esfahbod e1d0ee3b 2024-04-16T17:10:05 [var] Mark a few methods as static
Behdad Esfahbod a69a6cb0 2024-04-16T17:08:06 Avoid a copy
Garret Rieger 2cfa5505 2024-03-27T23:21:57 [instancer] Switch to doubles for delta calculations. FontTools uses double's internally so match FontTool's precision so we get the same results more often for floating point calculations.
Bruce Mitchener 3cfdbd67 2024-02-16T23:41:55 Use `noexcept` on swap, move constructors, etc.
Behdad Esfahbod 031fdb1c 2024-02-06T14:51:41 Rename VarStoreInstancer to ItemVarStoreInstancer
Behdad Esfahbod 1cb47eff 2024-02-06T14:49:31 Rename VariationStore to ItemVariationStore
Qunxin Liu f072de93 2024-01-30T10:31:14 [instancer] move iup code to a seprate file
Qunxin Liu 4d5fb233 2024-01-26T16:00:58 fix build
Qunxin Liu 0cbc8123 2024-01-26T11:26:10 [instancer] add iup_optimize() call into instantiation
Qunxin Liu a3e3473c 2024-01-26T10:34:58 [instancer] when iup delta opt is enabled, add default deltas to coords
Qunxin Liu f1cdcc70 2024-01-26T10:12:38 [instancer] add iup delta optimization functions tuple_delta_t ported from fonttools
Qunxin Liu 8ad540bb 2024-01-26T09:58:48 [instancer] move compile_point_set to be a member of tuple_delta_t Also change hb_bytes_t to vector for memory safety
Behdad Esfahbod 7ee7e2e3 2023-11-04T15:02:28 [sanitize] Add remaining hb_barrier() annotations I'm sure I've forgot some. But this is a good start.
Behdad Esfahbod b5329459 2023-11-01T16:53:26 [tuple_delta_t] Micro-optimize encoding vector access