|
31653e6b
|
2025-05-24T16:51:41
|
|
Revert "[ItemVariationStore] Rewrite the main loop"
This reverts commit 57b636fb13c7ef55d6f435b8f560df653f02612e.
|
|
8e0243c4
|
2025-05-24T16:50:40
|
|
[ItemVariationStore] Rewrite the main loop
Slows down slightly. Going to revert.
|
|
e69b3c41
|
2025-05-22T20:41:36
|
|
[ItemVariationStore] Speed up get_delta
Another 15% in the same benchmark.
|
|
227a5e11
|
2025-05-22T20:11:08
|
|
[VarRegionList] Inline evaluate() cache lookup
Seeing 45% speedup in benchmark-font glyph_h_advances benchmark
on a mega variable font!
|
|
35db5c09
|
2025-05-17T10:55:29
|
|
[TupleVariation] Micro-optimize more
|
|
1e0b04bd
|
2025-05-17T10:46:46
|
|
[TupleVariation] Micro-optimize gvar-cache
|
|
f50490d6
|
2025-05-15T18:28:44
|
|
Add hb_scalar_cache_t
|
|
c7f98090
|
2025-04-07T16:36:42
|
|
[GPOS] Short-circuit variations if no axis set
|
|
b1a0a4c2
|
2025-04-07T18:39:21
|
|
In OT::VarData::Serialize don't attempt to serialize an empty set of rows.
Protects against incorrectly accessing rows[0] when rows is empty.
|
|
13752124
|
2025-04-04T14:00:25
|
|
Fix compiler warnings
|
|
7ba4e879
|
2025-04-04T12:39:10
|
|
[VarStore] Fix storage shift
Use all bits. That's what I meant.
|
|
d30d7f6b
|
2025-04-03T22:25:34
|
|
[ItemVariationStore] Use atomic int for cache
|
|
9cae040b
|
2025-04-03T22:18:14
|
|
[ItemVariationStore] Make cache atomic floats
Doesn't work with intrinsic atomic implementations. Disabled that.
Going through the C++11 atomics path now.
Will fix in next commit.
|
|
6f5b8d59
|
2025-04-03T01:52:03
|
|
[ot-font] Streamline advance cache management
|
|
7da049ed
|
2025-04-02T15:18:44
|
|
[varStore] Add clear_cache()
|
|
192d264a
|
2025-03-25T13:32:01
|
|
[subset] remove divisions when computing the cost of binary search
|
|
c81b1c43
|
2025-03-02T12:42:36
|
|
[MultiVarData] Remove a likely
|
|
827be1b2
|
2025-02-25T10:23:10
|
|
Revert "[MultiVarStore] Micro-optimize"
This reverts commit 13d98f1ded00d025b85816ceee056da6f121d555.
This broke bots. I don't fully understand why tests pass locally.
|
|
13d98f1d
|
2025-02-25T01:40:19
|
|
[MultiVarStore] Micro-optimize
|
|
97a5c52a
|
2025-02-24T20:53:19
|
|
[VARC/MultiVarStore] Reduce malloc pressure more
|
|
1ba90720
|
2025-02-23T21:34:54
|
|
[VARC] Speed up MultiVarData::get_delta
|
|
01f02f55
|
2025-02-18T20:28:48
|
|
[COLR] Optimize NoVariation codepath
|
|
24fe2be9
|
2025-02-06T11:55:23
|
|
[subset] Fix undefined-behavior
|
|
f22943a2
|
2025-02-05T18:51:11
|
|
[PairPos] Cache coverage as well
Another 3% down in Roboto-Regular.
|
|
3f40edbf
|
2025-02-05T17:25:27
|
|
[ClassDef] Add ability to use a cache
|
|
4587e08a
|
2024-10-07T08:41:23
|
|
[VarStoreInstancer] Fix null deref
Should fix this hopefully:
https://github.com/harfbuzz/harfbuzz/actions/runs/11203732283/job/31141330056?pr=4885
|
|
7a890c2e
|
2024-09-22T13:19:02
|
|
Add hb_barrier() to switches of unions
https://github.com/harfbuzz/harfbuzz/pull/4864#issuecomment-2366923736
|
|
a141e25c
|
2024-08-30T10:09:00
|
|
[subset] remove unnecessary check on name IDs
See: https://learn.microsoft.com/en-us/typography/opentype/spec/features_ae
The spec says they are expected to be in the font-specific name ID range (256–32767),
though that is not a requirement in this Feature Parameters specification.
|
|
1c01944e
|
2024-07-20T11:21:49
|
|
Added forward declaration to fix build with Visual Studio 2017.
|
|
e8049ae9
|
2024-05-30T14:38:05
|
|
[VARC] Sanitize ConditionList
Oops!
Fixes https://oss-fuzz.com/testcase-detail/6610112583106560
|
|
0037ee28
|
2024-05-24T08:10:15
|
|
Merge pull request #4578 from harfbuzz/varc-table
`VARC` table
|
|
3f38ffd6
|
2024-05-13T18:50:43
|
|
[subset] Fix remaining double conversion warnings.
|
|
13609790
|
2024-04-23T14:40:21
|
|
[VarStoreInstancer] Add cache argument
Not used by any clients currently (which are COLR and VARC).
|
|
b32e0a70
|
2024-04-23T14:28:38
|
|
Comment
|
|
fff48b45
|
2024-04-23T14:20:31
|
|
Remove unnecessary comment
Resolves https://github.com/harfbuzz/harfbuzz/issues/4677
|
|
cd1d8b8b
|
2024-04-23T14:18:06
|
|
[varc] Use multiVarStore instead of GDEF varStore
That's what we agreed upon.
|
|
ac411f26
|
2024-04-23T13:26:53
|
|
[Condition] Finish evaluation of ConditionValue
https://github.com/adobe-type-tools/opentype-spec-drafts/blob/main/condvalue_spec.md
|
|
66cd7c04
|
2024-04-23T13:09:22
|
|
[Condition] Shuffle code around
|
|
d2ca8a59
|
2024-04-23T13:06:29
|
|
[Condition] Implement ConditionValue
Doesn't fully work yet. Need to shuffle some code around first.
Shift other Condition format numbers.
Implements
https://github.com/adobe-type-tools/opentype-spec-drafts/blob/main/condvalue_spec.md
|
|
6129c726
|
2024-04-22T14:52:58
|
|
[varc] Use Condition instead of ConditionSet
With more Condition formats.
https://github.com/harfbuzz/boring-expansion-spec/commit/df7dcc4618b9dc003740d25c53afe30a8fc03fe2
https://github.com/harfbuzz/boring-expansion-spec/issues/147
|
|
fa6f123e
|
2024-03-27T11:06:28
|
|
[var] Add a fast path for coord == 0
|
|
6af0c519
|
2024-03-23T15:22:40
|
|
[varc] Remove unused method
|
|
eaa1fb14
|
2024-03-23T11:39:58
|
|
[varc] Use an iterator to unpack TupleValues
|
|
70990ac7
|
2024-03-23T09:59:08
|
|
[varc] Micro-optimize "* scalar"
|
|
9c7d871b
|
2024-03-23T09:55:30
|
|
[varc] Fix return type
|
|
c13fc557
|
2024-03-23T09:49:03
|
|
[varc] Micro-optimize
|
|
88eab447
|
2024-03-23T08:28:09
|
|
[varc] Remove unnecessary check
As usual, our operator[] takes care of it.
|
|
4e0845ab
|
2024-03-22T17:10:58
|
|
[varc] Micro-optimize
|
|
7c874354
|
2024-03-20T15:34:24
|
|
[varc] Implement conditionSets
|
|
72c9deb5
|
2024-03-16T13:50:31
|
|
[varc] Fixups
Seems to work now!
|
|
edd1a444
|
2024-03-16T08:49:01
|
|
[varc] Flesh out VarComponent a bit
|
|
a94a5c63
|
2024-04-16T17:10:43
|
|
[varc] Add get_point_at to glyf/CFF2
|
|
0f2fe755
|
2024-03-15T12:51:14
|
|
[varc] Add MultiItemVariationStore
|
|
2ddd1a27
|
2024-03-15T12:27:44
|
|
[varc] Add MultiVarData
|
|
0ee6164a
|
2024-03-14T19:30:18
|
|
[varc] Simplify a bit
|
|
7b57a8a4
|
2024-03-04T14:54:29
|
|
[varc] Implement SparseVariationRegion
|
|
ae35e30b
|
2024-02-06T15:22:13
|
|
[VARC] Add SparseVarRegionAxis
|
|
c84acc8e
|
2024-04-08T23:46:14
|
|
[subset] Fix fuzzer found memory leak.
Fixes https://oss-fuzz.com/testcase-detail/6159925345583104.
|
|
1cb47eff
|
2024-02-06T14:49:31
|
|
Rename VariationStore to ItemVariationStore
|
|
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.
|
|
30672c7e
|
2023-11-03T18:52:03
|
|
Add hb_barrier()
And annotate some more.
|
|
cf49f3f2
|
2023-11-03T18:20:14
|
|
[sanitize] Add barrier()
|
|
aca55dbe
|
2023-11-03T10:51:37
|
|
[instancer] fix feature variations collect lookups
We already know which record to keep, so just collect lookups and no
need to check the substitutes_map
|
|
091e538d
|
2023-10-26T12:52:08
|
|
[instancer] support partial instancing for FeatureVariations
|
|
e595fe75
|
2023-10-18T16:00:06
|
|
fix bots
partial instancing tests are wrapped by experimenal_api, do not enable
them in Makefile
|
|
8ceed6ee
|
2023-10-18T15:43:40
|
|
[subset] fix Lookup.MarkFilteringSet to use the new indices
|
|
f9b04b21
|
2023-09-27T09:36:52
|
|
[instancer] match fonttools'r order when calculating chars
Also fix a bug, make sure map set is happening before std::move
|
|
f39e9bf1
|
2023-09-25T08:59:11
|
|
[instancer] instantiate GPOS
Just need to update var_idxes and deltas
|
|
77f24d82
|
2023-09-22T14:47:11
|
|
[instancer] remap layout var_idxes code update
make hb_collect_variation_indices_context_t only collect layout
variation indices.
|
|
5aa4865a
|
2023-09-20T14:52:58
|
|
[instancer] fix compile warnings
In constructor ‘OT::delta_row_encoding_t::delta_row_encoding_t(OT::delta_row_encoding_t&&)’,
inlined from ‘Type* hb_vector_t<Type, sorted>::push(Args&& ...) [with Args = {OT::delta_row_encoding_t}; Type = OT::delta_row_encoding_t; bool sorted = false]’ at ../src/hb-vector.hh:221:12,
inlined from ‘bool OT::item_variations_t::as_item_varstore(bool, bool)’ at ../src/hb-ot-var-common.hh:1985:24:
../src/hb-ot-layout-common.hh:2304:8: warning: ‘obj.OT::delta_row_encoding_t::width’ may be used uninitialized [-Wmaybe-uninitialized]
2304 | struct delta_row_encoding_t
| ^~~~~~~~~~~~~~~~~~~~
../src/hb-ot-var-common.hh: In member function ‘bool OT::item_variations_t::as_item_varstore(bool, bool)’:
../src/hb-ot-var-common.hh:1981:30: note: ‘obj.OT::delta_row_encoding_t::width’ was declared here
1981 | delta_row_encoding_t obj;
| ^~~
In constructor ‘OT::delta_row_encoding_t::delta_row_encoding_t(OT::delta_row_encoding_t&&)’,
inlined from ‘Type* hb_vector_t<Type, sorted>::push(Args&& ...) [with Args = {OT::delta_row_encoding_t}; Type = OT::delta_row_encoding_t; bool sorted = false]’ at ../src/hb-vector.hh:221:12,
inlined from ‘bool OT::item_variations_t::as_item_varstore(bool, bool)’ at ../src/hb-ot-var-common.hh:1985:24:
../src/hb-ot-layout-common.hh:2304:8: warning: ‘obj.OT::delta_row_encoding_t::overhead’ may be used uninitialized [-Wmaybe-uninitialized]
2304 | struct delta_row_encoding_t
| ^~~~~~~~~~~~~~~~~~~~
../src/hb-ot-var-common.hh: In member function ‘bool OT::item_variations_t::as_item_varstore(bool, bool)’:
../src/hb-ot-var-common.hh:1981:30: note: ‘obj.OT::delta_row_encoding_t::overhead’ was declared here
1981 | delta_row_encoding_t obj;
|
|
5ec21d4a
|
2023-09-20T09:31:03
|
|
[instancer] fix delta_row_encoding_t constructor
always move chars_
|
|
11cc4796
|
2023-09-11T09:57:14
|
|
[instancer] fix columns and get_chars_overhead() in delta_row_encoding_t
make columns a vector of uint8_t so it supports more than 32 columns
|
|
e4e1ac44
|
2023-08-31T15:34:26
|
|
[instancer] add serialize() for VariationStore
Input region_list and encoding_rows are from item_variations_t
|
|
23268792
|
2023-08-31T15:28:06
|
|
[instancer] add serialize() for VarRegionList
The region list argument comes from item_variations_t.get_region_list()
|
|
5f058a93
|
2023-08-31T12:55:04
|
|
[instancer] add create_from_item_varstore () method
|
|
15244888
|
2023-08-31T12:40:30
|
|
[instancer] add struct definition item_variations_t
And struct delta_row_encoding_t
|
|
7989702a
|
2023-08-06T14:17:50
|
|
Audit and fix up serialize_subset uses
Fixes https://github.com/harfbuzz/harfbuzz/issues/4362
|
|
730f579f
|
2023-07-18T15:09:36
|
|
[instancer] store float value rather than F2DOT14 int value in axes_location map
|
|
6c25c752
|
2023-07-17T13:47:38
|
|
[instancer] use renormalized values when instantiating Condition table
|
|
a5628848
|
2023-07-15T13:59:10
|
|
[subset] Speed up a couple of set iteration loops
Need to speed up set::next_range() for the second one to have
any effect.
|
|
87f1b80d
|
2023-06-25T23:14:01
|
|
[bimap] Write with a map & vector combo
Faster for getting keys.
Speeds up 10% in:
BM_subset/subset_glyphs/RobotoFlex-Variable.ttf/retaingids/10
|
|
ec0fbf8f
|
2023-06-23T16:13:13
|
|
[subset/ClassDef] Micro-optimize use_class_zero calc
Probably never matters.
|
|
67b16247
|
2023-06-07T16:15:48
|
|
[set] Simplify a few set iterations as range loop
|
|
82741304
|
2023-06-04T09:41:41
|
|
[subset] start_embed never returns nullptr
Remove checks.
|
|
ca27925d
|
2023-06-03T16:18:15
|
|
Use hb_codepoint_pair_t in more places
|
|
efc77dc6
|
2023-05-04T10:59:09
|
|
[instancer] update code for collecting FeatureVariationRecord
|
|
4ad443d5
|
2023-05-08T10:14:43
|
|
[Coverage/ClassDef] Don't call qsort if sorted already
|
|
8df5cdbc
|
2023-05-07T15:49:50
|
|
[Coverage/ClassDef] Handle glyphID overflow in serialize
|
|
86658df5
|
2023-05-05T16:10:46
|
|
[ClassDef] Fix a fuzzer issue
Don't qsort an array that failed to allocate!
Fixes https://oss-fuzz.com/testcase-detail/6512559172485120
|
|
1be39729
|
2023-05-04T13:18:34
|
|
[subset] Support unordered glyphlist in Coverage/ClassDef serialize
|
|
b9b85da3
|
2023-04-27T11:17:24
|
|
[instancer] no need to create hb_font_t object when fetching delta from varstore
|
|
f6803b06
|
2023-04-25T14:46:44
|
|
[VarRegionAxis] Micro-optimize
peak==0 is common.
|
|
f91929d6
|
2023-04-25T14:42:00
|
|
Minor return floats instead of doubles from function
Not that any compiler complained...
|
|
2175f5d0
|
2023-04-24T21:13:18
|
|
[subset] Fix inefficient ItemVariationStore subsetting w/ retain_gids.
ItemVariationStore is relying on the assumption that the inner_map is populated for all output glyphs, this is not true for subsetting operations with retain gids enabled. Fixes fuzzer timeout: https://oss-fuzz.com/testcase-detail/4575222591520768.
|
|
125450d2
|
2023-03-13T15:43:29
|
|
[subset] collect name_ids for FeratureParams
|
|
0f33ea8c
|
2023-01-27T11:26:57
|
|
[subset/COLR] Copy VarStore
Fixes https://github.com/harfbuzz/harfbuzz/issues/4085
|
|
2fede3ef
|
2023-01-26T12:23:12
|
|
[layout] Fix a return_trace
|
|
be8a87c4
|
2023-01-21T15:00:41
|
|
Move TRACE_DISPATCH after may_recurse()
Such that we don't get memory access issues if DEBUG_SANITIZE is
on and may_recurse() returns false.
|
|
65d3db37
|
2023-01-11T12:36:54
|
|
[subset-plan] Simplify user_axes_location allocation
|
|
60418fcb
|
2023-01-11T12:33:25
|
|
[subset-plan] Simplify axes_index_map allocation
|