|
0952bc0a
|
2025-09-26T09:10:28
|
|
[subset] de-duplicate features (#5494)
|
|
cf6c9d8a
|
2025-09-13T13:49:56
|
|
[instancer/varstore] Put back sort again
In testing with GoogleSansFlex, this produces slightly smaller
result.
|
|
c7e46ab2
|
2025-09-13T12:54:18
|
|
[instancer/varstore] Avoid copies in loops
|
|
a4a50892
|
2025-09-12T23:41:40
|
|
[instancer/varstore] Speed up encoding merging
Don't recalculate chars from all row data.
|
|
f0a1289a
|
2025-09-12T19:25:57
|
|
[instancer/varstore] Massage optimizer a bit
|
|
a878dca0
|
2025-09-12T19:19:07
|
|
[instancer/varstore] Remove sorting from the optimizer
Just work with incoming order.
|
|
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.
|
|
d8c1bce2
|
2025-09-12T14:39:38
|
|
[instancer/varstore] Mark a function HOT
|
|
3965e9a6
|
2025-09-12T13:12:05
|
|
[instancer/varstore] Change sort key (#5540)
See https://github.com/harfbuzz/harfbuzz/pull/5540
|
|
c9480db9
|
2025-09-12T12:22:17
|
|
[instancer/varstore] Add a heuristic to speed up optimization
|
|
0f1dab0f
|
2025-09-12T11:43:21
|
|
[instancer/varstore] More gain_from_merging optimization (#5543)
* [instancer/varstore] More gain_from_merging optimization
* [tests] Re-enable a test that was disabled until an issue fixed
See comment.
|
|
ca9a8aba
|
2025-09-12T03:50:46
|
|
Revert "[instancer/varstore] Micro-optimize"
This reverts commit 7484eb5807d6127bea6b888a7d8fdad1b73a8c0b.
|
|
7484eb58
|
2025-09-12T03:16:59
|
|
[instancer/varstore] Micro-optimize
|
|
14e7d5b2
|
2025-09-12T03:04:59
|
|
[instancer/varstore] Speed up gain_from_merging
10% speedup instancing GoogleSansFlex.
|
|
006ec160
|
2025-09-12T02:52:29
|
|
[instancer/varstore] Minor refactor in anticipation of next change
|
|
12c46237
|
2025-09-12T00:05:37
|
|
Revert "[instancer/varstore] Change chars_t storage scheme"
This reverts commit aaeea5729b97813eb71b1d809212534a77436ca2.
|
|
aaeea572
|
2025-09-11T23:52:44
|
|
[instancer/varstore] Change chars_t storage scheme
Slows down. Gonna revert.
Apparently builtin popcount is not fast unless built for archs that
support it.
|
|
3dc5e3d6
|
2025-09-11T23:27:51
|
|
[instancer/varstore] Consolidate chars_t logic
|
|
9d971169
|
2025-09-11T23:10:50
|
|
[instancer/varstore] Add a chars_t type
|
|
266e1c24
|
2025-09-11T20:12:39
|
|
[instancer] Short-circuit some work in gain_from_merging
|
|
a34f8b31
|
2025-09-11T19:10:05
|
|
[instancer] Use bitset instead of vector for VarStore optimizer columns
~30% faster on GoogleSansFlex.
|
|
23e40cd7
|
2025-09-11T16:53:44
|
|
[instancer] Reduce mallocs in gain_from_merging
|
|
b7c55efe
|
2025-08-26T00:28:12
|
|
[subset] Fix shaping behaviour when pruning empty mark sets
See https://github.com/harfbuzz/harfbuzz/issues/5499
|
|
7b56d3a1
|
2025-07-26T05:35:57
|
|
[ot-layout] s/hb_ot_lookup_cache_t/hb_ot_layout_mapping_cache_t/g
|
|
a220479f
|
2025-07-26T06:10:31
|
|
Remove std::forward inside loops (#5424)
* [iter,cff] Remove std::forward from inside loops
Was moving multiple times, if args were movable.
* [CPAL] Handle an error
* [serialize] Remove another std::forward in a loop
* [bit-page] Fix a static-analysis out-of-range warning
Code was safe. Just rewrite.
* [ot-layout] Remove another std::forward from inside a loop
|
|
675f8ee6
|
2025-07-24T21:46:11
|
|
[scalar-cache] Fix sanitizer whining
Fixes https://github.com/harfbuzz/harfbuzz/issues/5410
|
|
fc86cd92
|
2025-07-20T10:39:29
|
|
[DeltaIndexMap] Add a HB_HOT
|
|
bc51ad67
|
2025-07-20T02:58:47
|
|
[DeltaIndexMap] Micro-optimize
|
|
a6f20aa4
|
2025-07-20T02:43:54
|
|
[VarData] Optimize get_delta if column-count is zero
This is common in certain workloads.
|
|
5dbb8141
|
2025-07-11T08:58:01
|
|
[subset] AnchorFormat3: better check for when should downgrade to format1
|
|
47089fe7
|
2025-05-28T17:10:22
|
|
Big misc changes
- Make geometry types into templates taking float or double.
- Changes to paint() transform elimination.
- Add font->has_nonzero_coords and use it across.
- Extensions to avar processing for otherwise invalid mappings.
|
|
8eb2f07c
|
2025-05-26T13:21:25
|
|
Merge branch 'main' into HVF
|
|
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!
|
|
a13fd9ae
|
2025-05-21T12:23:19
|
|
Merge branch 'main' into HVF
|
|
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
|
|
bf3dd7b9
|
2025-04-07T16:37:08
|
|
Merge branch 'main' into HVF
|
|
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
|