surfaceflinger中的composition小结[msm7x27为例]

    在高通7x27平台上,surfaceflinger可以使用gpu/mdp/sw来做composition。因为mdp没有mmu,所以需要使用pmem才能正常工作。GPU可以通过mmu来使用非连续的内存,因此可以节省pmem的空间。

    下面来简单的讲讲surfaceflinger的composition过程,每个surface都会分配一个内存空间,当surface需要更新时,给surfaceflinger发送消息,surfaceflinger的主线程收到消息后,从阻塞状态恢复,首先按照每个surface的深度值,从最上层的surface开始,计算所有surface的可视区、遮挡区等,计算完成后,再按照深度值,从最底层的surface开始依次composition到主surface上。这里,可以用前面提到的gpu/mdp/sw三种方法来做composition。最后,主surface绘制完成后,底层调用flip,通过mdp dma刷新到lcd panel上去。

     默认情况下,系统会根据egl.cfg配置文件的内容决定是走GPU来做composition还是用mdp/sw来做composition。当决定走mdp/sw来做composition时,如果当前无法加载copybit库,则会用sw来做composition。否则,会使用mdp来做composition。

    基本的过程就是这样,最后顺便提一下,在msm7x30上,架构有了很大的变化。首先,多了一个c2d的硬件;其次,mdp的硬件架构发生了很大的变化,不支持原先的ppp操作,hal层的copybit库其实底下改为调用了c2d硬件来操作。

    后一篇我会仔细讲讲qualcomm的mdp模块。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值