|
be22e43d
|
2025-02-09T14:55:44
|
|
[test/fuzzing] Run each fuzzer on all fonts in one process
Much much faster, specially under valgrind, than spawning one process per font.
Fixes https://github.com/harfbuzz/harfbuzz/issues/5061
|
|
b5e07e75
|
2025-02-09T14:04:20
|
|
Merge pull request #5060 from harfbuzz/glyf-contour-start-match-ft-ct
[glyf] Change drawing algorithm to match FreeType / CoreText
|
|
6738ee3d
|
2025-02-09T13:30:19
|
|
[ci/fedora-valgrind] Add time multiplier of 10 and run slow tests
|
|
fc4d5077
|
2025-02-09T13:28:45
|
|
[hb-draw-fuzzer] Increase test time
I'm getting timeouts. Might be an infinite loop. But let's see.
|
|
4b54ee11
|
2025-02-09T12:38:58
|
|
[glyf] Change drawing algorithm to match FreeType / CoreText
|
|
f858def1
|
2025-02-09T13:07:20
|
|
Revert "[test] Exclude google-benchmark tests by default if meson "recent""
This reverts commit 3c975a857f76c421793d62aaed1ba3382d06994d.
See https://github.com/harfbuzz/harfbuzz/issues/4153#issuecomment-2646149763
|
|
f68193a0
|
2025-02-09T11:43:07
|
|
[glyf] Use direct access to points array
Not necessary faster. Prep'ing for next change.
|
|
19a152b4
|
2025-02-09T12:37:03
|
|
[perf] Don't depend on libharfbuzz-subset for most benchmarks
|
|
3c975a85
|
2025-02-09T08:58:55
|
|
[test] Exclude google-benchmark tests by default if meson "recent"
https://github.com/harfbuzz/harfbuzz/issues/4153#issuecomment-2646131694
|
|
cb6779f9
|
2025-02-09T08:39:03
|
|
[test] Try running slow tests early
Probably already happens, but this wouldn't hurt.
https://github.com/harfbuzz/harfbuzz/issues/4153#issuecomment-2646125367
|
|
134eef55
|
2025-02-09T08:22:38
|
|
[test] Reorder test suites
Makes it a bit faster.
https://github.com/harfbuzz/harfbuzz/issues/4153#issuecomment-2646120679
|
|
c55738fa
|
2025-02-09T08:08:52
|
|
[test] Set MALLOC_CHECK_ to 1 instead of 2; kill G_SLICE=always-malloc
MALLOC_CHECK_=2 makes running tests twice slower on macOS. Value 1
is as fast as not checking at all. It's not like this ever caught
a bug for us or anything. We have so many sanitizers and fuzzers
funning on CI, which catch all kinds of memory problems.
G_SLICE is long gone in glib.
The slowest part of running the test suite now is the google-benchmark
tests, that get run by us... I'll see if I can disable. I had reported
it before at https://github.com/harfbuzz/harfbuzz/issues/4153
|
|
b13017e6
|
2025-02-09T08:00:18
|
|
Use HB_ALWAYS_INLINE instead of bare __attribute__
The former works on MSVC too.
|
|
ee19666c
|
2025-02-09T05:14:36
|
|
[hb-shape/view] Allow --unicodes and --text if at least one is empty
Useful for scripting.
|
|
5cab7419
|
2025-02-09T04:56:12
|
|
Merge pull request #5058 from harfbuzz/ot-font-trak
[ot-font/trak] Move trak application to ot-font instead of ot-shape
|
|
922a56f4
|
2025-02-09T04:50:17
|
|
[trak] Fix configs build
|
|
17c11ec5
|
2025-02-09T04:46:29
|
|
[ft/trak] Apply trak in ft-font-funcs as well
Part of https://github.com/harfbuzz/harfbuzz/issues/5049
|
|
ffae5b04
|
2025-02-09T04:39:32
|
|
[ot-font/trak] Move trak application to ot-font instead of ot-shape
This is what CoreText does.
Fixes https://github.com/harfbuzz/harfbuzz/issues/5049
|
|
f840480f
|
2025-02-09T04:27:20
|
|
[trak] Remove leftover
|
|
be287eab
|
2025-02-09T04:18:31
|
|
[trak] Don't shift glyphs
That's what CoreText does and fonts are designed for. Who are we to improve on...
|
|
1150d4bf
|
2025-02-09T04:16:57
|
|
[trak] Remove support for disabling using pseudo-font-feature
Fixes https://github.com/harfbuzz/harfbuzz/issues/5052
|
|
4c06c3d6
|
2025-02-09T04:01:59
|
|
Merge pull request #5057 from harfbuzz/coretext-font-nonbmp
[coretext-font] Support non-BMP characters
|
|
fb222953
|
2025-02-09T03:56:46
|
|
[coretext-font] Support non-BMP in variation-selector callback
Fixes https://github.com/harfbuzz/harfbuzz/issues/5056
|
|
f6bf9f69
|
2025-02-09T03:52:13
|
|
[coretext-font] Do early-return in get_nominal_glyphs()
Related to https://github.com/harfbuzz/harfbuzz/issues/5056
|
|
c5e6c885
|
2025-02-09T03:49:01
|
|
[coretext-font] Support non-BMP chars in get_nominal_glyph(s)
Part of https://github.com/harfbuzz/harfbuzz/issues/5056
|
|
b9675d6d
|
2025-02-09T03:01:21
|
|
Merge pull request #5055 from harfbuzz/trak-interpolate
[trak] Interpolate between tracks
|
|
a70a30dd
|
2025-02-09T02:55:48
|
|
[trak] Interpolate between tracks
Fixes https://github.com/harfbuzz/harfbuzz/issues/5054
According to Ned, this is what CoreText does.
Should add tests some time...
|
|
1bf0a5bc
|
2025-02-09T02:43:09
|
|
[trak] Streamline a bit
Also use float math.
|
|
b1677e76
|
2025-02-09T01:56:03
|
|
[trak] Handle "out-of-range" values better
If requested size < min-size, use the value for min-size.
If requested size > max-size, use the value for max-size.
This is the only way that makes sense. Extrapolating as we were
doing, is just wrong...
This also seems to match what CoreText does.
Adjacent to fixing https://github.com/harfbuzz/harfbuzz/issues/5054
|
|
691cc939
|
2025-02-06T20:08:16
|
|
[trak] Fix build without STAT
|
|
b8327fe6
|
2025-02-06T20:01:12
|
|
Fix compiler errors
|
|
f394206b
|
2025-02-06T19:48:56
|
|
[ot-shape] Only apply trak'ing if STAT table present
|
|
6e0dd811
|
2025-02-06T17:26:27
|
|
[trak] Default ptem to 12
That's what CoreText does.
https://developer.apple.com/documentation/coretext/ctfontcreatewithgraphicsfont(_:_:_:_:)
Fixes https://github.com/harfbuzz/harfbuzz/issues/5048
|
|
ef00ac8c
|
2025-02-06T17:44:55
|
|
Merge pull request #5051 from harfbuzz/trak-choose
[trak] Choose closest trak track to 0.0
|
|
6a37a652
|
2025-02-06T17:40:10
|
|
[trak] Choose closest trak track to 0.0
Seems to be what CT does. Needs more testing to adjust better, but
for now it's better than before.
|
|
8efd2d85
|
2025-02-06T14:38:09
|
|
[coretext] Fix CGFont leak
|
|
b5327faf
|
2025-02-06T14:26:37
|
|
Fix leak
From recent work.
|
|
24fe2be9
|
2025-02-06T11:55:23
|
|
[subset] Fix undefined-behavior
|
|
97db7bb2
|
2025-02-06T11:01:59
|
|
[set-digest] Cosmetic
|
|
f0d6a366
|
2025-02-06T02:51:50
|
|
[face] Use a macro
|
|
7bdc6c9a
|
2025-02-06T02:47:13
|
|
Whitespace
|
|
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
|
|
403f12f7
|
2025-02-06T02:33:41
|
|
[buffer] A few always-inline's
|
|
4818ba9e
|
2025-02-06T01:50:12
|
|
[set-digest] Yet another tuning
Saves 5% on SF Pro while regressing 2% on Roboto.
|
|
c7378294
|
2025-02-06T01:42:25
|
|
[OT] Remove likely() from coverage check
Not that it matters, but because of the set-digest, this path
is not very likely() anymore.
|
|
3577992a
|
2025-02-06T01:30:59
|
|
[gsubgpos] Simplify a destruction
|
|
d0d256bb
|
2025-02-06T01:26:33
|
|
[bit-page] Move a couple methods around
|
|
a4cd11de
|
2025-02-06T01:10:40
|
|
[bit-page] Micro-optimize
|
|
0a678a92
|
2025-02-06T01:02:44
|
|
Fix leak
|
|
cad264b2
|
2025-02-06T00:56:16
|
|
Indent
|
|
63c92d5a
|
2025-02-06T00:52:41
|
|
[set-digest] always-inline
|
|
d712a028
|
2025-02-06T00:43:10
|
|
[set-digest] Back to a 3-entry, with different parameters now
We used to use 4,0,9 for years. Now 3,0,6. It is slightly faster
and shouldn't regress common fonts. The rationale is that OT
GSUB/GPOS are split by script, so any particular script is not
likely to use more than a few thousands of (consecutive mostly)
glyphs. The exception is CJK of course, but those have less
GSUB/GPOS work.
|
|
f5fe66cf
|
2025-02-06T00:36:58
|
|
[set-digest] Minor sanity
|
|
4e75dfae
|
2025-02-05T23:57:37
|
|
Hide unused member
|
|
99043f20
|
2025-02-05T20:11:27
|
|
[gsubgpos] Tweak cache again
|
|
69057e6e
|
2025-02-05T19:50:38
|
|
[Ligature] Cache coverage the same way as PairPos1
Another 7% down on Roboto-Regular.
|
|
3975e220
|
2025-02-05T19:44:08
|
|
Merge branch 'pairpos-cache'
|
|
e535c683
|
2025-02-05T19:41:03
|
|
[Context] Simplify cache costing
|
|
7a746c32
|
2025-02-05T19:38:25
|
|
[Coverage] Fix cache cost reporting
|
|
9a15e0e6
|
2025-02-05T19:37:27
|
|
Merge pull request #5043 from harfbuzz/pairpos-cache
[OT] PairPos cache
|
|
5be62a9f
|
2025-02-05T19:30:01
|
|
[PairPosFormat1] Use a coverage cache as well
Speeds up Arial shaping by 3%.
|
|
726af2e4
|
2025-02-05T18:10:40
|
|
[PairPos] Use a class cache
10% speedup on Roboto-Regular. 5% on SF Pro.
|
|
acd122d0
|
2025-02-05T17:38:39
|
|
[gsubgpos] Prepare for per-lookup allocated caches
|
|
3f40edbf
|
2025-02-05T17:25:27
|
|
[ClassDef] Add ability to use a cache
|
|
f22943a2
|
2025-02-05T18:51:11
|
|
[PairPos] Cache coverage as well
Another 3% down in Roboto-Regular.
|
|
7392f32e
|
2025-02-05T19:16:08
|
|
[face] Tweak stack again
Let's go with one loop iteration. It's cheap.
|
|
515b6a58
|
2025-02-05T19:13:19
|
|
[face] Minor stack var size change
|
|
601dd1a7
|
2025-02-05T19:10:41
|
|
[face-builder] Fix an OOM issue
Fixes https://oss-fuzz.com/testcase-detail/5721476158521344
|
|
c05002af
|
2025-02-05T16:46:13
|
|
[set] Add may_have() as alias for get()
|
|
ad7f428b
|
2025-02-05T16:44:04
|
|
[set-digest] Comment
|
|
900db7b1
|
2025-02-05T16:41:49
|
|
[bit-set] Add a couple of alias methods
|
|
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.
|
|
dc8da612
|
2025-02-05T14:12:55
|
|
Merge pull request #5042 from harfbuzz/aat-regression
[aat] Fix performance regression
|
|
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
|
|
7b927748
|
2025-02-05T12:25:54
|
|
[bit-set] Rename a method
|
|
b44f6ff5
|
2025-02-05T12:19:48
|
|
[perf/texts] Add a list of just 2letter strings
|
|
f7385340
|
2025-02-05T12:19:30
|
|
Merge pull request #5041 from harfbuzz/aat-machine-initial
[morx] Only collect glyphs that can initiate action in the machine
|
|
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.
|
|
7d14eb5e
|
2025-02-05T10:46:28
|
|
[aat] Minor rename
|
|
6215d68b
|
2025-02-05T10:43:24
|
|
[aat] Minor tweak to logic
DELETED_GLYPH can also initiate action.
|
|
dc4ff701
|
2025-02-05T10:42:33
|
|
[bit-page] Add a couple of operators
|
|
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
|
|
1a278073
|
2025-02-05T00:35:40
|
|
[array] Micro-optimize
|
|
c87bfe41
|
2025-02-05T00:22:27
|
|
[morx] Reuse a variable
|
|
e99e6538
|
2025-02-05T00:08:29
|
|
[aat-map] Micro-optimize a malloc
|
|
3e27038f
|
2025-02-04T23:39:42
|
|
[aat-map] Micro-optimize
|