RT1052 (1024x600) FPS Optimize

Description

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

MCU: RT1052
OS: RTThread 4.0
LVGL:v7.10
LCD: 1024 x 600

What do you want to achieve?

Drag Page(1024x600),FPS >20

What have you tried so far?

Drag small element(page),FPS>20;PXP Enable, double dispbuff

Code to reproduce

dispbuff

ALIGN(64)  lv_color_t frame_buffer1[LCD_HEIGHT*LCD_WIDTH] SECTION("Cacheable");
ALIGN(64)  lv_color_t frame_buffer2[LCD_HEIGHT*LCD_WIDTH] SECTION("Cacheable");
lv_disp_buf_init(&disp_buf, frame_buffer1, frame_buffer2, LCD_HEIGHT*LCD_WIDTH);

lcd flush

void LCDIF_IRQHandler(void)
{

    uint32_t intStatus = ELCDIF_GetInterruptStatus(LCDIF);

    ELCDIF_ClearInterruptStatus(LCDIF, intStatus);

    //if (s_framePending)
    {
        if (intStatus & kELCDIF_CurFrameDone)
        {
			//if(s_framePending)
				s_frameCount++;
			
            s_framePending = false;
//			if(dynamic_sem != NULL)
//				rt_sem_release(dynamic_sem);
        }
    }
    __DSB();
}

static void lcd_fb_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p)
{
    int x1, x2, y1, y2;
	
	DCACHE_CleanInvalidateByRange((uint32_t)color_p, LCD_WIDTH * LCD_HEIGHT * 2);

	ELCDIF_SetNextBufferAddr(LCDIF, (uint32_t)color_p);
	
	//rt_sem_take(dynamic_sem, RT_WAITING_FOREVER);
	
	s_framePending = true;
	while(s_framePending)
		;
    lv_disp_flush_ready(disp_drv);
}

Screenshot and/or video

Finger drag black page,FPS is 5
image