从显示驱动的角度分析问题:花屏、黑屏等显示异常

  1. 截图或录屏
    判断源图层内容是否正常

  2. 强制使用GPU合成
    开发者选项里disable HW overlays勾上。
    有的时候异常界面是闪现的,不方便截图。或者打开录屏后问题不复现(图层变多了问题不复现,打开录屏后显示流程有变化),可以试试强制GPU合成去复现。
    通常如果GPU合成也有问题,我们会把Bug先丢给GPU组处理。

  3. 检查log,看看有没有报错。
    根据报错内容进行分析。
    看一下出问题的时候软件行为有哪些。

  4. 如果是特定场景有问题:
    分析该场景打开了哪些功能,关掉这些功能再复现。排查显示异常和这些功能之间的关系。
    如果不是必现,对比正常和异常时的软件流程和硬件信号。

  5. 如果怀疑是和图层内容有关系:
    抓取图层信息 dumpsys SurfaceFlinger
    将源图层dump出来
    将平台端最后往屏上送图前的画面dump出来

  6. 检查dpu寄存器
    芯片公司的IP功能是自己实现,可能会有考虑不全。在源图层正常的情况下,查看dpu寄存器看看有没有配错的。或者用C model去仿真看是不是IP本身问题。

黑屏

  1. 检查log,判断系统是否睡了,显示有没有开。
  2. 背光值是否不为0,改变背光值亮度有没有变化。在暗处用手电筒照屏幕,观察有无显示。
  3. 开机一直黑屏
    a.检查uboot阶段屏幕ID是否读成功?
    b.测量上电时序,各路电是否正确配置,依照屏幕spec进行对比;
    c.屏幕是否正常,点屏阶段通常需要备两块屏,避免屏幕问题浪费时间。
    d.通过MIPI读写寄存器是否正常。
    e.跳过屏幕ID判断,代码里读ID成功写死。
  4. 开机一开始显示正常,后面出现黑屏 / 花屏
    a.检查kernel中屏幕是否成功找到。通常uboot和Kernel各有一套屏幕的配置文件。开机进入kernel后需要依赖屏幕名字或ID来找到对应的屏幕dtsi配置。(详见:DRM驱动代码分析:uboot和kernel之间屏幕是如何匹配的
    b.开机动画是surfaceflinger触发的,查看log看surfaceflinger是否正常

参考资料:
手机显示有点卡?也许是DPU性能拖了后腿

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值