当前位置:   article > 正文

surfaceflinger中的composition小结[msm7x27为例]_surfaceflinger commit composite

surfaceflinger commit composite

    在高通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模块。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/827805
推荐阅读
相关标签
  

闽ICP备14008679号