
On 1/7/23 01:13, Simon Glass wrote:
Hi Alexander,
On Tue, 3 Jan 2023 at 14:50, Alexander Graf agraf@csgraf.de wrote:
CONFIG_VIDEO_COPY implemented a range based copying mechanism: If we
range-based
print a single character, it will always copy the full range of bytes from the top left corner of the character to the lower right onto the uncached frame buffer. This includes pretty much the full line contents of the printed character.
Since we now have proper damage tracking, let's make use of that to reduce the amount of data we need to copy. With this patch applied, we will only copy the tiny rectangle surrounding characters when we print them, speeding up the video console.
As a bonus, we remove a lot of code.
Signed-off-by: Alexander Graf agraf@csgraf.de
v2 -> v3:
- Rebase
- Make CONFIG_COPY always select VIDEO_DAMAGE
drivers/video/Kconfig | 5 ++ drivers/video/console_normal.c | 14 +---- drivers/video/console_rotate.c | 37 ++----------- drivers/video/console_truetype.c | 17 +----- drivers/video/vidconsole-uclass.c | 16 ------ drivers/video/video-uclass.c | 91 ++++++++----------------------- drivers/video/video_bmp.c | 7 --- include/video.h | 37 ------------- include/video_console.h | 49 ----------------- 9 files changed, 37 insertions(+), 236 deletions(-)
This feature needs some tests in test/dm/video.c
For sandbox, I think you will need to allow it to be enabled / disabled at runtime, so the some tests can use it and some not?
It should be good enough to enable the feature in one of the sandbox defconfigs and disable it in another.
Best regards
Heinrich
Regards, Simon