harfbuzz/src
Behdad Esfahbod cdbf24e87f [OTLayout] Accelerate lookups by batching
If we need to apply many many lookups, we can fasten that up by applying
them in batches.  For each batch we keep the union of the coverage of
the lookups participating.  We can then skip glyph ranges that do NOT
participate in any lookup in the batch.  The batch partition is
determined optimally by a mathematical probability model on the glyphs
and a dynamic-program to optimize the partition.

The net effect is 30% speedup on Amiri.  the downside is more memory
consuption as each batch will keep an hb_set_t of its coverage.

I'm not yet convinced that the tradeoff is worth pursuing.  I'm trying
to find out ways to optimized this more, with less memory overhead.

This work also ignores the number of subtables per lookup.  That may
prove to be very important for the performance numbers from here on.
2013-05-02 15:39:16 -04:00
..
hb-icu-le Improve license information 2012-10-28 21:26:19 -07:00
hb-old [old] Speed up Unicode properties access in hb-old shaper 2013-04-11 14:45:58 -04:00
hb-ucdn [ucdn] Match upstream changes 2012-12-04 15:57:02 -05:00
Makefile.am Fix distcheck 2013-03-04 21:29:38 -05:00
check-c-linkage-decls.sh Make sure HB_BEGIN_DECLS / HB_END_DECLS is only used in public headers 2012-07-13 10:19:10 -04:00
check-header-guards.sh Fix check-header-guards on OS X 2012-01-27 02:23:22 -05:00
check-includes.sh Add check-includes.sh 2011-05-27 15:58:54 -04:00
check-libstdc++.sh Minor 2012-08-28 19:08:36 -04:00
check-static-inits.sh Minor 2012-08-28 19:08:36 -04:00
check-symbols.sh Bug 63107 - FTBFS on ppc64: symbols marked with 'D' on powerpc64 instead 2013-04-04 12:06:46 -04:00
gen-arabic-table.py [OT] Streamline Arabic fallback shaping table 2012-09-06 01:16:39 -04:00
gen-indic-table.py Add South-East Asian shaper 2013-02-12 12:14:10 -05:00
hb-atomic-private.hh Put back MemoryBarrier fallback implementation on MINGW32 2013-04-04 15:02:03 -04:00
hb-blob.cc Always create sub-blobs in MEMORY_MODE_READONLY 2013-02-25 17:06:35 -05:00
hb-blob.h Always create sub-blobs in MEMORY_MODE_READONLY 2013-02-25 17:06:35 -05:00
hb-buffer-deserialize-json.rl [buffer] Better parse glyph names 2013-02-27 18:49:18 -05:00
hb-buffer-deserialize-text.rl [buffer] Better parse glyph names 2013-02-27 18:49:18 -05:00
hb-buffer-private.hh Minor 2013-05-02 15:39:15 -04:00
hb-buffer-serialize.cc [buffer] Implement buffer deserialization for format=json 2013-02-27 18:49:18 -05:00
hb-buffer.cc Renamed DEBUG to something else 2013-04-30 11:34:00 -04:00
hb-buffer.h [buffer] Implement buffer deserialization for format=text 2013-02-27 18:49:18 -05:00
hb-cache-private.hh Fix cache implementation 2012-06-09 01:43:20 -04:00
hb-common.cc Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS 2013-02-12 15:26:45 -05:00
hb-common.h Add hb_feature_to/from_string() 2012-09-06 22:09:06 -04:00
hb-coretext.cc [coretext] Fixed typo 2012-12-09 19:39:40 -05:00
hb-coretext.h [coretext] Add hb_coretext_face_get_cg_font() 2012-12-09 18:47:36 -05:00
hb-fallback-shape.cc Disable automatic segment properties guessing 2013-02-15 07:51:47 -05:00
hb-font-private.hh Add hb_face_[sg]et_glyph_count() 2012-11-15 16:23:21 -08:00
hb-font.cc Add hb_face_[sg]et_glyph_count() 2012-11-15 16:23:21 -08:00
hb-font.h Add hb_face_[sg]et_glyph_count() 2012-11-15 16:23:21 -08:00
hb-ft.cc [ft] Remove TODO items that I'm not going to fix 2013-03-09 20:30:22 -05:00
hb-ft.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-glib.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-glib.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-gobject-enums.cc.tmpl Fix make distcheck 2011-08-24 19:36:50 +02:00
hb-gobject-structs.cc Add gobject enum support, but disabled for now 2011-08-19 19:59:24 +02:00
hb-gobject.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-graphite2.cc [graphite2] Don't crash if language is not set 2013-04-02 14:08:53 -04:00
hb-graphite2.h [graphite2] Add hb_graphite2_face_get_gr_face and hb_graphite2_font_get_gr_font 2012-12-09 18:44:41 -05:00
hb-icu-le.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-icu.cc [ICU] Fix includes 2012-08-16 07:32:59 -04:00
hb-icu.h Minor 2012-08-08 14:59:09 -04:00
hb-mutex-private.hh Improve check for Windows platforms 2013-02-12 15:31:58 -05:00
hb-object-private.hh Move object mutext into the user-data array 2012-12-04 00:35:54 +02:00
hb-old.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-open-file-private.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-open-type-private.hh Hand-code bsearch in the hot inner loop. 2013-04-19 14:36:32 -04:00
hb-ot-head-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-hhea-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-hmtx-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-layout-common-private.hh Minor 2013-04-18 19:04:12 -04:00
hb-ot-layout-gdef-table.hh [OTLayout] Remove operator() from Coverage 2012-11-24 19:13:55 -05:00
hb-ot-layout-gpos-table.hh [OTLayout] Add start/end to apply_string() 2013-05-02 15:39:16 -04:00
hb-ot-layout-gsub-table.hh [OTLayout] Accelerate lookups by batching 2013-05-02 15:39:16 -04:00
hb-ot-layout-gsubgpos-private.hh [OTLayout] Add is_inplace() method to GSUB 2013-05-02 15:39:16 -04:00
hb-ot-layout-private.hh [OTLayout] Add start/end to apply_string() 2013-05-02 15:39:16 -04:00
hb-ot-layout.cc [OTLayout] Add start/end to apply_string() 2013-05-02 15:39:16 -04:00
hb-ot-layout.h [API] Add hb_ot_layout_lookup_get_coverage() 2013-05-02 15:39:16 -04:00
hb-ot-map-private.hh [OTLayout] Accelerate lookups by batching 2013-05-02 15:39:16 -04:00
hb-ot-map.cc [OTLayout] Accelerate lookups by batching 2013-05-02 15:39:16 -04:00
hb-ot-maxp-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-name-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-shape-complex-arabic-fallback.hh [OTLayout] Accelerate lookups by batching 2013-05-02 15:39:16 -04:00
hb-ot-shape-complex-arabic-table.hh "Update" to Unicode 6.2.0 tables 2012-12-02 19:14:29 +02:00
hb-ot-shape-complex-arabic.cc [Arabic] Zero marks by GDEF, not Unicode category 2013-04-04 14:25:36 -04:00
hb-ot-shape-complex-default.cc Don't compose Hangul jamo 2013-04-04 23:06:54 -04:00
hb-ot-shape-complex-indic-machine.rl Fix compile warnings for ragel-generated machines 2013-02-14 11:58:13 -05:00
hb-ot-shape-complex-indic-private.hh [SEA] Treat Consonant_Final like Consonant_Medial 2013-02-12 15:28:21 -05:00
hb-ot-shape-complex-indic-table.cc Add South-East Asian shaper 2013-02-12 12:14:10 -05:00
hb-ot-shape-complex-indic.cc [Indic] Futher adjust ZWJ handling in Indic-like shapers 2013-03-19 06:22:06 -04:00
hb-ot-shape-complex-myanmar-machine.rl Fix compile warnings for ragel-generated machines 2013-02-14 11:58:13 -05:00
hb-ot-shape-complex-myanmar.cc [Indic] Futher adjust ZWJ handling in Indic-like shapers 2013-03-19 06:22:06 -04:00
hb-ot-shape-complex-private.hh Add note re Hangul shaping 2013-04-05 12:38:58 -04:00
hb-ot-shape-complex-sea-machine.rl Fix compile warnings for ragel-generated machines 2013-02-14 11:58:13 -05:00
hb-ot-shape-complex-sea.cc [Indic] Futher adjust ZWJ handling in Indic-like shapers 2013-03-19 06:22:06 -04:00
hb-ot-shape-complex-thai.cc Adjust mark advance-width zeroing logic for Myanmar 2013-02-12 09:44:57 -05:00
hb-ot-shape-fallback-private.hh Move code around 2013-02-21 15:23:39 -05:00
hb-ot-shape-fallback.cc [Indic] Futher adjust ZWJ handling in Indic-like shapers 2013-03-19 06:22:06 -04:00
hb-ot-shape-normalize-private.hh Don't compose Hangul jamo 2013-04-04 23:06:54 -04:00
hb-ot-shape-normalize.cc Don't compose Hangul jamo 2013-04-04 23:06:54 -04:00
hb-ot-shape-private.hh Minor 2013-05-02 15:39:15 -04:00
hb-ot-shape.cc Move code around 2013-02-21 15:23:39 -05:00
hb-ot-tag.cc Update OT language tags 2012-12-08 19:28:41 -05:00
hb-ot-tag.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-ot.h Bunch of independent changes (ouch) 2012-11-15 18:48:10 -08:00
hb-private.hh Renamed DEBUG to something else 2013-04-30 11:34:00 -04:00
hb-set-private.hh Minor 2013-05-02 14:00:16 -04:00
hb-set.cc Remove HB_DEBUG_SET_DIGESTS 2013-04-17 19:01:49 -04:00
hb-set.h [tests] Start adding tests for hb-set.h 2013-01-02 22:50:36 -06:00
hb-shape-plan-private.hh Implement hb_shape_plan_get_shaper() 2012-11-16 13:23:37 -08:00
hb-shape-plan.cc Add assertions for a couple programmer errors 2013-02-15 07:46:57 -05:00
hb-shape-plan.h Implement hb_shape_plan_get_shaper() 2012-11-16 13:23:37 -08:00
hb-shape.cc [buffer] Implement buffer deserialization for format=json 2013-02-27 18:49:18 -05:00
hb-shape.h Minor 2012-12-21 16:51:15 -05:00
hb-shaper-impl-private.hh Switch old and uniscribe backends to shape_plan 2012-07-27 01:37:18 -04:00
hb-shaper-list.hh Make the OT shaper default, even if CoreText or Uniscribe is enabled 2012-11-15 13:15:39 -08:00
hb-shaper-private.hh Fix crasher during multi-thread shaper data creation 2013-01-10 00:03:36 -06:00
hb-shaper.cc Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used 2013-01-29 22:45:00 -05:00
hb-tt-font.cc Whitespace 2012-11-16 18:49:54 -08:00
hb-ucdn.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-unicode-private.hh Remove Hangul filler characters from Default_Ignorable chars 2013-03-19 07:00:41 -04:00
hb-unicode.cc Import UCDN into source tree 2012-10-02 16:23:29 -04:00
hb-unicode.h Use a lookup table for modified_combining_class 2012-08-01 18:07:42 -04:00
hb-uniscribe.cc Minor 2012-12-09 18:37:38 -05:00
hb-uniscribe.h Minor 2012-08-07 21:44:25 -04:00
hb-utf-private.hh Fix warnings 2012-12-05 19:14:28 -05:00
hb-version.h.in Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-warning.cc Revert "Minor" 2013-01-14 00:32:12 -06:00
hb.h Bunch of independent changes (ouch) 2012-11-15 18:48:10 -08:00
main.cc Use namespace for OpenType tables 2012-08-28 17:57:49 -04:00
test-buffer-serialize.cc [buffer] Implement buffer deserialization for format=json 2013-02-27 18:49:18 -05:00
test-size-params.cc Make test-size-params write size in points 2012-12-11 14:31:13 -05:00
test-would-substitute.cc Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup() 2012-11-15 14:57:31 -08:00
test.cc Minor 2013-04-09 14:06:54 -04:00