diff options
author | Kirill Chibisov <contact@kchibisov.com> | 2020-01-27 03:54:33 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-27 03:54:33 +0300 |
commit | 6b327b6f8f0f308ff8f46cdf551ce0d0f3eda60b (patch) | |
tree | b42a7002902be622cd853b87f48508f8bdd89e9b /CHANGELOG.md | |
parent | 0f15dc05d9332bb9dc71bd9b70bc737da2dc33c5 (diff) |
Rework Fontconfig fallback to use cached list from font_sort
Previous implementation was querying Fontconfig using `charset` in a pattern,
which was leading to unpredictable fallbacks in some cases, since Fontconfig
was picking the font with the most coverage for a given charset, regardless of
user configuration. Moreover all fallback was based on font_match which is
extremely slow for such performance sensitive task as a fallback, so alacritty
had a hard times on vtebench's unicode-random-write.
The new approach is to use some internal fallback list from font_sort
and iterate over it to get a proper fallback font, since it matches the
following example query from `fc-match`:
`fc-match -s "monospace:pixelsize=X:style=Y"
That being said it's more intuitive for users to setup their system Fontconfig
fallback, and also most applications are doing similar things. Moreover the new
implementation uses internal caches over Fontconfig API when possible and
performs font matches only once during load of requested font with font_sort,
which leads to dramatically improved performance on already mentioned
vtebench's unicode-random-write.
Fixes #3176.
Fixes #3134.
Fixes #2657.
Fixes #1560.
Fixes #965.
Fixes #511.
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r-- | CHANGELOG.md | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 04323ba3..19238ef7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Underline position for bitmap fonts - Selection rotating outside of scrolling region - Throughput performance problems caused by excessive font metric queries +- Unicode throughput performance on Linux/BSD +- Resize of bitmap fonts +- Crash when using bitmap font with `embeddedbitmap` set to `false` +- Inconsistent fontconfig fallback ### Removed |