首页 > 其他分享 >Android显示子系统相关基础概念

Android显示子系统相关基础概念

时间:2024-04-26 15:24:16浏览次数:17  
标签:retire fence buffer acquireFence 概念 set releaseFence Android 子系统

1.fence概念:acquireFence、releaseFence、retireFence

每一个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的结果不再被需要的时候。

标签:retire,fence,buffer,acquireFence,概念,set,releaseFence,Android,子系统
From: https://www.cnblogs.com/yyyd/p/18160156

相关文章

  • RK3568 android13 HDMI和SPK同时有声音
    Index:base/services/core/java/com/android/server/WiredAccessoryManager.java===================================================================---base/services/core/java/com/android/server/WiredAccessoryManager.java (revision2786)+++base/services/co......
  • js 闭包的概念及应用场景
    1.概念是内部函数可以访问外部函数作用域中的变量。2.来由由于JavaScript中的函数作用域规则和函数可以作为值传递的特性产生的3.优点封装性(可以将变量和函数封装起来,防止外部访问和修改,提高了代码的可维护性和可重用性)保存状态(即使函数已经执行完毕,状态仍然保存,在事件处理......
  • 语音信号基本概念了解
    1、幅度数字音频信号最基本的一个属性就是它的幅度。峰值幅度(peakamplitude)和均方根(rootmeansquare,RMS)幅度是最常用的两种度量幅度的方式。在比较两个幅度时,用两者之比通常要比用两者之差更好。为了让比较变得容易,我们经常用分贝(decibel)这一对数单位来表示幅度......
  • milvus相关概念
    本主题解释了Milvus向量数据库中的一些核心概念。位集(Bitset)在Milvus中,位集是由0和1构成的位数数组,相对于整数、浮点数或字符,它们可以被用于紧凑、高效地表示某些数据。默认情况下,位数为0,只有满足某些要求时才会设置为1。通道(Channel)在Milvus中,有两个不同的通道。它们......
  • Devops基本概念和原理,什么是 DevOps? DevOps 介绍
    Devops基本概念和原理,什么是DevOps?DevOps介绍一、什么是DevOps1、DevOps概述DevOps,即DevelopmentandOperations,是一组过程、方法与系统的统称,用于促进软件开发、运维和质量保障部门之间的沟通、协作与整合。DevOps的出现是由于软件行业日益清晰的认识到:为了按时交付......
  • Docker - 基本概念、与虚拟机的区别、架构、镜像操作、容器操作、数据卷挂载
    Docker-基本概念、与虚拟机的区别、架构、镜像操作、容器操作、数据卷挂载 一、对Docker 的理解1、Docker基本概念我们平时开发大型项目组件较多,依赖关系复杂,环境差异大,通过Docker就可解决上述问题~ Docker就是一个快速交付应用、运行应用的技术:运行前后:......
  • 15_pinctl和gpio子系统
    pinctl和gpio子系统1.什么是pinctrl和gpio子系统?​ pinctrl子系统是用来设置引脚的复用关系和电气属性的,gpio子系统是当pinctrl子系统把引脚的复用关系设置为gpio功能以后就可以使用gpio子系统来操作引脚了,比如引脚的输入输出,高低电平等2.LinuxPinctrl子系统提供的功能是......
  • 九上数学概念
    九上数学概念二次函数y=x²的图像是一条曲线,分别向左上方和右上方无线伸展。它属于一类特殊的曲线,这类曲线被称为抛物线二次函数y=x²的图像就称为抛物线y=x²抛物线与它的对称轴交点叫做抛物线的顶点。抛物线y=x²的顶点是原点O(0,0)一般地,二次函数y=ax²(其中a是常数,且a≠0)的......
  • inode(index node)是Unix、Linux和类Unix操作系统中的一个重要概念, 在Windows操作系统中
    inode(indexnode)是Unix、Linux和类Unix操作系统中的一个重要概念,用于描述文件系统中的文件或目录。每个文件或目录都与一个inode相关联。inode包含以下信息:文件或目录的权限(读、写、执行)。文件类型(普通文件、目录、符号链接等)。拥有者和所属组。文件的大小。访问、修......
  • Android开发中Button背景颜色不能修改问题及解决方法
    问题:使用AndroidStudio进行android开发时,不管是拖出来的Button,还是自己设置的Button,Button的背景色一直无法修改,呈现系统默认的紫色。例如我的代码,预览按钮的时候应该是彩色,但还是默认的颜色:紫色 问题原因:出现该问题的原因主要是因为使用AndroidStudio4.1之后的版本进行......