|
5b04b40d
|
2025-09-16T16:52:53
|
|
[instancer/tuplevars] Allocate compiled_deltas from alloc pool
|
|
ea9b7de4
|
2025-09-16T16:45:02
|
|
[instancer/tuplevars] Allocate compiled_tuple_headers from alloc pool
|
|
bdac0aec
|
2025-09-16T16:42:32
|
|
[vector] Make shrink() useful in un-owned vectors
|
|
c2f21215
|
2025-09-16T16:29:23
|
|
[vector] Simplify allocate_from_pool / set_storage
|
|
fb0ef230
|
2025-09-16T11:16:30
|
|
Revert "[tuplevars] Allocate from pool"
This reverts commit 94d78de954ab22f3717cc399920670f877616567.
Slowed things down.
|
|
94d78de9
|
2025-09-16T11:13:19
|
|
[tuplevars] Allocate from pool
|
|
f7e2d9a0
|
2025-09-16T11:10:49
|
|
[alloc-pool] Tweak
|
|
f5fdf426
|
2025-09-16T02:28:29
|
|
[tuplevar] Use pool for duplicating
|
|
f9cd59ae
|
2025-09-16T01:45:36
|
|
[tuplevar] More use of pool
|
|
12ce710f
|
2025-09-16T01:44:47
|
|
[tuplevar] Use alloc-pool instead of custom pool
|
|
43e017f8
|
2025-09-16T01:31:21
|
|
[tupledelta] Micro optimize
|
|
ebdeb2e3
|
2025-09-16T01:09:46
|
|
[tuplevalues] Speed up encoding
|
|
755ed109
|
2025-09-16T00:40:28
|
|
Add hb-alloc-pool and use in gvar instancer
|
|
d6b08019
|
2025-09-15T23:56:25
|
|
Rename hb-pool to hb-free-pool
|
|
82370913
|
2025-09-15T20:16:52
|
|
[vector] Simplify resize()
|
|
c56ef9ed
|
2025-09-15T20:10:54
|
|
[instancer] Reuse more allocations
These allocs are scratched. Don't free them, so we reuse.
|
|
8e3e8c66
|
2025-09-15T19:49:11
|
|
[iup] Reuse more allocations
|
|
bac2a67c
|
2025-09-15T19:30:46
|
|
Merge pull request #5563 from harfbuzz/instancer-gvar-consolidate-mallocs
Instancer gvar consolidate mallocs
|
|
82ca73a2
|
2025-09-15T19:12:40
|
|
[iup] Reuse more vector allocs
|
|
e42714cf
|
2025-09-15T19:05:38
|
|
[iup] Reuse bit-set allocs
|
|
54ac33cc
|
2025-09-15T19:00:34
|
|
[iup] Reuse more mallocs
|
|
045bd691
|
2025-09-15T18:56:55
|
|
[iup] Use bit-set instead of set
|
|
5e816ef7
|
2025-09-15T18:43:22
|
|
[iup] Reuse vectors
|
|
a64ab6c6
|
2025-09-15T17:47:07
|
|
[iup] Reduce hb_set_t allocs
|
|
5928a3c7
|
2025-09-15T17:17:15
|
|
[iup] Reduce vector allocs
|
|
df18518f
|
2025-09-15T17:14:31
|
|
[iup] Don't sqrt
|
|
db86e546
|
2025-09-15T16:41:31
|
|
[instancer/gvar] Combine peak_coords mallocs into one chunk
|
|
54ab8f0d
|
2025-09-15T18:20:59
|
|
[repacker] make repacker object ids stable.
Prior to this change the object id for a vertex in the repacker graph is it's position in the topological ordering. As a result after each sorting the object ids change. This decouples the topological sorting from the object id assignments. A separate ordering list is retained. This simplifies handling around object ids which no longer needs to account for them shifting, and improves performance by eliminating the step of reassigned link object ids after each sort.
|
|
26cc7355
|
2025-09-15T15:49:36
|
|
[vector] Remove a comment
|
|
9d004544
|
2025-09-16T00:16:30
|
|
Fix invalid reinterpret_cast (#5558)
* Fix invalid reinterpret_cast
reinterpret_cast from non-atomic object to atomic object is not valid.
https://eel.is/c++draft/atomics.types.generic#general-3
>[Note 2: The representation of an atomic specialization
>need not have the same size and alignment requirement as
>its corresponding argument type. — end note]
https://eel.is/c++draft/basic.compound#5
>5 Two objects a and b are pointer-interconvertible if
>(5.1) they are the same object, or
>(5.2) one is a union object and the other is a non-static
>data member of that object ([class.union]), or
>(5.3) one is a standard-layout class object and the other
>is the first non-static data member of that object or any
>base class subobject of that object ([class.mem]), or
>(5.4) there exists an object c such that a and c are
>pointer-interconvertible, and c and b are pointer-interconvertible.
>If two objects are pointer-interconvertible, then they have
>the same address, and it is possible to obtain a pointer
>to one from a pointer to the other via a reinterpret_cast
>([expr.reinterpret.cast]).
objects of types `int` and `std::atomic<int>` are not
pointer-interconvertible (an object of type `int` is not
first non-static data member of `std::atomic<int>`)
https://eel.is/c++draft/basic.lval#11
>11 An object of dynamic type T-obj is type-accessible through
>a glvalue of type T-ref if T-ref is similar ([conv.qual]) to:
>(11.1) T-obj,
>(11.2) a type that is the signed or unsigned type corresponding
>to T-obj, or
>(11.3) a char, unsigned char, or std::byte type.
>If a program attempts to access ([defns.access]) the stored
>value of an object through a glvalue through which it is not
>type-accessible, the behavior is undefined
The original code resulted in undefined behavior.
* revert code formatting
* fix const qualifier in type for atomic operation.
* implement copy and move ctors (assignment-operators) and swap functions.
* swap-functions replaced as frendly members, common header includes returned.
* add HB_ prefix to defined macro.
* some formatting.
|
|
e310f811
|
2025-09-15T00:58:07
|
|
[instancer/gvar] Speed up hash lookup-set
|
|
7a57c3c1
|
2025-09-15T00:52:50
|
|
[instancer/gvar] Simplify sorting
|
|
b51ea436
|
2025-09-15T00:44:49
|
|
[gvar] Micro-opt instancing
|
|
4d590199
|
2025-09-14T18:04:51
|
|
[instancer/tuplevar] Allocate intermediates array on demand
|
|
35212ba3
|
2025-09-14T17:46:13
|
|
[gvar] Change a storage type
No functional change.
|
|
20457df5
|
2025-09-14T16:05:29
|
|
[map] Tune for small maps
|
|
323901f8
|
2025-09-14T13:47:32
|
|
[instancer/tuplevars] Reduce work by combining two loops
|
|
eb6de664
|
2025-09-14T13:13:22
|
|
[instancer/tuplevars] Reduce work
|
|
90ea408e
|
2025-09-13T18:18:08
|
|
[map] Speed up copying of trivially-assignable types
|
|
fd282dcf
|
2025-09-13T17:56:34
|
|
[map] Speed up operator= for trivial item types
|
|
1f936e23
|
2025-09-13T16:58:45
|
|
[instancer] Try to move instead of copy some tuples
|
|
2319d763
|
2025-09-13T16:21:34
|
|
[TupleValues] Micro-optimize encoding
Also, a check for 32bit values in the word-encoding function
was missing. Ouch.
|
|
f2c4ab45
|
2025-09-13T16:14:55
|
|
[instancer/varstore] Micro-optimize
|
|
b97369bb
|
2025-09-13T14:10:20
|
|
Merge pull request #5549 from harfbuzz/instancer-varstore-optimize-compromise
[instancer/varstore] Only optimize instanced varstore incrementally
|
|
cf6c9d8a
|
2025-09-13T13:49:56
|
|
[instancer/varstore] Put back sort again
In testing with GoogleSansFlex, this produces slightly smaller
result.
|
|
c7e46ab2
|
2025-09-13T12:54:18
|
|
[instancer/varstore] Avoid copies in loops
|
|
7a430de3
|
2025-09-13T00:08:10
|
|
Add -Wpessimizing-move warning
Part of https://github.com/harfbuzz/harfbuzz/issues/5550
|
|
a4a50892
|
2025-09-12T23:41:40
|
|
[instancer/varstore] Speed up encoding merging
Don't recalculate chars from all row data.
|
|
f0a1289a
|
2025-09-12T19:25:57
|
|
[instancer/varstore] Massage optimizer a bit
|
|
a878dca0
|
2025-09-12T19:19:07
|
|
[instancer/varstore] Remove sorting from the optimizer
Just work with incoming order.
|
|
e16be515
|
2025-09-12T17:42:57
|
|
[instancer/varstore] Only optimize instanced varstore incrementally
See comments. This basically wipes of the varstore optimization
costs out of the profiles, which saves eg. 25% total time in
GoogleSansFlex instantiation, with practically no file size
downside.
|
|
a4087e7f
|
2025-09-12T15:48:26
|
|
[instancer/varlib] Minor non-functional change
|
|
d8c1bce2
|
2025-09-12T14:39:38
|
|
[instancer/varstore] Mark a function HOT
|
|
aa58b43d
|
2025-09-12T14:24:41
|
|
[subset] Introduce HB_SUBSET_FLAGS_RETAIN_NUM_GLYPHS. (#5547)
Used in conjunction with retain gids, when set the num glyphs from the input font will be preserved. Empty glyphs will be inserted as necessary to maintain the num glyphs value. Put under experimental for now.
|
|
bf8929fb
|
2025-09-12T13:32:38
|
|
11.5.0
|
|
74c31861
|
2025-09-12T13:31:29
|
|
[rust] Update to HarfRust 0.3.0 (#5548)
|
|
3965e9a6
|
2025-09-12T13:12:05
|
|
[instancer/varstore] Change sort key (#5540)
See https://github.com/harfbuzz/harfbuzz/pull/5540
|
|
c9480db9
|
2025-09-12T12:22:17
|
|
[instancer/varstore] Add a heuristic to speed up optimization
|
|
dce73766
|
2025-09-12T13:56:01
|
|
[Unicode 17] Update the script direction list
|
|
0f1dab0f
|
2025-09-12T11:43:21
|
|
[instancer/varstore] More gain_from_merging optimization (#5543)
* [instancer/varstore] More gain_from_merging optimization
* [tests] Re-enable a test that was disabled until an issue fixed
See comment.
|
|
e4957b0c
|
2025-09-12T10:57:49
|
|
[varLib/instancer] Simplify gain encoding
|
|
20d7ef5f
|
2025-09-12T10:45:08
|
|
[instancer/varstore] Change gain encoding
gain can be high in theory.
|
|
ca9a8aba
|
2025-09-12T03:50:46
|
|
Revert "[instancer/varstore] Micro-optimize"
This reverts commit 7484eb5807d6127bea6b888a7d8fdad1b73a8c0b.
|
|
f12be45c
|
2025-09-12T03:42:49
|
|
[instancer/varstore] Optimize gain comparisons
|
|
7484eb58
|
2025-09-12T03:16:59
|
|
[instancer/varstore] Micro-optimize
|
|
92ec75f8
|
2025-09-12T03:13:25
|
|
[instancer/varstore] Micro-optimize
|
|
14e7d5b2
|
2025-09-12T03:04:59
|
|
[instancer/varstore] Speed up gain_from_merging
10% speedup instancing GoogleSansFlex.
|
|
006ec160
|
2025-09-12T02:52:29
|
|
[instancer/varstore] Minor refactor in anticipation of next change
|
|
aba798dd
|
2025-09-12T00:52:40
|
|
[instancer/varstore] Use heapify() instead of inserts()
|
|
12c46237
|
2025-09-12T00:05:37
|
|
Revert "[instancer/varstore] Change chars_t storage scheme"
This reverts commit aaeea5729b97813eb71b1d809212534a77436ca2.
|
|
aaeea572
|
2025-09-11T23:52:44
|
|
[instancer/varstore] Change chars_t storage scheme
Slows down. Gonna revert.
Apparently builtin popcount is not fast unless built for archs that
support it.
|
|
3dc5e3d6
|
2025-09-11T23:27:51
|
|
[instancer/varstore] Consolidate chars_t logic
|
|
fe6c9a0f
|
2025-09-11T23:23:41
|
|
[instancer/varstore] Fix a logic bug
combined_chars was moved already.
Also, see comment.
|
|
9d971169
|
2025-09-11T23:10:50
|
|
[instancer/varstore] Add a chars_t type
|
|
1a6c6d78
|
2025-09-11T21:59:41
|
|
[instancer] Micro-optimize a couple of hot comparisons
|
|
c938e8ce
|
2025-09-11T21:57:14
|
|
[instancer] Micro-optimize by using bit-set directly
|
|
266e1c24
|
2025-09-11T20:12:39
|
|
[instancer] Short-circuit some work in gain_from_merging
|
|
a34f8b31
|
2025-09-11T19:10:05
|
|
[instancer] Use bitset instead of vector for VarStore optimizer columns
~30% faster on GoogleSansFlex.
|
|
2e86070e
|
2025-09-11T18:15:19
|
|
[instancer] Don't clear a couple of resize allocations
Not needed.
|
|
01fd17d6
|
2025-09-11T17:05:03
|
|
[instancer] Reduce mallocs in create_from_tuple_var_data
|
|
23e40cd7
|
2025-09-11T16:53:44
|
|
[instancer] Reduce mallocs in gain_from_merging
|
|
3225bd73
|
2025-09-11T16:44:24
|
|
[instancer] Minor default construction simplify
|
|
3df6e510
|
2025-09-11T16:33:10
|
|
[instancer] Reduce mallocs in merge_tuple_variations
|
|
6d82b40a
|
2025-09-11T16:09:13
|
|
[instancer] Remove unnecessary vector fini
|
|
87c36992
|
2025-09-11T15:42:59
|
|
[instancer] Reduce mallocs in calc_inferred_deltas
|
|
740cbf1c
|
2025-09-11T15:30:30
|
|
[vector] Add malloc debug facility
|
|
67bddf15
|
2025-09-11T15:16:30
|
|
[instancer] Reduce mallocs in change_tuple_var_axis_limit
|
|
17aa37ab
|
2025-09-11T15:13:51
|
|
[instancer] Reduce mallocs in rebase-tent
|
|
0fbbf749
|
2025-09-10T21:11:44
|
|
[ot-tags] Update IANA subtags to 2025-08-25 (#5537)
|
|
13c8ffa0
|
2025-09-10T11:35:54
|
|
[Unicode 17] Send the new scripts to USE
|
|
f59d532b
|
2025-09-10T11:34:07
|
|
[Unicode 17] Update the USE table
|
|
5b6409f0
|
2025-09-10T11:22:02
|
|
[Unicode 17] Update the vowel constraint table
|
|
7c611a2b
|
2025-09-10T11:21:36
|
|
[Unicode 17] Update the Indic table
|
|
e189b34e
|
2025-09-10T11:19:14
|
|
[Unicode 17] Update the emoji table & cluster test
|
|
e0e0a757
|
2025-09-10T11:18:07
|
|
[Unicode 17] Update the Arabic joining script list
|
|
5b72f304
|
2025-09-10T11:17:25
|
|
[Unicode 17] Update the Arabic table
|
|
147db69b
|
2025-09-10T11:15:30
|
|
[Unicode 17] Update the UCD table
|
|
d08a72dd
|
2025-09-10T11:12:37
|
|
[Unicode 17] Add new `hb_script_t` values
|
|
dd291f48
|
2025-09-07T23:46:27
|
|
Short-circuit ASCII more (#5528)
|
|
d94851e5
|
2025-09-03T11:52:51
|
|
[rust] Use inherited codegen-units=1 in debugoptimized build
It makes significant (30% in Nastaliq benchmark) difference.
|