Re: [PATCH 2/5] video console: refactoring and optimization
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 : > > Hi Dzmitry, > > On Wed, 4 Jan 2023 at 04:17, Dzmitry Sankouski 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@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@debian:~/side/u-boot$ du --bytes drivers/video/console_simple.o > > 53848 drivers/video/console_simple.o > > > > Old: > > dzmitry@debian:~/side/u-boot$ du --bytes drivers/video/console_normal.o > > 44728 drivers/video/console_normal.o > > dzmitry@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 > > to build each commit, then > > buildman -b -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 : > > > > > > Hi Dzmitry, > > > > > > On Mon, 26 Dec 2022 at 13:50, Dzmitry Sankouski > > > 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 > > > > --- > > > > 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
Re: [PATCH 2/5] video console: refactoring and optimization
Hi Dzmitry, On Wed, 4 Jan 2023 at 04:17, Dzmitry Sankouski 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@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@debian:~/side/u-boot$ du --bytes drivers/video/console_simple.o > 53848 drivers/video/console_simple.o > > Old: > dzmitry@debian:~/side/u-boot$ du --bytes drivers/video/console_normal.o > 44728 drivers/video/console_normal.o > dzmitry@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 to build each commit, then buildman -b -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 : > > > > Hi Dzmitry, > > > > On Mon, 26 Dec 2022 at 13:50, Dzmitry Sankouski > > 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 > > > --- > > > 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
Re: [PATCH 2/5] video console: refactoring and optimization
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@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@debian:~/side/u-boot$ du --bytes drivers/video/console_simple.o 53848 drivers/video/console_simple.o Old: dzmitry@debian:~/side/u-boot$ du --bytes drivers/video/console_normal.o 44728 drivers/video/console_normal.o dzmitry@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. пт, 30 дек. 2022 г. в 01:41, Simon Glass : > > Hi Dzmitry, > > On Mon, 26 Dec 2022 at 13:50, Dzmitry Sankouski 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 > > --- > > 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
Re: [PATCH 2/5] video console: refactoring and optimization
Hi Dzmitry, On Mon, 26 Dec 2022 at 13:50, Dzmitry Sankouski 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 > --- > 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