|
7a7001df
|
2023-07-08T17:48:00
|
|
Typo
|
|
d3f90a8c
|
2023-06-26T14:02:26
|
|
[subset/cff] Use a typedef for glyph_to_sid_map_t
|
|
393f0f9f
|
2023-06-25T18:14:56
|
|
[map] Rename resize() to alloc()
Better matches the functionality, and hb_vector_t.
|
|
5f399139
|
2023-06-23T11:22:01
|
|
[subset/cff] Move lazy cff-accelerator to cff-subset-accelerator
Fixes https://github.com/harfbuzz/harfbuzz/issues/4295
|
|
43ec78f9
|
2023-06-23T10:22:30
|
|
[subset/cff] Cache CFF accelerator in hb_subset_plan_t
This shows 7% speedup in:
BM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/retaingids/10
|
|
ad025ddf
|
2023-06-22T20:09:36
|
|
[subset-cff] Simplify a bit
|
|
e1753782
|
2023-06-22T19:45:29
|
|
[subset-cff] Handle an error condition
|
|
67b16247
|
2023-06-07T16:15:48
|
|
[set] Simplify a few set iterations as range loop
|
|
ffc6899b
|
2023-06-05T14:16:47
|
|
[subset/cff1] Use a vector, instead of map, for glyph_to_sid_map
Much faster.
|
|
640774b9
|
2023-06-04T13:26:14
|
|
[subset/cff] Speed up subsr subset for retaingids
|
|
6b11a3d9
|
2023-06-04T13:18:43
|
|
[subset/cff] Speed up closure_subroutines for retaingids
|
|
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
|
|
5b50b077
|
2023-02-19T20:30:38
|
|
[subset-cff] Make BCD writing locale-independent
|
|
a4b7033d
|
2023-02-19T17:48:02
|
|
[cff2-subset] Blend Private values when instancing
|
|
f10a4c9d
|
2023-02-19T17:11:30
|
|
[cff] Rename encode_num to encode_num_cs
|
|
c65eb5a8
|
2023-02-19T15:15:57
|
|
[cff] Specialize cff_private_dict_op_serializer_t for CFF1/2
|
|
bf4b34e8
|
2023-02-19T11:16:51
|
|
[subset-cff2] Don't encode vsindex in Private dict
|
|
82d9940a
|
2023-02-19T10:51:55
|
|
[subset-cff2] Don't encode vsindex if pinned
|
|
c632a164
|
2023-01-06T11:01:25
|
|
[subset/cff] Support instancing
|
|
b6be4550
|
2023-01-02T18:05:43
|
|
[vector] Add resize_exact()
|
|
a516ce97
|
2023-01-02T17:58:51
|
|
[subset-cff] Add a few exact-allocation calls
|
|
4a435dc0
|
2023-01-02T17:41:31
|
|
[subset-cff] Remove an unlikely
|
|
f8c578fd
|
2023-01-02T17:33:04
|
|
[subset-cff] Remove commented-out line
|
|
27531d85
|
2023-01-02T12:05:11
|
|
[subset-cff] Move code around
|
|
4f013c42
|
2023-01-02T10:38:30
|
|
[subset-cff] Always compact charstrings
Reduces non-preprocessed subsetting memory footprint significantly.
|
|
4dda1f78
|
2023-01-01T19:00:04
|
|
[cff-subset] Compact charstrings just after parsing
Massive peak-memory saving when processing face.
|
|
a7617c3c
|
2023-01-01T18:58:08
|
|
[cff-subset] Drop hints just after parsing charstring
In prep for next commit.
|
|
1119e602
|
2023-01-01T18:31:32
|
|
[subset-cff] Tweak another storage allocation
|
|
edb81234
|
2022-12-31T13:55:41
|
|
[subset-cff] Another exact allocation
|
|
0ec0214f
|
2022-12-31T13:18:32
|
|
[cff-subset] Adjust pre-allocation
Reduces memory use significantly.
|
|
043eeb29
|
2022-12-02T13:58:36
|
|
[subset-cff] Optimize encode_subrs
Don't loop over all original subrs. Just walk over closure subrs.
|
|
0ad5977c
|
2022-12-02T13:41:06
|
|
[subset-cff] Simplify hinting processing
We already have drop_hints in the params.
|
|
c9476527
|
2022-12-01T21:48:35
|
|
[subset-cff] Micro-optimize
|
|
a5616227
|
2022-12-01T20:11:34
|
|
[subset-cff] Fix buffer size calculation
|
|
015af5a8
|
2022-12-01T20:08:59
|
|
[subset-cff] Write a couple loops as range-based for
|
|
bfbbd4af
|
2022-12-01T20:05:20
|
|
[subset-cff] Copy str for call ops
|
|
c755b388
|
2022-12-01T20:02:38
|
|
[subset-cff] Pre-alloc enough for check-less copy
|
|
062e59ae
|
2022-12-01T19:43:48
|
|
[subset-cff] Optimize vector allocation for preprocessed input
|
|
2644540a
|
2022-12-01T18:49:09
|
|
[subset-cff] Compact parsed strings if using accelerator
Saves 32% on SourceHanSans/10000 benchmark!
Also, use memcmp now for writing out strings since now that our
ops are not super short, that's faster.
This makes cff-japanese test takes super long though; that needs
inspection.
|
|
32dd9810
|
2022-11-30T13:15:58
|
|
[subset-cff1] Cache glyph-to-sid-map in the accelerator
Benchmark Time CPU Time Old Time New CPU Old CPU New
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/10 -0.0841 -0.0843 0 0 0 0
BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/64 -0.1305 -0.1305 0 0 0 0
BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/512 -0.1398 -0.1401 1 1 1 1
BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/4096 +0.0382 +0.0380 9 9 9 9
BM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/10000 +0.0213 +0.0211 11 11 11 11
|
|
7551a668
|
2022-11-30T00:04:16
|
|
[subset] Make cff_accelerator const.
This gives more confidence that it won't be accidentally modified by the subset operation using it.
|
|
3ea0f37c
|
2022-11-28T13:58:44
|
|
[subset-cff] Move an init to constructor
The init was not called anyway.
|
|
6c92c3e0
|
2022-11-28T13:54:24
|
|
[subset-cff] Remove unnecessary check
|
|
7fd300dd
|
2022-11-28T13:51:16
|
|
[subset-cff] Use constructor for parsed_cs_op_t
|
|
bd37900e
|
2022-11-28T20:35:34
|
|
[subset] use a reference to cached global/loca subrs.
Previously they were being copied in. Copying is no longer necessary now that hint dropping doesn't mutate the arrays.
|
|
ded9de9c
|
2022-11-28T13:31:40
|
|
[cff] bsearch in fdselect
Saves 8% in NotoSansCJK / 10000 subset benchmark.
|
|
0c33aba3
|
2022-11-28T12:28:13
|
|
[subset-cff] Rename drop flag to hinting flag
|
|
6f5b5319
|
2022-11-28T11:39:24
|
|
[subset-cff] Make no-hinting use accelerator as well
|
|
f51a624e
|
2022-11-27T14:54:39
|
|
[subset-cff] Micro-optimize drop_hints_in_str
|
|
38603266
|
2022-11-27T13:23:13
|
|
[subset-cff] Write loop more idiomatic
|
|
3ff502d3
|
2022-11-27T12:58:04
|
|
[subset-cff] Remove unnecessary initialization
|
|
6af4985b
|
2022-11-26T18:20:20
|
|
[subset-cff] No need for bitflag here anymore
|
|
69ce606d
|
2022-11-26T18:18:35
|
|
[subset-cff] Immediately drop subr numbers instead of marking for skip
Seems to work and saves ~2% time.
|
|
1cf4f3e0
|
2022-11-26T18:15:28
|
|
[subset-cff] More comment
|
|
f68221ff
|
2022-11-26T18:12:14
|
|
[subset-cff] Add comment
|
|
048ab8a0
|
2022-11-26T18:00:43
|
|
[subset-cff] Remove unused bits
|
|
37cbfc0c
|
2022-11-26T17:57:44
|
|
[subset-cff] Remove unneeded member
|
|
46ab1513
|
2022-11-26T17:49:21
|
|
[subset-cff] Add has_calls to parsed charstrings
Optimize closure based on it.
|
|
6d53074e
|
2022-11-26T17:23:09
|
|
[subset-cff] Drop another unused parameter
|
|
42615561
|
2022-11-26T17:10:58
|
|
Optimize a couple array references
|
|
04d23b7c
|
2022-11-26T17:08:00
|
|
[subset-cff] Micro-optimize collect_subr_refs_in_str
|
|
a5d35fd8
|
2022-11-25T23:17:05
|
|
[subset] use charstrings directly from accelerator cache if mutability isn't needed.
|
|
74acf52f
|
2022-11-25T14:43:44
|
|
[subset-cff] Micro-optimize copy_str more
|
|
d2f3cde7
|
2022-11-25T14:38:30
|
|
[subset-cff] Micro-optimize copy_str
|
|
22990fca
|
2022-11-25T14:12:58
|
|
Merge pull request #3894 from googlefonts/cff_accel
[subset] Cache parsed char strings in CFF accelerator
|
|
8d5c899b
|
2022-11-25T20:33:39
|
|
[subset] In cff accelerator hold reference to CFF table instead of the whole font.
|
|
75a99f28
|
2022-11-25T18:38:13
|
|
[subset] destruct cff accelerator if present.
|
|
1d474194
|
2022-11-25T13:21:35
|
|
[subset-cff] Micro-optimize encode_str
|
|
3c4a610b
|
2022-11-25T13:16:30
|
|
[subset-cff] Micro-optimize copy_str some more
|
|
535aadb3
|
2022-11-25T13:07:42
|
|
[subset-cff] Micro-optimize collect_subr_refs_in_str more
|
|
00a9df3a
|
2022-11-25T13:05:05
|
|
[subset-cff] Micro-optimize collect_subr_refs_in_str
|
|
71c23c1c
|
2022-11-25T18:04:44
|
|
[subset] don't copy the entire global/loca subr lists from the accelerator.
Instead run a closure on the retained charstrings and copy only the referenced subrs. This significantly speeds up cases with small character sets.
|
|
4ff09274
|
2022-11-24T22:47:29
|
|
[subset] In CFF accelerator keep a reference to original face.
The charstring objects reference memory from the original face so we need to maintain a reference to prevent it from being destroyed.
|
|
a3afa61c
|
2022-11-23T22:24:39
|
|
[subset] use cached parsed char strings if available.
|
|
47c12584
|
2022-11-23T21:02:39
|
|
[subset] Cache parsed charstrings in the cff accelerator.
|
|
48b68370
|
2022-11-23T20:51:51
|
|
[subset] add a CFF specific accelerator object.
This allows CFF specific accelerator structures to be isolated to the CFF code.
|
|
d77f346d
|
2022-11-24T14:02:46
|
|
[subset-cff] Minor rename
|
|
29a0fa08
|
2022-11-24T14:00:59
|
|
[subset-cff] Micro-optimize
|
|
0bf7d9eb
|
2022-11-23T13:00:23
|
|
[subset-cff] Micro-optimize encode_byte
|
|
a23f8204
|
2022-11-23T12:56:13
|
|
[subset-cff] Micro-optimize array access
|
|
59c45f6d
|
2022-11-22T12:54:50
|
|
Use hb_memcpy instead of memcpy consistently
|
|
c53c6481
|
2022-11-22T12:46:25
|
|
[subset-cff] Another handrolled memcpy
|
|
1572ba28
|
2022-11-21T22:26:44
|
|
[subset-cff] Return in subr closure if already seen subr
Not sure why this was not done before.
|
|
a29ca6ef
|
2022-11-21T22:02:17
|
|
[subset-cff] Comment
|
|
28e767dd
|
2022-11-21T21:59:51
|
|
[subset-cff] Really optimize op_str_t / parsed_cs_op_t layout
Now parsed_cs_op_t and op_str_t are both 16 bytes.
Saves another 7% in SourceHanSans/10000 benchmark.
|
|
2d5ee237
|
2022-11-21T21:37:38
|
|
[subset-cff] Readjust parsed_cs_op_t
Now it doesn't matter anymore since op_str_t is adjusted and
is 16 bytes with 8byte alignment.
|
|
4f056b92
|
2022-11-21T21:37:38
|
|
[subset-cff] Optimize op_str_t layout
|
|
dc3bb5e0
|
2022-11-21T18:18:48
|
|
[subset-cff] Pre-allocate values array for subroutines as well
|
|
c6279224
|
2022-11-21T18:01:50
|
|
[cff] Adjust pre-allocation
This better matches actual usage, given that ops are one or two
bytes, and vector also allocates 50% extra.
|
|
2cadacad
|
2022-11-21T17:17:15
|
|
[cff] Simplify str_encoder_t error handling
|
|
f263e3fe
|
2022-11-21T17:04:55
|
|
[cff] Manually copy short strings instead of memcpy()
|
|
38efd186
|
2022-11-21T17:02:11
|
|
[cff] Add a likely()
|
|
191025cc
|
2022-11-21T16:58:19
|
|
[cff] Adjust buffer pre-allocation
Most ops take one or two bytes, so allocate count*2, not count*3.
Shows minor speedup in subsetting benchmark (around 2%).
|
|
4b2caafe
|
2022-11-21T16:46:20
|
|
[subset-cff] Optimize parsed_cs_op_t size
Shows 5% speedup on SourceHanSans-Regular/10000 benchmark.
|
|
98aaecd3
|
2022-06-01T21:01:16
|
|
[subset] fix data race touching Crap() in cff subsetting.
|
|
e91863b7
|
2022-05-18T12:39:55
|
|
[subset-cff] Pre-size map in subr_remap_t::create()
|
|
b5aa8a27
|
2022-05-18T11:58:58
|
|
[subset-cff] Cosmetic
|