HWComposer源代码分析

Android系统中硬件合成Vsync信号的追踪解析
本文详细介绍了Android系统中硬件合成Vsync信号的处理流程,从HWComposer类的构造到SurfaceFlinger的onVsyncReceived方法,深入剖析了Vsync信号如何在用户空间和硬件驱动之间传递,以及SurfaceFlinger如何响应Vsync事件来协调显示帧率。

代码路径为:/frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.cpp 代码版本为android P
此类跟硬件合成Vsync信号有关系。这篇文章主要跟踪下硬件合成Vsync的过程。废话不多说,先看下构造方法。
在这里插入图片描述
可以看到构造方法传入一个Composer,然后强转为 mHwcDevice变量。目前这个就是唯一的构造传入参数。
遇到了一个新的类,android::Hwc2::Composer,这个类实现在
/frameworks/native/services/surfaceflinger/DisplayHardware/ComposerHal.cpp 中。
在这里插入图片描述
我们的HWComposer的很多操作都委托给了Composer。先来看下HWComposer的几个比较重要的方法。
先来看下Composer怎么构造的。

165Composer::Composer(const std::string& serviceName)
166    : mWriter(kWriterInitialSize),
167      mIsUsingVrComposer(serviceName == std::string("vr"))
168{
   
    
//通过binder 调用HAL模块的mComposerService
169    mComposer = V2_1::IComposer::getService(serviceName);
170
171    if (mComposer == nullptr) {
   
   
172        LOG_ALWAYS_FATAL("failed to get hwcomposer service");
173    }
174
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值