Qualcomm平台 屏幕旋转180° 调试过程

本文详细记录了在Android 4.1系统、Qualcomm MSM8X25Q芯片上解决屏幕180°旋转问题的调试过程。通过分析lcd driver ic、mdp旋转和framework旋转三种方案,最终发现屏幕截图LayerScreenshot在旋转时导致的问题,并提供了修复代码示例。
摘要由CSDN通过智能技术生成

环境:

OS: Android4.1

Chipset:MSM8X25Q

mdp:3.03


背景:

屏幕反着打,需要显示旋转180°。

旋转方案:

1.   通过lcd driver ic直接让屏幕旋转。

2.   通过mdp旋转。

3.   Framework旋转。

 

调试过程:

方案1:

由于玻璃是单扫描方向,如果直接将driver IC反着扫,也就是说从IC

的memory里反着取数据,而玻璃还是正着扫描的话,结果就会产生

Tearing。此方案理论上直接行不通。

 

方案2:

       在mdp_ppp.c传参数flip_v+flip_h给mdp register,告诉ppp模块

在使用mdp composition旋转180°。

       考虑到GPU的composition会绕过mdp的ppp模块,因此将debug.composition.type

改成mdp,也就是想让系统全部用mdp去做composition.

       事实上,有些特殊情况,mdp是无法处理的,像alpha不是完全透明的,

旋转太复杂的等。这也可以从framework中的代码里的注释看到:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值