libpayload: cbgfx: Clear screen by memcpy
commite5824ff2a90199b32941fe136d080f3f753c3b7f
authorYu-Ping Wu <yupingso@chromium.org>
Mon, 4 Oct 2021 07:02:38 +0000 (4 15:02 +0800)
committerHung-Te Lin <hungte@chromium.org>
Thu, 7 Oct 2021 14:11:56 +0000 (7 14:11 +0000)
tree8c4cf4ce93ce1a390d9e99b4e449131dff429f7d
parent1724b57729795f4eed9fb401572f634aa286ab0c
libpayload: cbgfx: Clear screen by memcpy

Instead of setting each pixel in the framebuffer, use memcpy() to clear
screen faster. As this method should be fast enough, remove the fast
path using memset().

The speed of clear_screen() on brya (x_resolution = 1920,
bytes_per_line = 7680):

- Using memset(): 15ms
- Setting each pixel: 25ms
- Using memcpy(): 14ms

Also remove set_pixel_raw() since it's now used in only one place.

BUG=none
TEST=emerge-brya libpayload
TEST=Saw developer screen on brya
BRANCH=none

Change-Id: I5f08fb50faab48d3db6b61ae022af3226914f72b
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/58128
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
payloads/libpayload/drivers/video/graphics.c