[PATCH 2/5] video console: refactoring and optimization

Dzmitry Sankouski dsankouski at gmail.com
Mon Feb 13 18:02:25 CET 2023


For version 3 patches:

Summary of 8 commits for 1232 boards (4 threads, 1 job per thread)
01: video console: unite normal and rotated files
02: video console: refactoring and optimization
   sandbox: (for 1/7 boards) all -64.0 text -64.0
03: video console: add support for fonts wider than 1 byte
04: video console: add select font logic to vidconsole uclass driver
   sandbox: (for 1/7 boards) all +288.0 data +32.0 text +256.0
05: video console: allow font size configuration at runtime
   sandbox: (for 1/7 boards) all +1208.0 data +64.0 rodata +96.0 text +1048.0
06: video console: add 12x22 Sun font from linux
07: video console: add 16x32 Terminus font from linux
08: video console: add 12x22 console simple font test
   sandbox: (for 1/7 boards) all +13152.0 data +11336.0 rodata +256.0
text +1560.0
(no errors to report)

ср, 4 янв. 2023 г. в 23:02, Simon Glass <sjg at chromium.org>:

>
> Hi Dzmitry,
>
> On Wed, 4 Jan 2023 at 04:17, Dzmitry Sankouski <dsankouski at gmail.com> wrote:
> >
> > Regarding code-size there's a gain with CONFIG_CONSOLE_ROTATION
> > enabled, and penalty with disabled:
> >
> > New:
> > CONFIG_VIDEO_CONSOLE=y
> > CONFIG_CONSOLE_ROTATION=y
> > dzmitry at debian:~/side/u-boot$ du --bytes drivers/video/console_simple.o
> > 108208  drivers/video/console_simple.o
> >
> > CONFIG_VIDEO_CONSOLE=y
> > # CONFIG_CONSOLE_ROTATION is not set
> > dzmitry at debian:~/side/u-boot$ du --bytes drivers/video/console_simple.o
> > 53848   drivers/video/console_simple.o
> >
> > Old:
> > dzmitry at debian:~/side/u-boot$ du --bytes drivers/video/console_normal.o
> > 44728   drivers/video/console_normal.o
> > dzmitry at debian:~/side/u-boot$ du --bytes drivers/video/console_rotate.o
> > 85424   drivers/video/console_rotate.o
> >
> > In theory, there should be a small performance penalty for the `if
> > (direction)` statement -
> > for every row, and for each pixel. For an 8x16 font, it'll be 144 if statements.
> >
> > I'll comment on functions in the next patch versions.
>
> To check this, use:
>
> buildman -b <branch> <board>
>
> to build each commit, then
>
> buildman -b <branch> <board> -sS
>
> You can add -B for function bloat and --step 0 to diff just the first
> and last commits.
>
>
> - Simon
>
> >
> > пт, 30 дек. 2022 г. в 01:41, Simon Glass <sjg at chromium.org>:
> > >
> > > Hi Dzmitry,
> > >
> > > On Mon, 26 Dec 2022 at 13:50, Dzmitry Sankouski <dsankouski at gmail.com> wrote:
> > > >
> > > > - get rid of code duplications in switch across bpp values
> > > > - extract common pixel fill logic in two functions one per
> > > > horizontal and vertical filling
> > > > - rearrange statements in put_xy* methods in unified way
> > > > - replace types - uint*_t to u*
> > > >
> > > > Signed-off-by: Dzmitry Sankouski <dsankouski at gmail.com>
> > > > ---
> > > >  drivers/video/console_simple.c | 508 ++++++++++++---------------------
> > > >  1 file changed, 184 insertions(+), 324 deletions(-)
> > >
> > > This looks like a nice tidy up.
> > >
> > > Is there a code-size or performance penalty with this? E.g. with
> > > CONFIG_CONSOLE_ROTATION disabled
> > >
> > > Please can you comment the functions property so we know what they do?
> > >
> > > Regards,
> > > Simon


More information about the U-Boot mailing list