Commit graph

17858 commits

Author SHA1 Message Date
Behdad Esfahbod
acd122d030 [gsubgpos] Prepare for per-lookup allocated caches 2025-02-05 19:18:25 +00:00
Behdad Esfahbod
3f40edbfa0 [ClassDef] Add ability to use a cache 2025-02-05 19:18:25 +00:00
Behdad Esfahbod
7392f32e47 [face] Tweak stack again
Let's go with one loop iteration. It's cheap.
2025-02-05 19:16:08 +00:00
Behdad Esfahbod
515b6a58d9 [face] Minor stack var size change 2025-02-05 19:13:19 +00:00
Behdad Esfahbod
601dd1a748 [face-builder] Fix an OOM issue
Fixes https://oss-fuzz.com/testcase-detail/5721476158521344
2025-02-05 19:10:41 +00:00
Behdad Esfahbod
c05002afb8 [set] Add may_have() as alias for get() 2025-02-05 16:46:13 +00:00
Behdad Esfahbod
ad7f428be4 [set-digest] Comment 2025-02-05 16:44:04 +00:00
Behdad Esfahbod
900db7b1bd [bit-set] Add a couple of alias methods 2025-02-05 16:41:49 +00:00
Behdad Esfahbod
942a30b7df [aat] Remove now-unused code 2025-02-05 14:21:49 +00:00
Behdad Esfahbod
44281b2856 [aat] Back to simplified heuristic
Performs overall better.
2025-02-05 14:19:01 +00:00
Behdad Esfahbod
dc8da6129f
Merge pull request #5042 from harfbuzz/aat-regression
[aat] Fix performance regression
2025-02-05 14:12:55 +00:00
Behdad Esfahbod
b857b21a45 [morx] Try using buffer-glyph-set adaptive to number of chains 2025-02-05 13:50:09 +00:00
Behdad Esfahbod
491c8c4e10 Revert "[aat] Change threshold from 4 to 16"
This reverts commit 624d6edfe4.

Some other benchmarks see better results for 4. Let's leave at that.
2025-02-05 13:00:09 +00:00
Behdad Esfahbod
624d6edfe4 [aat] Change threshold from 4 to 16
Still worth it it seems.
2025-02-05 12:46:25 +00:00
Behdad Esfahbod
a26cf0f409 [aat] Fix regression in performance of shaping tiny strings 2025-02-05 12:41:40 +00:00
Behdad Esfahbod
cec5c57130 [aat] Refactor a method 2025-02-05 12:39:22 +00:00
Behdad Esfahbod
cd5dfc6dbe [kerx] Use hb_bit_set_t instead of hb_set_t 2025-02-05 12:33:00 +00:00
Behdad Esfahbod
d40c079fed [morx] Use hb_bit_set_t instead of hb_set_t directly 2025-02-05 12:30:56 +00:00
Behdad Esfahbod
7b9277486f [bit-set] Rename a method 2025-02-05 12:25:54 +00:00
Behdad Esfahbod
b44f6ff5fe [perf/texts] Add a list of just 2letter strings 2025-02-05 12:19:48 +00:00
Behdad Esfahbod
f738534042
Merge pull request #5041 from harfbuzz/aat-machine-initial
[morx] Only collect glyphs that can initiate action in the machine
2025-02-05 12:19:30 +00:00
Behdad Esfahbod
fc825168d0 [aat] Remove idempotent check
Not necessary after the recent filtering.

Another 10% speedup with LucidaGrande.
2025-02-05 11:17:34 +00:00
Behdad Esfahbod
849b17351e [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 37bfdf79c6
2025-02-05 11:15:36 +00:00
Behdad Esfahbod
b4787838e4 [aat] Speed up per-machine initial-glyph-set calculation
Use a bit-page instead of a full hb-set.
2025-02-05 10:52:26 +00:00
Behdad Esfahbod
7d14eb5eb3 [aat] Minor rename 2025-02-05 10:46:28 +00:00
Behdad Esfahbod
6215d68b69 [aat] Minor tweak to logic
DELETED_GLYPH can also initiate action.
2025-02-05 10:43:24 +00:00
Behdad Esfahbod
dc4ff7012c [bit-page] Add a couple of operators 2025-02-05 10:42:33 +00:00
Behdad Esfahbod
37bfdf79c6 [morx] Only collect glyphs that can initiate action in the machine
And match them against the buffer glyph_set.

4% speedup in LucidaGrande.
2025-02-05 10:38:24 +00:00
Behdad Esfahbod
d9e99baa9a [aat] Move is_actionable outside of the driver_context 2025-02-05 02:06:59 +00:00
Behdad Esfahbod
5ade5bab01 [aat] Move Flags out of driver_context_t 2025-02-05 01:53:09 +00:00
Behdad Esfahbod
9f38690e8e [aat] Remove another unused parameter
One logic change, but should be fine.
2025-02-05 01:39:28 +00:00
Behdad Esfahbod
d9058c64e0 [aat] Remove an unused parameter 2025-02-05 01:38:06 +00:00
Behdad Esfahbod
1a2780735c [array] Micro-optimize 2025-02-05 00:35:40 +00:00
Behdad Esfahbod
c87bfe410b [morx] Reuse a variable 2025-02-05 00:22:27 +00:00
Behdad Esfahbod
e99e6538d9 [aat-map] Micro-optimize a malloc 2025-02-05 00:08:29 +00:00
Behdad Esfahbod
3e27038fca [aat-map] Micro-optimize 2025-02-04 23:39:42 +00:00
Behdad Esfahbod
7f5fac7c87 [test-buffer] Fix unintionally merged change 2025-02-04 23:35:34 +00:00
Behdad Esfahbod
f0ead85283 [aat] Implement set filtering for Noncontextual chains as well 2025-02-04 23:30:30 +00:00
Behdad Esfahbod
e5bdba0b3c [aat] Rename a variable 2025-02-04 23:03:23 +00:00
Behdad Esfahbod
cb09fe7995 [bit-set] Remove a likely() 2025-02-04 22:54:10 +00:00
Behdad Esfahbod
749dc1eee0 [bit-set] Fix may_intersect() logic 2025-02-04 22:53:17 +00:00
Behdad Esfahbod
b30c65e271
Merge pull request #5040 from harfbuzz/aat-set
[aat] Speed up subchain skipping using exact sets
2025-02-04 22:48:58 +00:00
Behdad Esfahbod
22a21e81a0 [aat] Fix a crash 2025-02-04 22:30:42 +00:00
Behdad Esfahbod
275fb565bb [morx] Clean up memory 2025-02-04 22:30:42 +00:00
Behdad Esfahbod
255dadc152 [set] Speed up may_intersect() 2025-02-04 22:30:42 +00:00
Behdad Esfahbod
a617328005 [bit-set] Sprinkle a few .arrayZ around
All accesses are valid.
2025-02-04 22:30:42 +00:00
Behdad Esfahbod
7862c7c5e1 Rename a method again 2025-02-04 22:30:42 +00:00
Behdad Esfahbod
474bef1cfd [aat] Use exact set for buffer intersection versus subchains 2025-02-04 22:30:42 +00:00
Behdad Esfahbod
95eefa38f6 [set] Add a brute-force intersects(other_set) 2025-02-04 22:30:42 +00:00
Behdad Esfahbod
80bbb0b2e9 [set-digest] Rename a method 2025-02-04 22:30:32 +00:00