|
c2eaedd2
|
2023-06-04T09:25:07
|
|
[fuzzing] Add a test font
From https://oss-fuzz.com/testcase-detail/5855710991482880
|
|
af3fdf1f
|
2023-06-04T09:22:42
|
|
[subset/glyf] Simplify error handling
|
|
3dd1de46
|
2023-06-04T09:15:14
|
|
[subset/glyf] Fix a few return_trace's
|
|
73f2f935
|
2023-06-04T09:12:18
|
|
[subset/glyf] Fix another leak
|
|
3d08a2f1
|
2023-06-03T23:38:38
|
|
[subset/glyf] Fix leak
|
|
fc33200d
|
2023-06-03T23:29:39
|
|
[subset/glyf] Avoid a vector copy
Oops!
|
|
3bfcbd61
|
2023-06-03T23:17:56
|
|
[subset/glyf] Minor use range lopp
|
|
917c8d0a
|
2023-06-03T23:15:56
|
|
[subset/glyf] Minor change of value
|
|
2b8c4313
|
2023-06-03T23:01:27
|
|
[vector] Oops!
|
|
054f966a
|
2023-06-03T22:52:16
|
|
[subset/cff1] Don't allocate memory for retaingid holes
40% speedup in BM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/retaingids/10
benchmark.
|
|
b5792f11
|
2023-06-03T22:24:06
|
|
[subset] Reuse num_glyphs in various places
|
|
7e4311a8
|
2023-06-03T22:11:47
|
|
[cff] Speed up for retaingids
|
|
ca237e6b
|
2023-06-03T22:07:29
|
|
[subset/cff] Reuse num_glyphs
|
|
1590754b
|
2023-06-03T22:04:52
|
|
[subset/cff] Speed up for retaingids
|
|
dff3a936
|
2023-06-03T22:00:28
|
|
[subset/cff1] Speed up for retaingids
|
|
fa8d15d5
|
2023-06-03T21:58:21
|
|
[subset/cff1] Reuse num_glyphs
|
|
937ead2f
|
2023-06-03T21:38:56
|
|
[subset/hvar] Speed up for retaingids
|
|
acab716b
|
2023-06-03T21:15:36
|
|
[subset/hvar] Speed up for retaingids
|
|
bc6dbf43
|
2023-06-03T21:09:33
|
|
[subset/gvar] Micro-optimize
|
|
84134753
|
2023-06-03T21:08:30
|
|
[subset/gvar] Speed up for retaingids
|
|
87cf09bd
|
2023-06-03T21:00:56
|
|
[subset/loca] Fix up for retaingid null glyphs at the end
We currently don't have those, but in case we add.
|
|
2fb670a5
|
2023-06-03T20:56:04
|
|
[subset/gvar] Speed up for retaingids
|
|
5b167934
|
2023-06-03T20:45:52
|
|
[subset/hdmx] Micro-optimize
|
|
9b733532
|
2023-06-03T20:44:08
|
|
[subset/hdmx] Fix build
|
|
4d4792ce
|
2023-06-03T20:34:51
|
|
[subset/hdmx] Speed up more for retaingids
|
|
a3f7ed70
|
2023-06-03T20:25:14
|
|
[subset/hdmx] Don't clear memory unnecessarily
|
|
e263c3cc
|
2023-06-03T20:20:57
|
|
[subset/hdmx] Speed up
|
|
0e16be9b
|
2023-06-03T19:45:44
|
|
[subset-plan] Reuse glyph_for_gid result
|
|
590fb352
|
2023-06-03T19:21:22
|
|
[subset] Reduce memory pressure
|
|
c03c3000
|
2023-06-03T19:05:10
|
|
[subset] Tweak memory allocation
Reduces chances of rework, specially for glyf table if padding
is needed...
|
|
38fa0323
|
2023-06-03T18:51:09
|
|
Revert "[subset/loca] Build in the serializer memory"
This reverts commit 546b51818666ca1ddb01824f752eccbd6a751b4b.
|
|
546b5181
|
2023-06-03T18:50:35
|
|
[subset/loca] Build in the serializer memory
Because it's hot. Doesn't seem to speed up though. Slight
slowdown. Going to revert.
|
|
3cb2b49e
|
2023-06-03T18:44:56
|
|
[subset/loca] Shuffle code around
|
|
f014112d
|
2023-06-03T18:27:24
|
|
Revert "[subset] Allow adding table directly from subset()"
This reverts commit 25a6514887ebe899bd4ede1e283e067f97e15def.
|
|
25a65148
|
2023-06-03T18:26:36
|
|
[subset] Allow adding table directly from subset()
And do it for hmtx. Going to revert since it slows things down.
Apparently the serializer buffer is in caches and hot, so faster
to write to and copy even.
|
|
b0d0babb
|
2023-06-03T17:14:55
|
|
[subset/loca] Rewrite loop faster
|
|
8dab4441
|
2023-06-03T17:06:30
|
|
[subset/hmtx] Micro-optimize last commit
hb_zip has its own overhead...
|
|
e981dc24
|
2023-06-03T17:01:52
|
|
[subset/hmtx] Rewrite loop faster for retaingid
|
|
4a9da026
|
2023-06-03T16:46:29
|
|
[subset/hmtx] Micro-optimize
|
|
6a3fcc64
|
2023-06-03T16:38:18
|
|
[map] Don't call hash() if map is empty
|
|
735d2496
|
2023-06-03T16:35:03
|
|
[map] Remove an unlikely
Empty maps are common in some subsetting operations.
|
|
ca27925d
|
2023-06-03T16:18:15
|
|
Use hb_codepoint_pair_t in more places
|
|
841e86fd
|
2023-06-03T16:09:45
|
|
[subset/hmtx] Further speedup!
|
|
de729ec1
|
2023-06-03T15:48:54
|
|
[meta] Return reference from reference-wrapper
|
|
c7493efe
|
2023-06-03T15:39:27
|
|
[subset/loca] Micro-optimize
|
|
13a4c7b3
|
2023-06-03T15:12:53
|
|
[subset/hmtx] Comment
|
|
4da2996f
|
2023-06-03T15:08:20
|
|
[doc] Fix
|
|
c3e7f451
|
2023-06-03T14:56:47
|
|
Add HB_CODEPOINT_INVALID
Fixes https://github.com/harfbuzz/harfbuzz/issues/4262
|
|
efefec13
|
2023-06-02T20:33:52
|
|
[subset/glyf] Remove unneeded codepath
|
|
ac1f5ca0
|
2023-06-02T17:07:44
|
|
[subset/loca] Micro-optimize
|
|
6eae9325
|
2023-06-02T17:05:27
|
|
[subset/loca] Reduce a vector allocation
|
|
cd249d23
|
2023-06-02T16:15:05
|
|
[subset/hmtx] Micro-optimize
|
|
ec8965e4
|
2023-06-02T16:10:25
|
|
[subset/glyf] Don't clear loca allocation
|
|
916629d1
|
2023-06-02T16:08:49
|
|
[subset/hmtx] Don't clear allocation
|
|
24b069cd
|
2023-06-02T15:55:53
|
|
[subset] Pre-alloc a few maps
|
|
7319d0d7
|
2023-06-02T15:41:47
|
|
[subset-plan] Add a couple of map pre-allocations
Approximate...
|
|
76904b04
|
2023-06-02T15:30:12
|
|
[subset-plan] Simplify / speedup planning glyphset
|
|
965ce7bb
|
2023-06-02T15:24:00
|
|
[subset-plan] Speed up planning new_to_old_gid_list
|
|
b67e464b
|
2023-06-02T15:11:06
|
|
[subset/retaingid] Regain perf lost
In 0f12fd5a66a5dd1c3c9ac5ea8a52341bafcfe567
|
|
0f12fd5a
|
2023-06-02T13:58:55
|
|
[subset/glyf] Fix for non-monotonic glyphmap
Slows things down again, but is correct. Still a good win
combined with the previous changes.
|
|
66ce902c
|
2023-06-02T13:53:21
|
|
[glyf] Reduce allocation again
|
|
0e0110e7
|
2023-06-02T13:34:58
|
|
[glyf] Avoid a SubsetGlyph copy
Unfortunately hb_second() always does a copy...
|
|
33ea8b5e
|
2023-06-02T13:10:52
|
|
[subset/glyf] Don't allocate empty SubsetGlyf's
Shows 33% speedup on Mplus/retaingid/10 benchmark:
Comparing before to after
Benchmark Time CPU Time Old Time New CPU Old CPU New
--------------------------------------------------------------------------------------------------------------------------------------------------------
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10 -0.3296 -0.3294 0 0 0 0
|
|
ad872e23
|
2023-06-02T18:32:09
|
|
[subset] Optimize hmtx/vmtx serialization.
Make serializer allocation up front to avoid bounds checking overhead for each metric.
Benchmarks:
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10_median -0.1005 -0.1005 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/64_median -0.0693 -0.0692 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/512_median -0.0294 -0.0293 1 1 1 1
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/4096_median -0.0033 -0.0032 3 3 3 3
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10000_median +0.0170 +0.0171 7 7 7 7
|
|
c6368e01
|
2023-06-01T20:51:17
|
|
[map] Return const reference from operator()
Like we do in operator[].
|
|
b04ca1c1
|
2023-06-01T20:43:07
|
|
Revert "[subset/glyf] Exact allocation"
This reverts commit a830f085c849846f8441f5d92d4db36130ef71f8.
Weirdly enough in a benchmark I'm running I see this show
some slowdown. Makes zero sense.
|
|
a830f085
|
2023-06-01T20:37:29
|
|
[subset/glyf] Exact allocation
|
|
ff0b85cf
|
2023-06-01T20:30:56
|
|
[subset/glyf] Empty .notdef only if old-gid was also 0
Otherwise it wasn't a .notdef, even if new-gid is 0.
|
|
65a7d8c6
|
2023-06-01T20:20:00
|
|
[glyf] Empty glyphs need no padding
|
|
73c18d1d
|
2023-06-01T20:06:42
|
|
[glyf] Micro-optimize padded_offsets
|
|
88d8a6d6
|
2023-06-01T19:24:02
|
|
[BEInt] Use packed-int trick for writing as well
|
|
4d853b8b
|
2023-06-01T18:47:58
|
|
[subset/regaingid/glyf] Add a fastpath for empty glyphs
Mplus benchmark:
Comparing before to after
Benchmark Time CPU Time Old Time New CPU Old CPU New
-----------------------------------------------------------------------------------------------------------------------------------------------------------
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10 -0.1764 -0.1771 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/64 -0.1394 -0.1394 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/512 -0.0644 -0.0645 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/4096 +0.0132 +0.0131 1 1 1 1
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/retaingids/10000 -0.0029 -0.0034 3 3 3 3
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/10 +0.0364 +0.0362 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/64 +0.0346 +0.0343 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/512 +0.0271 +0.0268 0 0 0 0
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/4096 +0.0193 +0.0193 1 1 1 1
BM_subset/subset_glyphs/Mplus1p-Regular.ttf/10000 -0.0240 -0.0243 2 2 2 2
OVERALL_GEOMEAN -0.0305 -0.0307 0 0 0 0
|
|
6ec7629f
|
2023-06-01T18:18:30
|
|
[subset/glyf] Add a const
|
|
9f54ab92
|
2023-06-01T17:45:03
|
|
[subset-plan] Keep a reverse-gid vector
To speed up iteration.
|
|
6b0d3867
|
2023-06-01T23:59:55
|
|
[subset] in subset benchmarks switch nohinting with retaingids.
retain gids is a more interesting case than no hinting for performance.
|
|
1ae99d1a
|
2023-06-01T15:22:26
|
|
bug fix
|
|
aa7dd70a
|
2023-06-01T14:24:33
|
|
[hmtx] Reduce map usage slightly
|
|
f41c5ec9
|
2023-06-01T18:38:05
|
|
[map] update map benchmark to also test lookups that hit.
|
|
4acf6a82
|
2023-05-30T09:26:58
|
|
[instancer-solver] port solver fix from fonttools
See https://github.com/fonttools/fonttools/issues/3139
|
|
f3b4d35f
|
2023-05-29T22:38:40
|
|
[subset] Fix fuzzer crash.
https://oss-fuzz.com/testcase-detail/6608005089853440
|
|
ff326fbe
|
2023-05-29T21:31:01
|
|
[repacker] check the result of add_buffer() in other places where it's called.
|
|
66a84355
|
2023-05-29T17:17:15
|
|
[hash] Use unsigned types
Hopefully ubsan wouldn't complain about overflows now.
|
|
4a93576b
|
2023-05-28T13:22:35
|
|
Revert "[map] Speedup for int types"
This reverts commit c1b75f5ff0460274229801816265a0efe5731b3a.
I was seeing very long chains (140) and a 17% slowdown in
BM_subset/subset_codepoints/RobotoFlex-Variable.ttf/512
Bummer.
|
|
c1b75f5f
|
2023-05-28T12:53:17
|
|
[map] Speedup for int types
Since our int hash is now good, we don't need the modulo prime
here, so forgo it. Major speedup:
Comparing before to after
Benchmark Time CPU Time Old Time New CPU Old CPU New
-------------------------------------------------------------------------------------------------------------------
BM_MapInsert/16 -0.4136 -0.4137 6 4 6 4
BM_MapInsert/64 -0.4442 -0.4441 6 3 6 3
BM_MapInsert/512 -0.5382 -0.5383 8 4 8 4
BM_MapInsert/4096 -0.4160 -0.4162 8 5 8 5
BM_MapInsert/32768 -0.3256 -0.3258 12 8 12 8
BM_MapInsert/262144 -0.1723 -0.1727 11 10 11 9
BM_MapInsert/1048576 -0.2310 -0.2309 28 22 28 22
BM_MapLookup/16 -0.0247 -0.0247 3 3 3 3
BM_MapLookup/64 -0.1039 -0.1038 3 3 3 3
BM_MapLookup/512 -0.1076 -0.1079 4 3 4 3
BM_MapLookup/4096 -0.3729 -0.3732 9 6 9 6
BM_MapLookup/32768 +0.2467 +0.2468 9 12 9 12
BM_MapLookup/262144 -0.1862 -0.1868 14 11 14 11
BM_MapLookup/1048576 +0.1159 +0.1160 15 17 15 17
OVERALL_GEOMEAN -0.2414 -0.2416 0 0 0 0
|
|
7f111787
|
2023-05-27T12:41:05
|
|
[benchmark-map] Remove overhead
|
|
56668073
|
2023-05-27T12:37:36
|
|
[benchmark-map] Improve Insert benchmark
Previously it was enlarging the map depending on whatever
number of runs the benchmark-runner decided to run the loop.
That wasn't very useful...
|
|
00900f76
|
2023-05-27T10:13:53
|
|
[hash] Enable better hash for integers
https://github.com/harfbuzz/harfbuzz/pull/4228#issuecomment-1565079537
|
|
20c564bc
|
2023-05-26T23:04:25
|
|
[repacker] Fix fuzzer memory leak.
https://oss-fuzz.com/testcase-detail/6419865171525632
|
|
5abe7132
|
2023-05-26T15:56:30
|
|
[map] Resize map on long chain probes
|
|
a652281e
|
2023-05-26T19:47:50
|
|
[subset] Fix fuzzer timeout.
Fixes https://oss-fuzz.com/testcase-detail/5979721620652032. Timeout was caused by degenerate map insert behaviour due to poor integer hash function. Presize the map to avoid it. Also fixes collect_mapping() for cmap format 13.
|
|
208c9490
|
2023-05-26T12:02:03
|
|
[VarComposite] Limit number of axes that are copied
Bandaid for https://oss-fuzz.com/testcase-detail/4591122882887680
|
|
5872bdf6
|
2023-05-26T11:41:54
|
|
[vector] Add copy-constructor for array_t's
|
|
42aba5ff
|
2023-05-24T12:19:50
|
|
harfbuzz-config.cmake.in: Support Windows usage
Apply the appropriate library prefix/suffix by whether we are building
as a statib build in Meson, or by using
${CMAKE_[SHARED|IMPORT]_LIBRARY_PREFIX} and
${CMAKE_[SHARED|IMPORT]_LIRBARY_SUFFIX} as appropriate according to
the target platform for shared builds.
|
|
84354d3f
|
2023-05-23T11:57:22
|
|
[cff] When max-ops is reached return false
Slight speedup too.
|
|
2655b760
|
2023-05-23T10:57:58
|
|
[map] Micro-optimize
This shows a speedup.
|
|
12b0680e
|
2023-05-23T10:49:41
|
|
[map] Fix set()
This was broken in 2133aa2407657d0b3b4b73a4951c05ed26d055f2.
We have to keep probing over tombstones.
|
|
4056315c
|
2023-05-22T14:17:12
|
|
[font] Remove redundant avar mapping line
The avar mapping happens in hb_ot_var_normalize_coords() call.
|
|
592a3d0e
|
2023-05-21T22:00:53
|
|
Merge pull request #4237 from harfbuzz/layout-font-extents
[layout] Add hb_ot_layout_get_font_extents()
|
|
0d354e04
|
2023-05-21T19:01:04
|
|
[layout] Add tests for baseline 2 APIs
|
|
e047b1ab
|
2023-05-20T10:27:31
|
|
[layout] Improve docs
|