1、首先LV_USE_PERF_MONITOR统计的不是真实的fps,lvgl可以没有限制的一直刷画面,看起来帧率的确高,但是滑动场景下,比较容易看到画面撕裂,不想看到撕裂就只能开双缓冲,像QT,MiniGUI这些框架也是如此,默认是没有用上双缓冲的,可以传入下面的宏看fps打印
TARGET_CFLAGS+=-DLV_USE_SUNXIFB_DEBUG
2、开启LVGL8_USE_SUNXIFB_DOUBLE_BUFFER后,可以解决画面撕裂的问题,但是需要做整屏buffer的拷贝,这里会比较耗时
3、开启LVGL8_USE_SUNXIFB_G2D后,就是把整屏buffer的拷贝从用cpu拷贝,切换到g2d拷贝
4、开启LVGL8_USE_SUNXIFB_G2D_ROTATE后,就可以用G2D旋转整个屏幕,会比原来的CPU旋转快很多
5、G2D的优势在于blend,scale,rotate,lv_g2d_test在使能g2d的场景下,会传入宏
TARGET_CFLAGS+=-DLV_USE_SUNXIFB_G2D_FILL \
-DLV_USE_SUNXIFB_G2D_BLEND \
-DLV_USE_SUNXIFB_G2D_BLIT \
-DLV_USE_SUNXIFB_G2D_SCALE
6、lv_demo_benchmark、lv_example不能使能第5步的宏,因为其中的图片不是申请的物理连续内存,不能使用g2d来进行blend等功能,但是可以使能LVGL8_USE_SUNXIFB_DOUBLE_BUFFER,LVGL8_USE_SUNXIFB_G2D,LVGL8_USE_SUNXIFB_G2D_ROTATE来加速双缓冲情况下的拷贝与屏幕旋转功能,但是整体还是单缓冲的帧率要高