Behdad Esfahbod
0887382cdf
[GPOS] Fix sanitize
1 year ago
Behdad Esfahbod
83eb744e09
[sanizie] Inline check_range if not OPTIMIZE_SIZE
...
BM_Font/load_face_and_shape/NotoNastaliqUrdu-Regular.ttf/hb -0.1046 -0.1051 194 173 193 172
BM_Font/load_face_and_shape/NotoSerifMyanmar-Regular.otf/hb -0.2401 -0.2412 36 27 36 27
1 year ago
Behdad Esfahbod
690af7aa69
[GPOS] Sanitize Device tables lazily
...
This speeds up face loading for variable fonts by 80%!
Comparing before to after
Benchmark Time CPU Time Old Time New CPU Old CPU New
---------------------------------------------------------------------------------------------------------------------------------------------------------------
BM_Font/load_face_and_shape/Roboto-Regular.ttf/hb -0.0368 -0.0366 20 20 20 19
BM_Font/load_face_and_shape/RobotoFlex-Variable.ttf/hb -0.7149 -0.7162 77 22 77 22
BM_Font/load_face_and_shape/RobotoFlex-Variable.ttf/var/hb -0.7241 -0.7255 80 22 79 22
BM_Font/load_face_and_shape/SourceSansPro-Regular.otf/hb -0.1441 -0.1445 28 24 28 24
BM_Font/load_face_and_shape/AdobeVFPrototype.otf/hb -0.7893 -0.7910 66 14 66 14
BM_Font/load_face_and_shape/AdobeVFPrototype.otf/var/hb -0.7865 -0.7882 67 14 66 14
BM_Font/load_face_and_shape/SourceSerifVariable-Roman.ttf/hb -0.8895 -0.8900 227 25 226 25
BM_Font/load_face_and_shape/SourceSerifVariable-Roman.ttf/var/hb -0.8895 -0.8900 226 25 225 25
BM_Font/load_face_and_shape/Comfortaa-Regular-new.ttf/hb -0.5512 -0.5531 42 19 42 19
BM_Font/load_face_and_shape/NotoNastaliqUrdu-Regular.ttf/hb -0.1511 -0.1510 227 192 225 191
BM_Font/load_face_and_shape/NotoSerifMyanmar-Regular.otf/hb -0.1494 -0.1498 41 35 40 34
OVERALL_GEOMEAN -0.6443 -0.6456 0 0 0 0
1 year ago
Behdad Esfahbod
7a35668258
Minor variable fix
1 year ago
Behdad Esfahbod
d338506ccf
[GPOS] Reuse sanitize_values_stride_unsafe in another function
1 year ago
Behdad Esfahbod
0fceaef0f7
[benchmark-subset] Report in microseconds, not milli
...
We're in that range now. :)
1 year ago
Behdad Esfahbod
547dc1a40e
[benchmark-font] Add load_face_and_shape benchmark
...
To measure face-loading performance
1 year ago
Behdad Esfahbod
fcf70af134
[perf] Fix break
1 year ago
Behdad Esfahbod
794fac327c
[glyf] Minor another range for loop
1 year ago
Behdad Esfahbod
0ae1676626
[CompositeGlyph] Minor use a range for loop
1 year ago
Behdad Esfahbod
05c01ad5d3
[SimpleGlyph] Minor use a range for loop
1 year ago
Behdad Esfahbod
4123e0c757
[path-builder] Speed up mid-point calculation
1 year ago
Behdad Esfahbod
73376b24cf
[subset/cff1] More error handling
1 year ago
Behdad Esfahbod
cc44b3bce0
[subset/cff1] Handle an error condition
...
Fixes https://oss-fuzz.com/testcase-detail/5191907895279616
1 year ago
Behdad Esfahbod
fc38c01ab0
Minor inline a function
1 year ago
Behdad Esfahbod
a520177e52
[gvar] Remove unnecessary initialization
1 year ago
Behdad Esfahbod
ca44c38c52
Add HB_ALWAYS_INLINE
...
With MSVC implementation as well.
1 year ago
Behdad Esfahbod
0a00dc0c71
[draw] Add a few unlikely's
1 year ago
Behdad Esfahbod
2d9c3da06a
[draw] Inline more functions
1 year ago
Behdad Esfahbod
17f29c8111
[benchmark_font/draw_glyphs] Implement quadratic_to
...
Not interested in the fallback implementation here.
1 year ago
Behdad Esfahbod
d26b3adebe
[draw-session] Inline small functions
1 year ago
Behdad Esfahbod
7aba1e6dd2
[cache] Minor use a range for loop
1 year ago
Behdad Esfahbod
afae537c3c
[cache] Minor remove .init()
...
Use constructor.
1 year ago
Behdad Esfahbod
c49ca37115
[Glyph] Minor micro-optimize away a function call
...
For when coords are not set.
1 year ago
Behdad Esfahbod
5fb7b02ac1
[CompositeGlyph] Minor use range loop
1 year ago
Behdad Esfahbod
20b32b049b
[SimpleGlyph] Micro-optimize phantom_only
1 year ago
Behdad Esfahbod
d1660eaf32
[subset/cff] Minor use HB_OPTIMIZE_SIZE_VAL
1 year ago
Behdad Esfahbod
04809ede8e
[CompositeGlyph] Micro-optimize translate()
1 year ago
Behdad Esfahbod
229db9735e
[CompositeGlyph] Minor use vector::push()
1 year ago
Behdad Esfahbod
75101802a1
[CompositeGlyph] Micro-optimize
1 year ago
Behdad Esfahbod
e9d74d6bb3
[SimpleGlyph] Minor add an unlikely to error condition
1 year ago
Behdad Esfahbod
6abca413ae
[path-builder] Micro-optimize
...
No need to initialize these when has_data=false.
1 year ago
Behdad Esfahbod
5703c1c4ea
[path-builder] Add a couple of unlikely's
1 year ago
Behdad Esfahbod
f5eead04e6
[glyf/gvar] Optimize getting variable phantom points
...
Used when there's no HVAR table and get_h_advance().
I see some 10% speedup with a SourceSerifVariable-Roman with
the HVAR table removed.
1 year ago
Behdad Esfahbod
e42d6df55e
[glyf] Minor refactor a couple of lines and micro-optimize
1 year ago
Behdad Esfahbod
c31471d10e
[glyf] Micro-optimize
1 year ago
Behdad Esfahbod
83d75d5e9b
[glyf] always_inline consume_point
...
7% speedup in:
BM_Font/draw_glyph/Roboto-Regular.ttf/hb
1 year ago
Behdad Esfahbod
8795ccedd6
Revert "[SimpleGlyph] Avoid branches in read_points"
...
This reverts commit ba062c713e
.
1 year ago
Behdad Esfahbod
ba062c713e
[SimpleGlyph] Avoid branches in read_points
...
Calculate total bytes in read_flags and bounds-check once.
This slows things down apparently, so going to revert.
1 year ago
Behdad Esfahbod
62f5ed461e
[subset/cff] Fix an infinite loop
...
Fixes https://oss-fuzz.com/testcase-detail/5419002026131456
1 year ago
Chun-wei Fan
87b573615f
README.python.md: Add some notes for Windows
...
Note that the DLLs for HarfBuzz and its deps must be found %PATH% on Windows so
that pygobject is able to import and use HarfBuzz in Python scripts.
Also note that for Visual Studio builds, it is recommended that Visual Studio
2019 or later is used for the build, possibly in regards with how the
preprocessor handles C++ code when running g-ir-scanner.
1 year ago
أحمد المحمودي (Ahmed El-Mahmoudy)
10b9ca54e1
Fix typo: subtitution -> substitution
1 year ago
Behdad Esfahbod
73a82af1f4
[subset/cff] Remove stale wrong code
...
With my recent rewrite of serialize_header, this seems to
work now.
1 year ago
Behdad Esfahbod
158eba66b3
[subset/cff] Fix compiler error
...
About variable with internal linkage with no definition.
1 year ago
Behdad Esfahbod
b04721993f
[subset/cff1] Micro-optimize code
...
Let compiler see whether optional argument is present.
1 year ago
Behdad Esfahbod
1cabb65b0a
[subset/cff] Micro-optimize CFFIndex::serialize_header
...
Unfortunately hb_array_t::begin/end are faster than its _begin/_end.
As such, a range loop on array itself is faster than range loop on
pipeline starting with array. Rework code to loop on the array always.
1 year ago
Behdad Esfahbod
dfaf9cd54b
[subset/cff1] Minor optimize
1 year ago
Behdad Esfahbod
41f85d0179
[benchmark-font] Add RobotoFlex
...
We didn't have a variable TTF before!
1 year ago
Behdad Esfahbod
585c84268d
[subset/cff1] Minor micro-optimize
1 year ago
Behdad Esfahbod
00904503d8
[config] Graduate avar2 from boring-expansion
1 year ago