和你一起终身学习,这里是程序员Android
经典好文推荐,通过阅读本文,您将收获以下知识点:
一、Camera P1 trace Tag二、Camera P1 Trace 拆解笔记
一、Camera P1 trace Tag
为了性能,Camera P1 阶段的trace 是没有打开的,当定位到P1 阶段出现性能问题的时候,可以通过下面命令打开 cam_p1 的traceadb 命令打开p1 trace 的命令如下:
adb wait-for-deviceadb rootadb remountadb shell "setprop debug.egl.traceGpuCompletion 1"adb shell "setprop debug.egl.trace systrace"adb shell "setprop debug.atrace.tags.enableflags 0x4040e"adb shell "setprop vendor.dp.systrace.enable 1"adb shell "setprop vendor.debug.camera.ulog.mode 0x11"adb shell "setprop vendor.debug.camera.ulog.filter 0xfffff"adb shell "setprop vendor.debug.camera.ulog.func 1"adb shell "pkill camera*"pause
二、Camera P1 Trace 拆解笔记
没有打开P1 prop trace
没有打开Camera p1 strace 的trace 显示如下:
没有打开P1 prop 时候
打开P1 prop 时候的trace
打开P1 prop 时候的trace
1.camera FWK 下发request 请求
以req:30 为例HIDL::ICameraDeviceSession::processCaptureRequest_3_4::client
2.Camera HAL 相应 request 请求
通过HWBind 向hal server 端下发请求HIDL::ICameraDeviceSession::processCaptureRequest_3_4::server
FWK / HAL req:30 举例
以req:30 为例
3.Sensor 出帧,P1 deque
3A计算时长,sensor 出帧,然后P1deque
以req:30 为例
3A:Sensor 出帧的SOF ID
Sensor 出帧的SOF id
3A:下设定的 SOF ID
3A SOFID
P2_Dispatch
P2_Dispatch 30
Camera P1 阶段拆解
1.P1:queue
1.P1:queue|Fnum:30 Rnum:302.P1:create|Fnum:30 Rnum:303.P1:3A-preset|Pkey:31 Fnum:30 Rnum:304.P1::REQ_LOG|Mnum:0 SofIdx:0 Fnum:30 Rnum:30 FlushSet:0x0
1.P1:queue
2.P1:3A-set
5.P1:3A-set|Pkey:31 Mnum:31 Fnum:30 Rnum:306.P1::SET_LOG|Mnum:31 SofIdx:0 Fnum:30 Rnum:30 FlushSet:0x0
2.P1:3A-set
3. P1:setup
7.P1:setup|Mnum:31 SofIdx:30 Fnum:30 Rnum:308.P1::ENQ_LOG|Mnum:31 SofIdx:30 Fnum:30 Rnum:30 FlushSet:0x09.P1:DRV-enque|Mnum:31 SofIdx:30 Fnum:30 Rnum:30
3. P1:setup
4. P1:3A-get
10.P1:3A-get|Mnum:31 SofIdx:30 Fnum:30 Rnum:3011.P1:ISP-get|Mnum:31 SofIdx:30 Fnum:30 Rnum:3012.P1:result|Mnum:31 SofIdx:30 Fnum:30 Rnum:3013.P1:return|Mnum:31 SofIdx:30 Fnum:30 Rnum:3014.P1:release|Mnum:31 SofIdx:30 Fnum:30 Rnum:30 FlushSet:0x015.P1::DEQ_LOG|Mnum:31 SofIdx:30 Fnum:30 Rnum:30 FlushSet:0x0
4. P1:3A-get
5.P1::OUT_LOG
P1 结束,进入P2 阶段
16.P1::OUT_LOG|Mnum:31 SofIdx:30 Fnum:30 Rnum:30 FlushSet:0x017.P2_Dispatch:enque()
5.P1::OUT_LOG
至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,比如:文章底部留言,12小时内必删,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
点个在看,为大佬点赞!