[PATCH v4 7/9] video: Use VIDEO_DAMAGE for VIDEO_COPY

Simon Glass sjg at chromium.org
Sun Jan 8 16:48:47 CET 2023


Hi Heinrich,

On Sat, 7 Jan 2023 at 16:22, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 1/7/23 01:13, Simon Glass wrote:
> > Hi Alexander,
> >
> > On Tue, 3 Jan 2023 at 14:50, Alexander Graf <agraf at 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 at 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.

Yes that would work, e.g. enable in sandbox but not sandbox_flattree

Regards,
Simon


More information about the U-Boot mailing list