From bfb4e0861275774e73d9f724a4bc5bb417342081 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Wed, 14 Sep 2022 14:29:27 +0200 Subject: [PATCH] LibGfx: Use `memcpy` instead of `fast_u32_copy` for blitting In some artificial full screen blitting profiling, I've seen `memcpy` take up about 4% fewer samples each time I measure. It seems like `fast_u32_copy` is not as fast as it'd like to believe. --- Userland/Libraries/LibGfx/Painter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibGfx/Painter.cpp b/Userland/Libraries/LibGfx/Painter.cpp index 63911f2ea7..c005ee2cd5 100644 --- a/Userland/Libraries/LibGfx/Painter.cpp +++ b/Userland/Libraries/LibGfx/Painter.cpp @@ -1066,7 +1066,7 @@ void Painter::blit(IntPoint const& position, Gfx::Bitmap const& source, IntRect ARGB32 const* src = source.scanline(src_rect.top() + first_row) + src_rect.left() + first_column; size_t const src_skip = source.pitch() / sizeof(ARGB32); for (int row = first_row; row <= last_row; ++row) { - fast_u32_copy(dst, src, clipped_rect.width()); + memcpy(dst, src, sizeof(ARGB32) * clipped_rect.width()); dst += dst_skip; src += src_skip; }