acquireFence、releaseFence、retireFence
来源:互联网 发布:手机五线谱制作软件 编辑:程序博客网 时间:2024/05/21 04:22
每一个layer都有一个acquireFence和releaseFence,每一个系列layes都有一个retirefence,注意这边的是layers!多个layer。acquireFence用于生产者通知消费者生产已完成,releaseFence用于消费者通知生产者消费已完成。acquireFence: 禁止显示一个buffer的内容直到该fence被触发。HWC HAL的set函数被call到的时候并不知道buffer是否真正ready,acquireFence会在buffer内容真正ready的时候被signal,hwc要负责close acquireFenceFd。 releaseFence: 这个意味着属于这个layer的buffer已经不在被读取了,在一个buffer不在被读取的时候将会触发这个fence。HWC HAL的set函数return之前并不能保证buffer内容已经使用完毕,不再需要,所以hwc需要负责为这个buffer构建一个fence,releaseFence在set函数return之前被set起来,sf会等待releaseFence被signal之后才会把buffer拿去重用,sf要负责close releaseFenceFd。retireFence: 这个 scene或者 一系列的layers不再被显示到显示器上,当完成了一个frame的显示后触发这个fence。retire在这里是撤退、退休的意思。retireFence需要在这次composition retire后被singal,对于physical display来说,retire的概念是:当下个画面替换掉本次画面的时候。对于virtual display来说,retire的概念是:当内容被完整的写进outbuffer,并可以被read的时候.总的来说就是本次composition的结果不再被需要的时候。
阅读全文
0 0
- acquireFence、releaseFence、retireFence
- 对象的行为
- centos7 二进制安装mysql 5.7.16版本
- android跨线程通信eventbus
- 信号量dispatch_semaphore在iOS APP编程里的“应用”
- AndroidStudio 配置Kotlin
- acquireFence、releaseFence、retireFence
- docker 搭建私有仓库registry (多用户)
- 轻松理解依赖注入
- ArrayList和LinkedList性能比较
- arm bootloder最小启动
- [Unity&GameSparks]其他twitter用户怎么登录
- 面试问题你有什么问题
- 在Spring MVC中使用工具类调用Service层时,Service类为null如何解决
- 最大流问题预流推进算法(邻接表relabel_to_front)