跳过正文

图层合成策略导致闪屏问题分析

·52 字·
Huang JY
作者
Huang JY
记录全志 SoC、驱动开发、显示调试与智能硬件项目实践
目录

1. 环境
#

  • 平台:A133
  • 系统环境:Android 11
  • 屏幕:EDP 1920x1200

2. 问题描述
#

正常情况下屏幕显示正常,切换到特定界面会出现轻微闪烁。

正常界面:

image-0001
点击贝果可以切换到异常界面

异常界面:

image-160950
闪烁只是轻微闪烁,现象类似是背光出现明暗变化。

3. 结果
#

3.1 原因分析
#

(1)背光排查
#

因为现象类似是背光出现明暗变化,所以优先排查背光问题。

屏幕pwm输入频率范围

image-20260729095051558
主控输出为pwm频率为1K满足需求

排查背光电路问题:

image-20260729095702991
使用直流源代替VCC-5V供电,依旧出现闪烁问题,所以基本排除背光影响。

(2)DE排查
#

因为屏幕分辨率为1920x1200,怀疑DE频率不够

使用cat /sys/class/disp/disp/attr/sys可以查看de频率

默认de频率为300000000HZ:

image-20260729100616158

改为600000000HZ:

image-202607271446
闪烁依旧出现,排除带宽不够导致的。

(3)hwc-hal层排查
#

使用hwcdebug -o layer; logcat -s sunxihwc抓log:

image-20260729102014798
看到有一帧为GPU合成,之后又切回硬件合成这个过程gpu合成帧及硬件合成帧可能不连续,所以看到闪一下。

3.2 解决方法
#

禁止该场景下切换GPU合成:

image-20260729102130262

开发者模式GPU合成,但是可能会在复杂情况下掉帧:

image-20260729102240161

综合考虑使用屏蔽GPU合成策略