Is there a LV_BLEND_MODE_NONE mode?

Description

I use LVGL to display an OSD over a video. The majority of the time i just have simple fullscreen (1080p) lv_canvas displaying a DRM_FORMAT_ARGB8888 formatted image. Only on user input i switch to the OSD screen to have user interaction.

Background Info (not really important i think): The image is constantly updated from a third party application. I directly mapped the output buffer of the third party application to the lv_canvas draw buffer:

lv_canvas_set_buffer(canvas, shm_data, lv_display_get_horizontal_resolution(NULL), lv_display_get_vertical_resolution(NULL), LV_COLOR_FORMAT_ARGB8888);

All this works as expected. I see the live video and the transparent image with it’s contents. The image upate loop runs at 10 FPS.

However this spends a whole CPU core in argb8888_image_blend() which is completly unnecessary for my use case, see below.

What MCU/Processor/Board and compiler are you using?

Linux DRM

What LVGL version are you using?

master

What do you want to achieve?

I it possible to bypass argb8888_image_blend() and simply reley on the already existing image data ?
All this pixel by pixel work through in argb8888_image_blend() is uneeded work for this usecase.

What have you tried so far?

I already tried this which brings the CPU load down by 80% but i assume this will break other things.

diff --git a/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888.c b/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888.c
index fc063b277..691a8dcf8 100644
--- a/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888.c
+++ b/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888.c
@@ -6,6 +6,7 @@
 /*********************
  *      INCLUDES
  *********************/
+#include <string.h>
 #include "lv_draw_sw_blend_to_argb8888.h"
 #if LV_USE_DRAW_SW
 
@@ -880,6 +881,9 @@ static void LV_ATTRIBUTE_FAST_MEM argb8888_image_blend(lv_draw_sw_blend_image_ds
     int32_t x;
     int32_t y;
 
+    memcpy(dest_buf_c32,src_buf_c32, h * dest_stride);
+    return;
+
     if(dsc->blend_mode == LV_BLEND_MODE_NORMAL) {
         if(mask_buf == NULL && opa >= LV_OPA_MAX) {
             if(LV_RESULT_INVALID == LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_ARGB8888(dsc)) {