Behdad Esfahbod
7d72fdd5bf
[benchmark-font] Do some work in draw_glyph callbacks
...
For no good reason other than matching what I'm adding to
skrifa benchmark. Doesn't seem to affect benchmarks whatsoever.
2023-07-02 09:56:09 -06:00
Behdad Esfahbod
47b5ee6789
Merge pull request #4306 from harfbuzz/gpos-lazy-device
...
GPOS lazy Device
2023-07-01 14:48:39 -04:00
Behdad Esfahbod
2d6091fc42
[GPOS] Make AnchorMatrix sanitize lazy again
...
Was reverted in the previous commit, because it was incomplete.
2023-06-30 11:49:19 -06:00
Behdad Esfahbod
0887382cdf
[GPOS] Fix sanitize
2023-06-30 11:39:53 -06:00
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
2023-06-30 11:33:39 -06:00
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
2023-06-30 11:05:54 -06:00
Behdad Esfahbod
7a35668258
Minor variable fix
2023-06-30 10:50:25 -06:00
Behdad Esfahbod
d338506ccf
[GPOS] Reuse sanitize_values_stride_unsafe in another function
2023-06-30 10:13:05 -06:00
Behdad Esfahbod
0fceaef0f7
[benchmark-subset] Report in microseconds, not milli
...
We're in that range now. :)
2023-06-30 08:50:49 -06:00
Behdad Esfahbod
547dc1a40e
[benchmark-font] Add load_face_and_shape benchmark
...
To measure face-loading performance
2023-06-30 08:48:43 -06:00
Behdad Esfahbod
fcf70af134
[perf] Fix break
2023-06-30 08:43:10 -06:00
Behdad Esfahbod
794fac327c
[glyf] Minor another range for loop
2023-06-29 20:56:16 -06:00
Behdad Esfahbod
0ae1676626
[CompositeGlyph] Minor use a range for loop
2023-06-29 20:38:42 -06:00
Behdad Esfahbod
05c01ad5d3
[SimpleGlyph] Minor use a range for loop
2023-06-29 16:49:20 -06:00
Behdad Esfahbod
4123e0c757
[path-builder] Speed up mid-point calculation
2023-06-29 16:27:35 -06:00
Behdad Esfahbod
73376b24cf
[subset/cff1] More error handling
2023-06-29 16:14:45 -06:00
Behdad Esfahbod
cc44b3bce0
[subset/cff1] Handle an error condition
...
Fixes https://oss-fuzz.com/testcase-detail/5191907895279616
2023-06-29 16:13:19 -06:00
Behdad Esfahbod
fc38c01ab0
Minor inline a function
2023-06-29 15:29:15 -06:00
Behdad Esfahbod
a520177e52
[gvar] Remove unnecessary initialization
2023-06-29 14:56:05 -06:00
Behdad Esfahbod
ca44c38c52
Add HB_ALWAYS_INLINE
...
With MSVC implementation as well.
2023-06-29 14:41:21 -06:00
Behdad Esfahbod
0a00dc0c71
[draw] Add a few unlikely's
2023-06-29 14:17:47 -06:00
Behdad Esfahbod
2d9c3da06a
[draw] Inline more functions
2023-06-29 13:31:11 -06:00
Behdad Esfahbod
17f29c8111
[benchmark_font/draw_glyphs] Implement quadratic_to
...
Not interested in the fallback implementation here.
2023-06-29 13:27:09 -06:00
Behdad Esfahbod
d26b3adebe
[draw-session] Inline small functions
2023-06-29 13:25:52 -06:00
Behdad Esfahbod
7aba1e6dd2
[cache] Minor use a range for loop
2023-06-29 12:44:34 -06:00
Behdad Esfahbod
afae537c3c
[cache] Minor remove .init()
...
Use constructor.
2023-06-29 12:42:44 -06:00
Behdad Esfahbod
c49ca37115
[Glyph] Minor micro-optimize away a function call
...
For when coords are not set.
2023-06-29 12:38:45 -06:00
Behdad Esfahbod
5fb7b02ac1
[CompositeGlyph] Minor use range loop
2023-06-29 12:28:43 -06:00
Behdad Esfahbod
20b32b049b
[SimpleGlyph] Micro-optimize phantom_only
2023-06-29 12:08:11 -06:00
Behdad Esfahbod
d1660eaf32
[subset/cff] Minor use HB_OPTIMIZE_SIZE_VAL
2023-06-29 11:59:03 -06:00
Behdad Esfahbod
04809ede8e
[CompositeGlyph] Micro-optimize translate()
2023-06-29 11:58:53 -06:00
Behdad Esfahbod
229db9735e
[CompositeGlyph] Minor use vector::push()
2023-06-29 11:54:10 -06:00
Behdad Esfahbod
75101802a1
[CompositeGlyph] Micro-optimize
2023-06-29 10:54:49 -06:00
Behdad Esfahbod
e9d74d6bb3
[SimpleGlyph] Minor add an unlikely to error condition
2023-06-29 10:53:52 -06:00
Behdad Esfahbod
6abca413ae
[path-builder] Micro-optimize
...
No need to initialize these when has_data=false.
2023-06-29 10:39:49 -06:00
Behdad Esfahbod
5703c1c4ea
[path-builder] Add a couple of unlikely's
2023-06-29 10:35:23 -06:00
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.
2023-06-28 15:07:15 -06:00
Behdad Esfahbod
e42d6df55e
[glyf] Minor refactor a couple of lines and micro-optimize
2023-06-28 14:25:26 -06:00
Behdad Esfahbod
c31471d10e
[glyf] Micro-optimize
2023-06-28 13:51:54 -06:00
Behdad Esfahbod
83d75d5e9b
[glyf] always_inline consume_point
...
7% speedup in:
BM_Font/draw_glyph/Roboto-Regular.ttf/hb
2023-06-28 13:35:24 -06:00
Behdad Esfahbod
8795ccedd6
Revert "[SimpleGlyph] Avoid branches in read_points"
...
This reverts commit ba062c713e
.
2023-06-28 13:29:29 -06:00
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.
2023-06-28 13:24:37 -06:00
Behdad Esfahbod
62f5ed461e
[subset/cff] Fix an infinite loop
...
Fixes https://oss-fuzz.com/testcase-detail/5419002026131456
2023-06-28 12:04:28 -06:00
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.
2023-06-28 11:37:45 -04:00
أحمد المحمودي (Ahmed El-Mahmoudy)
10b9ca54e1
Fix typo: subtitution -> substitution
2023-06-28 11:36:52 -04:00
Behdad Esfahbod
73a82af1f4
[subset/cff] Remove stale wrong code
...
With my recent rewrite of serialize_header, this seems to
work now.
2023-06-27 17:05:22 -06:00
Behdad Esfahbod
158eba66b3
[subset/cff] Fix compiler error
...
About variable with internal linkage with no definition.
2023-06-27 16:22:54 -06:00
Behdad Esfahbod
b04721993f
[subset/cff1] Micro-optimize code
...
Let compiler see whether optional argument is present.
2023-06-27 16:08:24 -06:00
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.
2023-06-27 16:01:17 -06:00
Behdad Esfahbod
dfaf9cd54b
[subset/cff1] Minor optimize
2023-06-27 14:56:32 -06:00