Log

Author Commit Date CI Message
Behdad Esfahbod 726af2e4 2025-02-05T18:10:40 [PairPos] Use a class cache 10% speedup on Roboto-Regular. 5% on SF Pro.
Behdad Esfahbod acd122d0 2025-02-05T17:38:39 [gsubgpos] Prepare for per-lookup allocated caches
Behdad Esfahbod 3f40edbf 2025-02-05T17:25:27 [ClassDef] Add ability to use a cache
Behdad Esfahbod 7392f32e 2025-02-05T19:16:08 [face] Tweak stack again Let's go with one loop iteration. It's cheap.
Behdad Esfahbod 515b6a58 2025-02-05T19:13:19 [face] Minor stack var size change
Behdad Esfahbod 601dd1a7 2025-02-05T19:10:41 [face-builder] Fix an OOM issue Fixes https://oss-fuzz.com/testcase-detail/5721476158521344
Behdad Esfahbod c05002af 2025-02-05T16:46:13 [set] Add may_have() as alias for get()
Behdad Esfahbod ad7f428b 2025-02-05T16:44:04 [set-digest] Comment
Behdad Esfahbod 900db7b1 2025-02-05T16:41:49 [bit-set] Add a couple of alias methods
Behdad Esfahbod 942a30b7 2025-02-05T14:21:49 [aat] Remove now-unused code
Behdad Esfahbod 44281b28 2025-02-05T14:19:01 [aat] Back to simplified heuristic Performs overall better.
Behdad Esfahbod dc8da612 2025-02-05T14:12:55 Merge pull request #5042 from harfbuzz/aat-regression [aat] Fix performance regression
Behdad Esfahbod b857b21a 2025-02-05T13:15:15 [morx] Try using buffer-glyph-set adaptive to number of chains
Behdad Esfahbod 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.
Behdad Esfahbod 624d6edf 2025-02-05T12:45:57 [aat] Change threshold from 4 to 16 Still worth it it seems.
Behdad Esfahbod a26cf0f4 2025-02-05T12:41:40 [aat] Fix regression in performance of shaping tiny strings
Behdad Esfahbod cec5c571 2025-02-05T12:37:50 [aat] Refactor a method
Behdad Esfahbod cd5dfc6d 2025-02-05T12:32:02 [kerx] Use hb_bit_set_t instead of hb_set_t
Behdad Esfahbod d40c079f 2025-02-05T12:30:56 [morx] Use hb_bit_set_t instead of hb_set_t directly
Behdad Esfahbod 7b927748 2025-02-05T12:25:54 [bit-set] Rename a method
Behdad Esfahbod b44f6ff5 2025-02-05T12:19:48 [perf/texts] Add a list of just 2letter strings
Behdad Esfahbod 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
Behdad Esfahbod fc825168 2025-02-05T11:17:18 [aat] Remove idempotent check Not necessary after the recent filtering. Another 10% speedup with LucidaGrande.
Behdad Esfahbod 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
Behdad Esfahbod 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.
Behdad Esfahbod 7d14eb5e 2025-02-05T10:46:28 [aat] Minor rename
Behdad Esfahbod 6215d68b 2025-02-05T10:43:24 [aat] Minor tweak to logic DELETED_GLYPH can also initiate action.
Behdad Esfahbod dc4ff701 2025-02-05T10:42:33 [bit-page] Add a couple of operators
Behdad Esfahbod 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.
Behdad Esfahbod d9e99baa 2025-02-05T02:06:59 [aat] Move is_actionable outside of the driver_context
Behdad Esfahbod 5ade5bab 2025-02-05T01:53:09 [aat] Move Flags out of driver_context_t
Behdad Esfahbod 9f38690e 2025-02-05T01:39:28 [aat] Remove another unused parameter One logic change, but should be fine.
Behdad Esfahbod d9058c64 2025-02-05T01:38:06 [aat] Remove an unused parameter
Behdad Esfahbod 1a278073 2025-02-05T00:35:40 [array] Micro-optimize
Behdad Esfahbod c87bfe41 2025-02-05T00:22:27 [morx] Reuse a variable
Behdad Esfahbod e99e6538 2025-02-05T00:08:29 [aat-map] Micro-optimize a malloc
Behdad Esfahbod 3e27038f 2025-02-04T23:39:42 [aat-map] Micro-optimize
Behdad Esfahbod 7f5fac7c 2025-02-04T23:35:34 [test-buffer] Fix unintionally merged change
Behdad Esfahbod f0ead852 2025-02-04T23:27:03 [aat] Implement set filtering for Noncontextual chains as well
Behdad Esfahbod e5bdba0b 2025-02-04T23:03:23 [aat] Rename a variable
Behdad Esfahbod cb09fe79 2025-02-04T22:54:10 [bit-set] Remove a likely()
Behdad Esfahbod 749dc1ee 2025-02-04T22:53:17 [bit-set] Fix may_intersect() logic
Behdad Esfahbod b30c65e2 2025-02-04T22:48:58 Merge pull request #5040 from harfbuzz/aat-set [aat] Speed up subchain skipping using exact sets
Behdad Esfahbod 22a21e81 2025-02-04T22:21:52 [aat] Fix a crash
Behdad Esfahbod 275fb565 2025-02-04T22:07:48 [morx] Clean up memory
Behdad Esfahbod 255dadc1 2025-02-04T22:02:11 [set] Speed up may_intersect()
Behdad Esfahbod a6173280 2025-02-04T22:00:14 [bit-set] Sprinkle a few .arrayZ around All accesses are valid.
Behdad Esfahbod 7862c7c5 2025-02-04T21:37:27 Rename a method again
Behdad Esfahbod 474bef1c 2025-02-04T19:17:13 [aat] Use exact set for buffer intersection versus subchains
Behdad Esfahbod 95eefa38 2025-02-04T19:16:57 [set] Add a brute-force intersects(other_set)
Behdad Esfahbod 80bbb0b2 2025-02-04T18:42:33 [set-digest] Rename a method
Behdad Esfahbod 7d17ea49 2025-02-04T18:43:33 Merge pull request #5037 from harfbuzz/face-blob [face] Add fallback implementation to hb_face_reference_blob
Khaled Hosny a315d43b 2025-02-04T20:41:01 [doc] Update hb_face_reference_blob() and hb_reference_table_func_t
Behdad Esfahbod 5b49ac21 2025-02-04T18:40:27 Merge pull request #5039 from harfbuzz/lucida [aat] Speed up Lucida Grande among others
Behdad Esfahbod 722ab548 2025-02-04T17:59:39 [kerx] Don't compute buffer digest We don't use it in kerx
Behdad Esfahbod 449c7f2a 2025-02-04T17:56:22 [aat] Add some tracing
Behdad Esfahbod 3a1d7ee7 2025-02-04T17:33:42 [aat] Remove the buffer-digest threshold This can help us skip entire subchains, eg. when they are for different scripts. Speeds up LucidaGrande with ASCII text by 20%.
Behdad Esfahbod e1cb3b15 2025-02-04T17:28:29 Revert "[aat] Remove set-digest" This reverts commit 832f199607292a41b4621b87a646c30cddc00124.
Behdad Esfahbod 359d163d 2025-02-04T17:11:46 Revert "[aat] Remove buffer-digest stuff" This reverts commit 7642366593826c0e04ad58df83fa63ec53960486.
Behdad Esfahbod 7d23e642 2025-02-04T17:11:13 Revert "[aat] Remove dead code" This reverts commit bf36f5c3a4ff0003d330e2c2fc410c0cde911cba.
Behdad Esfahbod d1099476 2025-02-04T17:12:23 Revert "[aat] Remove unused macro" This reverts commit 2ddcccd26ea4962a97ba6858952a5a71d032e6c1.
Behdad Esfahbod 2ddcccd2 2025-02-04T17:05:45 [aat] Remove unused macro
Behdad Esfahbod 1ff46235 2025-02-04T16:46:25 [morx] Micro-optimize
Khaled Hosny 4825e5e2 2025-02-04T00:54:58 [face] Add fallback implementation to hb_face_reference_blob If referencing the face blob is not possible (e.g. not implemented by the font functions), use face builder to create a blob out of individual table blobs. Fixes https://github.com/harfbuzz/harfbuzz/issues/5036
Behdad Esfahbod 9cf2ea3e 2025-02-04T13:34:31 Merge branch 'kern-set'
Behdad Esfahbod bf36f5c3 2025-02-04T13:32:31 [aat] Remove dead code
Behdad Esfahbod 76423665 2025-02-04T13:19:43 [aat] Remove buffer-digest stuff With both morx & kerx sped up now using cache / set, this is not beneficial anymore. Remove it.
Behdad Esfahbod 9a4601b0 2025-02-04T13:14:04 [kern/kerx] Use hb-set-t for left/right, to guard bsearch Use a set of all left glyphs participating in kerning, and all right glyphs participating in kerning, and use these two to weed out non-kerning pairs before bsearching into the kerns. Speeds up shaping of HelveticaNeue by ~10%.
Behdad Esfahbod 3e50a8df 2025-02-04T13:05:34 [buffer] Use UINT_MAX instead of wrong macro
Behdad Esfahbod cafbdf42 2025-02-04T11:22:15 Merge pull request #5031 from harfbuzz/aat-speedup [aat] Add a class-cache to the machine & fix speed regression from 2023!
Behdad Esfahbod 267ebeec 2025-02-04T11:08:52 [perf/text] Add a long piece of JS code for benchmarking
Behdad Esfahbod ee4ca63b 2025-02-03T13:23:08 [aat] Micro-optimize
Behdad Esfahbod ed37725e 2025-02-03T12:59:58 [aat] Micro-optimize get_class
dependabot[bot] be022b35 2025-02-03T11:05:47 Bump actions/setup-python from 5.3.0 to 5.4.0 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.3.0 to 5.4.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/0b93645e9fea7318ecaed2b359559ac225c90a2b...42375524e23c412d93fb67b49958b491fce71c38) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] 42911142 2025-02-03T11:05:44 Bump github/codeql-action from 3.28.5 to 3.28.8 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.5 to 3.28.8. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/f6091c0113d1dcf9b98e269ee48e8a7e51b7bdd4...dd746615b3b9d728a6a37ca2045b68ca76d4841a) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Behdad Esfahbod 91572945 2025-02-02T18:25:45 [aat] More delambda Again, this was costly.
Behdad Esfahbod 556eb029 2025-02-02T18:19:32 [aat] Remove a lambda This lambda was added to "simplify" the logic. But has a lot of overhead.
Behdad Esfahbod d9a25bc4 2025-02-02T17:37:43 [aat] Allocate caches together No separate malloc.
Behdad Esfahbod 7b44a94a 2025-02-02T17:33:46 [aat] Shrink cache to 256 bytes per subtable
Behdad Esfahbod b89ab7d0 2025-02-02T17:08:20 [aat] Shrink the class cache to be 512 bytes instead of 1kb
Behdad Esfahbod 4fb0ac77 2025-02-02T17:06:45 [aat] Minor simplify
Behdad Esfahbod 832f1996 2025-02-02T17:04:06 [aat] Remove set-digest Now that we have a class cache, this was just speeding things down.
Behdad Esfahbod 0e13e781 2025-02-02T16:50:04 [aat] Add a class-cache to the machine Speeds up Times.ttc benchmark by 20%.
dependabot[bot] 3839e5fd 2025-02-03T10:53:59 Bump fonttools from 4.55.6 to 4.55.8 in /.ci Bumps [fonttools](https://github.com/fonttools/fonttools) from 4.55.6 to 4.55.8. - [Release notes](https://github.com/fonttools/fonttools/releases) - [Changelog](https://github.com/fonttools/fonttools/blob/main/NEWS.rst) - [Commits](https://github.com/fonttools/fonttools/compare/4.55.6...4.55.8) --- updated-dependencies: - dependency-name: fonttools dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Tor Arne Vestbø 04b2006f 2025-02-03T11:53:46 Remove outdated documentation note about CT operating in 96 DPI As extensively discussed and documented in #1484, Core Text does not operate in 96 DPI. Core Text doesn't actually have a concept of DPI internally, as it doesn't rasterize anything by itself, it just generates vector paths that get passed along to Core Graphics. In practice this means Core Text operates in the classical macOS logical DPI of 72, with one typographic point corresponding to one point in the Core Graphics coordinate system, which for a normal bitmap context then corresponds to one pixel -- or two pixels for a "retina" context with a 2x scale transform. As of f401f85a5a3ec4ab9c28012a0bfe713d7ee96951, we no longer apply any assumptions in HB about the target DPI being different than the 72 DPI used by CT, for example to account for the Web's standard of 96 DPI, so let's remove the documentation that still indicated this was necessary.
Khaled Hosny bbb9e563 2025-02-02T23:14:03 [ci] Pin GitHub workflows to Python 3.12 for now Some dependencies seem to fail to install on Python 3.13.
Behdad Esfahbod d8d0987f 2025-02-02T18:08:09 [benchmark-shape] Remove variable-font test set It doesn't really affect shaping much. Kill it.
Behdad Esfahbod 13844848 2025-02-02T11:56:01 [aat] Typo
Behdad Esfahbod f5e50890 2025-02-02T11:40:27 [open-type] Another tweak to cmp() Again, unlikely that compiler cares.
Behdad Esfahbod c68df817 2025-02-02T11:33:42 [open-type] Minor tweak to cmp() Remove codepath that was never taken.
Behdad Esfahbod 9bd75952 2025-02-02T11:14:49 [benchmark-shape] Compare diff shapers, not font funcs
Behdad Esfahbod 66bb94fe 2025-02-02T08:40:30 [set-digest] Tune back to starting with 4 Make Amiri slightly slower again, but works better for AAT fonts I tested.
Behdad Esfahbod 9fd855ed 2025-02-02T07:55:53 [set-digest] Tune a bit more Saves another 2% on Amiri benchmark.
Behdad Esfahbod 880b92ed 2025-02-02T07:43:33 [set-digest] Fix build on Linux
Behdad Esfahbod 92f13bbd 2025-02-01T19:11:20 [set-digest] Inline combiner Instead of defining one digest and then combining three of them at different shifts, inline the code The compiler can optimize it better. 3% speedup with Amiri benchmark.
Behdad Esfahbod c4c8eb4f 2025-01-26T16:25:55 [algs] Rename a macro Clashes with Apple simd/simd.h
Behdad Esfahbod b394ab39 2025-01-31T10:21:31 [test-buffer] Add code for testing end_ptr
Behdad Esfahbod 9ba286de 2025-02-01T14:23:47 [ot-shape] Micro-optimize ::equal For two integers, it's faster to compare them directly.
dependabot[bot] 6d8035a9 2025-01-27T11:02:35 Bump meson from 1.6.1 to 1.7.0 in /.ci Bumps [meson](https://github.com/mesonbuild/meson) from 1.6.1 to 1.7.0. - [Release notes](https://github.com/mesonbuild/meson/releases) - [Commits](https://github.com/mesonbuild/meson/compare/1.6.1...1.7.0) --- updated-dependencies: - dependency-name: meson dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] adc5ef1e 2025-01-27T10:38:27 Bump codecov/codecov-action from 5.1.2 to 5.3.1 Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.1.2 to 5.3.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/1e68e06f1dbfde0e4cefc87efeba9e4643565303...13ce06bfc6bbe3ecf90edbbf1bc32fe5978ca1d3) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>