当前位置: 首页 > article >正文

Android trace presentFence屏幕显示的帧

Android trace presentFence屏幕显示的帧

presentFence :当帧成功显示到屏幕时,present fence就会signal。

FrameMissed/GpuFrameMissed/HwcFrameMissed表示上一次合成的结果,当SurfaceFlinger合成后显示到屏幕上,present fence就会signal。因此可将present fence signal作为一次合成完结标志。SurfaceFlinger每次开始被Vsync-sf唤醒时,会先检查上一次合成情况,方式就是检查上一次合成的present fence有没有signal。如果没有,则认为是FrameMissed,并结合上一次合成方式是否有GPU或者HWC参与,同步GpuFrameMissed/HwcFrameMissed信息。

BufferTx :DrawFrame里queueBuffer以后BufferTx会增加,SF起来响应拿走Buffer合成时会减少; BufferTx内有可用Buffer,SF才会真正去合成。

present fence没有及时signal可能原因是GPU负载过高会导致底层大部分时间都在等GPU渲染工作完成,延迟了present fence的signal,导致FrameMissed。

dequeueBuffer时间长一般就是没有可用的buffer,SurfaceFlinger消费能力有问题,需要去看SurfaceFlinger。

trace中GPU Completion的每个waiting for GPU completion ×××长度,大致可以作为GPU渲染所花费的时间(即acquire fence释放的总时间)。通过这个时间,可以判断是否有GPU bound的现象。

相对应的,waiting for HWC release ×××的长度大致可以作为release fence的释放总时间参考。在release fence signal之前,GPU是无法对dequeueBuffer拿到的Buffer进行读写的(因为此时Buffer还是归HWC所有)。通过这点,可以判断Display是否有问题。

Android trace中CPU的RenderThread与GPU-CSDN博客文章浏览阅读952次,点赞15次,收藏25次。在Android系统中,RenderThread是负责GPU渲染的关键线程,它通过dequeueBuffer和queueBuffer机制与GPU进行交互,执行图形图像的密集渲染任务。RenderThread的存在解耦了Android的UI主线程与GPU渲染,避免了UI线程的阻塞,同时充分利用了GPU的并行计算能力,减少了栅格化的耗时。在硬件加速开启的情况下,RenderThread与GPURenderThread协同工作,通过SurfaceFlinger进行图像合成和显示。如果应用关闭硬件加速,则只有UIT_renderthread https://blog.csdn.net/zhangphil/article/details/148003427

http://www.lryc.cn/news/2380581.html

相关文章:

  • Spring是如何实现scope作用域支持
  • Helm Chart 中配置多个 Docker Registry 地址以实现备用访问
  • FreeSWITCH rtcp-mux 测试
  • c++ 类的语法4
  • NMOS和PMOS的区别
  • java云原生实战之graalvm 环境安装
  • 2025年电工杯新规发布-近三年题目以及命题趋势
  • python打卡day30@浙大疏锦行
  • 替换word中的excel
  • 大模型服务如何实现高并发与低延迟
  • 异丙肌苷市场:现状、挑战与未来展望
  • OBS Studio:windows免费开源的直播与录屏软件
  • [ 计算机网络 ] | 宏观谈谈计算机网络
  • 经典面试题:TCP 三次握手、四次挥手详解
  • 高光谱数据处理技术相关
  • 【动态规划】P10988 [蓝桥杯 2023 国 Python A] 走方格|普及+
  • Rocketmq leader选举机制,通过美国大选解释
  • 机器视觉的PVC卷对卷丝印应用
  • 利用 SQL Server 作业实现异步任务处理,简化系统架构
  • LabVIEW数据库使用说明
  • MATLAB实现GAN用于图像分类
  • 25考研经验贴(11408)
  • java中的Filter使用详解
  • PostgreSQL初体验
  • css使用clip-path属性切割显示可见内容
  • 新京东,正在成为一种生活方式
  • Linux 文件(2)
  • 分析 redis 的 exists 命令有一个参数和多个参数的区别
  • 《具身智能机器人:自修复材料与智能结构设计的前沿探索》
  • Java 10IO流