lvgl9 单缓冲 部分渲染,缓冲区大小为屏幕的四分之一,显示有问题

创建一个按钮,但是会显示4个按钮
lv_display_t disp = lv_display_create(xres, yres);
uint8_t draw_tmp_buf = malloc(xresyres
bytes);
memset(draw_tmp_buf, 0xff, xresyresbytes);
lv_display_set_buffers(disp, draw_tmp_buf, NULL, xres200bytes, LV_DISPLAY_RENDER_MODE_PARTIAL);
lv_display_set_flush_cb(disp, fb_display_flush);
下面是刷新的时候手动复制的代码
uint8_t tmp = px_map;
for (y = act_y1; y <= act_y2; y++) {
uint8_t p = draw_buf + yfb_info.line_length + act_x1
bytes;
memcpy(p, tmp, w*bytes);
tmp += w * bytes;
}