
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 sjg@chromium.org:
Hi Dzmitry,
On Mon, 26 Dec 2022 at 13:50, Dzmitry Sankouski dsankouski@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@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