[HarfBuzz] Amiri and OpenType performance

Behdad Esfahbod behdad at behdad.org
Tue Apr 16 18:59:58 PDT 2013


Ok, I found a bug in the set digest initialization and fixed it.  Minor
lookups (those affecting a few glyphs only) are much faster now.  Please
re-measure.

b

On 13-04-16 05:11 PM, Khaled Hosny wrote:
> On Tue, Apr 16, 2013 at 04:19:56PM -0400, Behdad Esfahbod wrote:
>> On 13-04-15 06:21 PM, Khaled Hosny wrote:
>>> On Mon, Apr 15, 2013 at 10:37:05PM +0200, Khaled Hosny wrote:
>>>> On Mon, Apr 15, 2013 at 04:20:09PM -0400, Behdad Esfahbod wrote:
>>>>> BTW, disabling 'kern' makes it more than twice faster!
>>>>
>>>> Aha. Looks like my support for subtending marks is totally inefficient,
>>>> it amounts for half the processing time! I guess I know where to look
>>>> now.
>>>
>>> Half of the kern overhead is from the duplication to support subtending
>>> marks in both HarfBuzz and Uniscribe (I tried using ltra/rtla but that
>>> doesn’t work). I’m still thinking of a more efficient way to do it.
>>
>> Can you elaborate a bit?  I like to better understand this, and hopefully we
>> can also find a better way to do it.
> 
> The aya mark issue we discussed on the Persian computing list few months
> ago; basically when script is Arabic, a string
> 
>   <aya><digit¹><digit²><digit³>
> 
> Will be matched in reverse order by HarfBuzz, unlike Uniscribe or even
> HarfBuzz itself when using setting script to Latin, even though the
> output will be left to right in all cases.
> 
> Anyway, I rewrote that code and it is now less complex and saves around
> 25% overall (though now it is broken for ICU LE, but I can’t care less).
> Dropping the duplications saves another 5%
> 
> http://www.khaledhosny.org/files/tmp/amiri-regular.ttf
> 
> Other than that I see no obvious way to decrease the number of lookups,
> lumping a dozen or so of calt and kern lookups together made things
> worse actually.
> 
> Regards,
> Khaled
> 

-- 
behdad
http://behdad.org/



More information about the HarfBuzz mailing list