[fpc-devel] Patch, font rendering on Arm-Linux devices.

Daniël Mantione daniel.mantione at freepascal.org
Tue Feb 26 15:13:37 CET 2008



Op Tue, 26 Feb 2008, schreef Bernd Mueller:

> Daniël Mantione wrote:
>> 
>> 
>> Op Tue, 26 Feb 2008, schreef Florian Klaempfl:
>> 
>>> Daniël Mantione schrieb:
>>>> 
>>>> 
>>>> Op Tue, 26 Feb 2008, schreef Vincent Snijders:
>>>> 
>>>>> Bernd Mueller schreef:
>>>>>> Hello,
>>>>>> 
>>>>>> the attached patch avoids misaligned data access (bus errors), during
>>>>>> font rendering (with the graph unit) on Arm-Linux devices.
>>>>>> 
>>>>> 
>>>>> Instead of testing for arm cpu, you could use
>>>>> FPC_REQUIRES_PROPER_ALIGNMENT too. So it is fixed for sparc as well.
>>>> 
>>>> Well, packed records are usually used when speed is unimportant. If the
>>> 
>>> Isn't this used to read a font file?
>> 
>> You are right. Therefore, the "unaligned" pseudo function is the proper 
>> solution.
>
> the main affected routines are unpack and decode. Both routines were called 
> for every single character (only for a stroked font) via OutTextXYDefault. So 
> speed is not unimportant ;-)

Loosing a few clock cycles per character is completely acceptable, and 
even the right engineering decision regarding size/memory trade-off. It 
would be different if it would be a few clock cycles per pixel. Anyway, 
the BGI font file format cannot be changed, so in such case the internal 
data structures would need to be different from the ones on disk. Not 
worth the effort.

Daniël


More information about the fpc-devel mailing list