|
6a449756
|
2025-08-18T18:52:02
|
|
[aat] Comment
|
|
04f1a435
|
2025-08-18T16:57:46
|
|
Add a typedef
|
|
ca66c646
|
2025-04-01T03:25:41
|
|
[aat] Better handle deleted-glyphs
1. Set their GDEF property. Probably irrelevant to morx shaping.
2. Add them to buffer contents, since that can trigger a state
machine start action too.
|
|
c2f8066b
|
2025-03-13T11:40:53
|
|
[aat] Fix another malloc-fail crasher
|
|
b57d2a20
|
2025-03-13T11:19:48
|
|
[aat] Fix a leak
|
|
d6f5cbdd
|
2025-03-13T10:59:41
|
|
[aat] Fix a compiler warning
|
|
64240602
|
2025-03-13T10:56:39
|
|
[aat] Fix memfail crash
|
|
7b8ae3d0
|
2025-03-13T10:44:40
|
|
[kern/kerx] Make zero-malloc
|
|
43d421d3
|
2025-03-12T23:36:09
|
|
[aat] Speed up deleted-glyph removal
|
|
c38d5187
|
2025-03-12T22:39:33
|
|
[aat/kerx] Fix initial-glyph collection logic
Test:
$ hb-shape GeezaPro.ttc --unicodes U+064A,U+064E,U+0651,U+0629
|
|
2449eb08
|
2025-03-12T21:03:24
|
|
[aat] Adjust filtering to match collect_glyphs()
|
|
45b2d28d
|
2025-03-12T19:18:12
|
|
Revert "[aat] Clear buffer glyph set"
This reverts commit b1a9219ac5ad1c159aecd9b2e3ffbc942433ba6d.
Was unnecessary. collect_codepoints() clears the set.
|
|
d76a23a3
|
2025-03-12T19:16:59
|
|
[aat] Micro-optimize
|
|
b1a9219a
|
2025-03-12T19:13:14
|
|
[aat] Clear buffer glyph set
Should be clear already but no harm.
|
|
0b62666e
|
2025-03-09T19:38:32
|
|
[aat/morx] Use a separate bit for deleted-glyphs
Should address:
https://github.com/harfbuzz/harfbuzz/pull/5119#issuecomment-2709170388
|
|
dc048b7c
|
2025-03-07T16:16:51
|
|
[aat/morx] Set glyph props consistently
|
|
4ec560dd
|
2025-03-07T16:14:24
|
|
[aat/morx] Refactor all glyph replacements into the context
|
|
6091abcc
|
2025-02-06T02:40:24
|
|
[buffer] Avoid a copy in collect_codepoints()
|
|
e5e3bc40
|
2025-02-06T02:36:26
|
|
[buffer] Merge two functions into a template
|
|
942a30b7
|
2025-02-05T14:21:49
|
|
[aat] Remove now-unused code
|
|
44281b28
|
2025-02-05T14:19:01
|
|
[aat] Back to simplified heuristic
Performs overall better.
|
|
b857b21a
|
2025-02-05T13:15:15
|
|
[morx] Try using buffer-glyph-set adaptive to number of chains
|
|
491c8c4e
|
2025-02-05T13:00:09
|
|
Revert "[aat] Change threshold from 4 to 16"
This reverts commit 624d6edfe4a4b854cf5e66c3fdeb6fc2e1916e14.
Some other benchmarks see better results for 4. Let's leave at that.
|
|
624d6edf
|
2025-02-05T12:45:57
|
|
[aat] Change threshold from 4 to 16
Still worth it it seems.
|
|
a26cf0f4
|
2025-02-05T12:41:40
|
|
[aat] Fix regression in performance of shaping tiny strings
|
|
cec5c571
|
2025-02-05T12:37:50
|
|
[aat] Refactor a method
|
|
cd5dfc6d
|
2025-02-05T12:32:02
|
|
[kerx] Use hb_bit_set_t instead of hb_set_t
|
|
d40c079f
|
2025-02-05T12:30:56
|
|
[morx] Use hb_bit_set_t instead of hb_set_t directly
|
|
fc825168
|
2025-02-05T11:17:18
|
|
[aat] Remove idempotent check
Not necessary after the recent filtering.
Another 10% speedup with LucidaGrande.
|
|
849b1735
|
2025-02-05T11:05:29
|
|
[aat] Divide the logic of is_actionable() into two
The two different uses require different logic. I had combined
the two logic into one in 37bfdf79c66ffbe4a5f02dbbc13756865ca11c1e
|
|
b4787838
|
2025-02-05T10:52:26
|
|
[aat] Speed up per-machine initial-glyph-set calculation
Use a bit-page instead of a full hb-set.
|
|
6215d68b
|
2025-02-05T10:43:24
|
|
[aat] Minor tweak to logic
DELETED_GLYPH can also initiate action.
|
|
37bfdf79
|
2025-02-05T02:08:19
|
|
[morx] Only collect glyphs that can initiate action in the machine
And match them against the buffer glyph_set.
4% speedup in LucidaGrande.
|
|
d9e99baa
|
2025-02-05T02:06:59
|
|
[aat] Move is_actionable outside of the driver_context
|
|
5ade5bab
|
2025-02-05T01:53:09
|
|
[aat] Move Flags out of driver_context_t
|
|
9f38690e
|
2025-02-05T01:39:28
|
|
[aat] Remove another unused parameter
One logic change, but should be fine.
|
|
d9058c64
|
2025-02-05T01:38:06
|
|
[aat] Remove an unused parameter
|
|
e5bdba0b
|
2025-02-04T23:03:23
|
|
[aat] Rename a variable
|
|
474bef1c
|
2025-02-04T19:17:13
|
|
[aat] Use exact set for buffer intersection versus subchains
|
|
3a1d7ee7
|
2025-02-04T17:33:42
|
|
[aat] Remove the buffer-digest threshold
This can help us skip entire subchains, eg. when they are for
different scripts.
Speeds up LucidaGrande with ASCII text by 20%.
|
|
e1cb3b15
|
2025-02-04T17:28:29
|
|
Revert "[aat] Remove set-digest"
This reverts commit 832f199607292a41b4621b87a646c30cddc00124.
|
|
359d163d
|
2025-02-04T17:11:46
|
|
Revert "[aat] Remove buffer-digest stuff"
This reverts commit 7642366593826c0e04ad58df83fa63ec53960486.
|
|
7d23e642
|
2025-02-04T17:11:13
|
|
Revert "[aat] Remove dead code"
This reverts commit bf36f5c3a4ff0003d330e2c2fc410c0cde911cba.
|
|
d1099476
|
2025-02-04T17:12:23
|
|
Revert "[aat] Remove unused macro"
This reverts commit 2ddcccd26ea4962a97ba6858952a5a71d032e6c1.
|
|
2ddcccd2
|
2025-02-04T17:05:45
|
|
[aat] Remove unused macro
|
|
9cf2ea3e
|
2025-02-04T13:34:31
|
|
Merge branch 'kern-set'
|
|
bf36f5c3
|
2025-02-04T13:32:31
|
|
[aat] Remove dead code
|
|
76423665
|
2025-02-04T13:19:43
|
|
[aat] Remove buffer-digest stuff
With both morx & kerx sped up now using cache / set, this is not
beneficial anymore. Remove it.
|
|
9a4601b0
|
2025-02-04T13:14:04
|
|
[kern/kerx] Use hb-set-t for left/right, to guard bsearch
Use a set of all left glyphs participating in kerning, and all
right glyphs participating in kerning, and use these two to weed
out non-kerning pairs before bsearching into the kerns.
Speeds up shaping of HelveticaNeue by ~10%.
|
|
ee4ca63b
|
2025-02-03T13:23:08
|
|
[aat] Micro-optimize
|
|
ed37725e
|
2025-02-03T12:59:58
|
|
[aat] Micro-optimize get_class
|
|
91572945
|
2025-02-02T18:25:45
|
|
[aat] More delambda
Again, this was costly.
|
|
556eb029
|
2025-02-02T18:19:32
|
|
[aat] Remove a lambda
This lambda was added to "simplify" the logic. But has a lot of overhead.
|
|
7b44a94a
|
2025-02-02T17:33:46
|
|
[aat] Shrink cache to 256 bytes per subtable
|
|
b89ab7d0
|
2025-02-02T17:08:20
|
|
[aat] Shrink the class cache to be 512 bytes instead of 1kb
|
|
4fb0ac77
|
2025-02-02T17:06:45
|
|
[aat] Minor simplify
|
|
832f1996
|
2025-02-02T17:04:06
|
|
[aat] Remove set-digest
Now that we have a class cache, this was just speeding things down.
|
|
0e13e781
|
2025-02-02T16:50:04
|
|
[aat] Add a class-cache to the machine
Speeds up Times.ttc benchmark by 20%.
|
|
13844848
|
2025-02-02T11:56:01
|
|
[aat] Typo
|
|
7a890c2e
|
2024-09-22T13:19:02
|
|
Add hb_barrier() to switches of unions
https://github.com/harfbuzz/harfbuzz/pull/4864#issuecomment-2366923736
|
|
1da053e8
|
2024-05-13T16:44:50
|
|
[aat] Remove unused template parameter
|
|
fbcfc198
|
2024-05-13T15:49:00
|
|
[aat] Change buffer-digest threshold to 32
|
|
3ff9ebc8
|
2024-05-13T14:46:55
|
|
[aat] For short words, use buffer digest to skip morx subtables
Shows 3 / 4% speedup in en-words test case with Helvetica Neue.
|
|
c9d6bbcf
|
2024-05-13T14:54:11
|
|
[aat] Minor don't copy variable
|
|
9ea29789
|
2024-05-13T14:43:47
|
|
[aat] Minor
|
|
e2ab6c7b
|
2024-05-12T15:25:13
|
|
[kern/kerx] Add accelerator and set-digest filtering
|
|
23e4a3cf
|
2024-05-12T10:49:46
|
|
[aat/morx] Add an accelerator
|
|
0828ccc5
|
2024-05-12T10:06:06
|
|
[aat] Move buffer out of StateTableDriver
|
|
5a405b31
|
2024-05-11T10:03:47
|
|
[aat] First sketch at using hb_set_digest_t
They are not cached in an accelerator yet.
|
|
c053e8f2
|
2024-04-11T08:58:49
|
|
[aat] Simplify (or not?) SubtableGlyphCoverage.sanitize()
|
|
d137d557
|
2024-04-11T08:53:17
|
|
[aat] Add (unused) SubtableGlyphCoverage
|
|
d8d2a98b
|
2024-04-11T07:45:41
|
|
[aat] Whitespace
|
|
3a9262cc
|
2023-11-04T12:52:46
|
|
[sanitize] More hb_barrier() annotations
|
|
978918c3
|
2023-09-11T11:04:08
|
|
[aat] Simplify complex condition
Based on https://github.com/RazrFalcon/rustybuzz/discussions/79#discussioncomment-6960324
|
|
4353192d
|
2023-04-21T11:59:15
|
|
[aat] Tweak a couple sanitize calls that are never called
|
|
dd42939e
|
2023-01-10T13:23:19
|
|
[aat] Reduce unsafe_to_concat calls
|
|
8b17c6ca
|
2023-01-10T12:17:38
|
|
[aat] Comment
|
|
0e11d317
|
2023-01-10T12:16:04
|
|
[aat] Optimize feature application
|
|
a70543da
|
2023-01-10T11:49:48
|
|
[aat] Always unsafe-to-concat in state machine
|
|
e28c158c
|
2023-01-10T11:03:38
|
|
[aat] Run subtable across ranges if flags match
|
|
2c9c49fd
|
2023-01-10T10:53:21
|
|
[aat] Support ranges in NonContextual subtable as well
|
|
db4c8747
|
2023-01-09T21:32:15
|
|
Revert "Revert "[aat] Support feature ranges""
This reverts commit 6a7a38521f940216f1e9e2fa2bf22f7b45ce2aef.
|
|
6a7a3852
|
2023-01-09T21:29:19
|
|
Revert "[aat] Support feature ranges"
This reverts commit 1b7994cb3a3c35f3618d7f40c7289496bdab6f06.
Broke Zapfino with partial ligature disabling. Debugging.
|
|
1b7994cb
|
2023-01-09T19:38:50
|
|
[aat] Support feature ranges
The hard way...
A bit uglier than I liked it to be, but is proper at least.
Fixes https://github.com/harfbuzz/harfbuzz/issues/4020
|
|
622a6869
|
2023-01-09T18:14:40
|
|
Revert "Revert "Revert "[aat] Allow disable feature ranges"""
This reverts commit 5202053c2c5fb2c8af9704e690b25a26bf2a0295.
|
|
5202053c
|
2023-01-09T17:29:43
|
|
Revert "Revert "[aat] Allow disable feature ranges""
This reverts commit 82b3e8af69b09fd908d1cd27b669234328d4a500.
Another try.
Fixes https://github.com/harfbuzz/harfbuzz/issues/4020
|
|
82b3e8af
|
2023-01-09T17:28:52
|
|
Revert "[aat] Allow disable feature ranges"
This reverts commit 24a4d397bae6b614215086c85a714dc789af3e7f.
This was broken.
|
|
24a4d397
|
2023-01-09T17:26:08
|
|
[aat] Allow disable feature ranges
Fixes https://github.com/harfbuzz/harfbuzz/issues/4020
This is a hack.
To implement this properly we need to treat runs with different features
as independent runs for running the state machine, as the subtable flags
might be different. That would be a significant change to our internal
implementation.
|
|
1e503f58
|
2022-07-05T15:44:58
|
|
[null] Add DECLARE_NULL_NAMESPACE_BYTES_TEMPLATE1
|
|
534b0911
|
2022-07-01T16:20:31
|
|
[aat-layout] Add an unlikely()
|
|
c69ec6f5
|
2022-06-29T16:32:30
|
|
[kern2] Fix sanitize issue on 32bit systems
Fixes https://github.com/harfbuzz/harfbuzz/issues/3483
|
|
bea5369c
|
2022-01-04T10:52:05
|
|
[buffer] Rename swap_buffers() to sync()
|
|
6d555ce8
|
2021-11-02T00:18:22
|
|
[meta] Use std::forward instead of hb_forward()
|
|
c852b868
|
2021-09-19T16:30:12
|
|
Rename HBGlyphID to HBGlyphID16
|
|
4f1e8d2b
|
2021-05-05T11:11:43
|
|
[aat] Update glyph properties from GDEF if available when doing a replacement.
|
|
5639e253
|
2021-03-31T16:04:43
|
|
Add Array16Of<>
|
|
ad28f973
|
2021-03-31T12:49:14
|
|
Rename offset types to be explicit about their size
Add Offset16To<>, Offset24To<>, and Offset32To<> for most use-cases.
|
|
29708e95
|
2021-03-22T15:22:15
|
|
[aat] Fix offsetToIndex math for out-of-bounds values
Previously, some bad font data was accidentally being interpretted as
legit if it happened to not fall out of memory bounds. The intention
of the code was what this commit does. I'm surprised we weren't getting
a "arithmetic between signed and unsigned values" warning / error
before.
|
|
8450f43a
|
2021-03-15T15:18:06
|
|
[buffer] HB_NODISCARD next_glyph()
|
|
567cedcc
|
2021-02-22T22:09:15
|
|
Narrow down cast operators on IntType
Say for USHORT, we were implementing casts from and to unsigned.
With this change, we cast from and to uint16_t only. This allows
compiler more opportunities to catch possible narrowing issues in
the code.
It needed a couple of fixes in the codebase though, because
previously, if a USHORT was participating in arithmetic with signed
numbers, eg. "u + 1", the result would have been unsigned. With
this change, it would be signed. The correct fix is to update the
code to read "u + 1u".
That said, I think about conditionally adding back the cast
out to signed/unsigned, to facilitate better type deduction.
But I couldn't think of a real situation where that would help
with anything. So I didn't add. Here's what it was:
template <typename Type2 = hb_conditional<hb_is_signed (Type), signed, unsigned>,
hb_enable_if (sizeof (Type) < sizeof (Type2))>
operator hb_type_identity_t<Type2> () const { return v; }
https://github.com/harfbuzz/harfbuzz/pull/2875
|