283****com
我在监测刷屏函数drv_adapter_disp_flush时发现了两种不同格式的刷新格式,在页面不动刷屏是时HAL_GDC_RGB565,滑动时采用的是HAL_GFX_TSC4 ,GDC格式与GFX格式是不同的吗?目前屏幕在上述两种格式下刷屏均有低概率的上半屏花屏(难以复现不好抓),可以提供几个方向以供修改吗?另外我还发现滑动中刷屏时_cachebuffer_width 与_framebuffer_width大小不一致,_cachebuffer_width 小一点,效果选的是LV_TRANS_EFFECT_FADE_ZOOM_ALT
Seiyou

1. 渲染和打屏的FrameBuffer格式不是同一个值,渲染使用的是HAL_GFX_RGB565和HAL_GFX_TSC4,打屏使用的是HAL_GDC_RGB565和HAL_GDC_TSC4,只不过HAL_GDC_TSC4与HAL_GFX_TSC4的值恰好一样,但HAL_GFX_RGB565和HAL_GDC_RGB565的值不一致,在flush时需要做转换。
2. 上半花屏大概率是错误的打屏格式导致的。FrameBuffer 1在Transition过程中会被拆分成两个TSC4格式的FrameBuffer用于渲染过渡动画。请确保Transition过程中始终使用HAL_GDC_TSC4打屏。
3. TSC4格式要求长宽为4的整数倍,如果不足会向下取整。如果屏幕分辨率不是4的整数倍,cache_buffer的尺寸小于framebuffer是正常的。
打开微信,使用“扫一扫”即可关注