grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Antialiased fonts patch.


From: Vladimir 'φ-coder/phcoder' Serbinenko
Subject: Re: Antialiased fonts patch.
Date: Tue, 26 Jan 2010 10:11:01 +0100
User-agent: Mozilla-Thunderbird 2.0.0.22 (X11/20091109)

Evgeny Kolesnikov wrote:
> Here is the path for anti-aliased fonts.
>
>   
At first I was completely against antialiasing support because of
performance impact. But it being optional decreases the later. However
there is one problem: your patch relies on text_layer to be RGBA8888
which was a mistake. RGBA8888 for text layer is vastly inefficient
especially on 16-bit framebuffer and CPUs with small cache. I had plans
to switch it to indexed color. Do you really need 8bits and 4 aren't
enough? If 4 are enough we could make text_layer IA44 (indexed-4 bits,
alpha 4 bits) if you need 8 bits we can do IA88. I'm not sure which one
is faster: firs one is more cache-efficient, second one requires less
ALU. Are you interested in implementing this?
> Everything my path does is:
>
> 1) Enriches grub-mkfont with ability to write (and debug with -vv) 
> pff3 (as I call it now) font format. There are 2 differences between
> pff2 and pff3 formats: FILE magic (PFF2 becomes PFF3) and DATA block
> entires size multiples by 8 (1bit -> 8bit). In other words PFF3 stores
> 8-bit alpha channel instead of 1-bit.
> And grub-mkfont will still be able to generate pff2, of course.
>
>   
And by default grub-mkfont should generate not antialiased font for
performance reasons. But user or theme creator can choose to use
antialiased fonts if they wish.
> 2) Adds pff3 format parsing and drawing ability to font.c.
> And of course pff2 still there; actually as you can understand 95% of
> code is reused because of such a little differences in formats.
>
> Drawing itself implemented pretty straightforward: on each glyph
> drawing A channel (from glyph) and foreground color are converted to
> RGBA buffer and then blended in RGBA_8888 mode.
>
> As far as I understand writing custom blitter for now will not worth it
> in terms of efficiency.
>
>   
> When I test it I was unable to see performance difference between 1-bit
> fonts and my version. They both flickers a little.
>
> Files affected: /font/font.c and /util/grub-mkfont.c.
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/grub-devel


-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko


Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]