HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1
实际是一个阴影的动画
applyDim
其实就是初始化的值
void Rect::makeInvalid() {
left = 0;
top = 0;
right = -1;
bottom = -1;
}
结果是这个样子
07-01 18:26:18.741 1675 1675 E SurfaceFlinger: name animation background stackId=1 width=2880, h=1620 ,crop=( 0, 0, -1, -1)
size有点奇怪
应该是这里搞得事情

trace是下面这个样子
07-01 18:47:14.749 2612 2912 E WindowManager: java.lang.Throwable
07-01 18:47:14.749 2612 2912 E WindowManager: at com.android.server.wm.DimLayer.setBounds(DimLayer.java:228)
07-01 18:47:14.749 2612 2912 E WindowManager: at com.android.server.wm.DimLayer.setBoundsForFullscreen(DimLayer.java:222)
07-01 18:47:14.749 2612 2912 E WindowManager: at com.android.server.wm.DimLayerController.updateDimLayer(DimLayerController.java:59)
07-01 18:47:14.749 2612 2912 E WindowManager: at com.android.server.wm.WindowSurfacePlacer.performLayoutLockedInner(WindowSurfacePlacer.java:1001)
07-01 18:47:14.749 2612 2912 E WindowManager: at com.android.server.wm.WindowSurfacePlacer.applySurfaceChangesTransaction(WindowSurfacePlacer.java:652)
07-01 18:47:14.749 2612 2912 E WindowManager: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementInner(WindowSurfacePlacer.java:317)
07-01 18:47:14.749 2612 2912 E WindowManager: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:232)
07-01 18:47:14.749 2612 2912 E WindowManager: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:180)
07-01 18:47:14.749 2612 2912 E WindowManager: at com.android.server.wm.WindowManagerService.relayoutWindow(WindowManagerService.java:2936)
07-01 18:47:14.749 2612 2912 E WindowManager: at com.android.server.wm.Session.relayout(Session.java:215)
07-01 18:47:14.749 2612 2912 E WindowManager: at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:286)
07-01 18:47:14.749 2612 2912 E WindowManager: at com.android.server.wm.Session.onTransact(Session.java:136)
07-01 18:47:14.749 2612 2912 E WindowManager: at android.os.Binder.execTransact(Binder.java:565)
adjustBounds user=Stack=1 mBounds=Rect(-480, -270 - 2400, 1350)
下面这里设置size的,没有看到裁剪

applydim的流程如下
07-01 19:12:30.152 2610 2633 E WindowManager: applyDim
07-01 19:12:30.152 2610 2633 E WindowManager: java.lang.Throwable
07-01 19:12:30.152 2610 2633 E WindowManager: at com.android.server.wm.DimLayerController.applyDim(DimLayerController.java:320)
07-01 19:12:30.152 2610 2633 E WindowManager: at com.android.server.wm.DimLayerController.applyDimBehind(DimLayerController.java:306)
07-01 19:12:30.152 2610 2633 E WindowManager: at com.android.server.wm.WindowState.applyDimLayerIfNeeded(WindowState.java:1588)
07-01 19:12:30.152 2610 2633 E WindowManager: at com.android.server.wm.WindowSurfacePlacer.applySurfaceChangesTransaction(WindowSurfacePlacer.java:696)
07-01 19:12:30.152 2610 2633 E WindowManager: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementInner(WindowSurfacePlacer.java:317)
07-01 19:12:30.152 2610 2633 E WindowManager: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:232)
07-01 19:12:30.152 2610 2633 E WindowManager: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:180)
07-01 19:12:30.152 2610 2633 E WindowManager: at com.android.server.wm.WindowManagerService$H.handleMessage(WindowManagerService.java:8096)
这里开始的dim

应该就是dimlayer了。
7-02 11:34:27.253 1675 1675 E SurfaceFlinger: name com.wenfengtou.xposedsimpledemo/com.wenfengtou.xposedsimpledemo.MainActivity width=1920, h=1080 ,crop=( 0, 0,1920,1080)
07-02 11:34:27.253 1675 1675 E SurfaceFlinger: name DimLayerController/Stack=0 width=2880, h=1620 ,crop=( 0, 0, -1, -1)
07-02 11:34:27.254 1675 1675 I hwc : HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.wm.DimLayerController.updateDimLayer(DimLayerController.java:70)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.wm.TaskStack.setBounds(TaskStack.java:292)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.wm.TaskStack.updateDisplayInfo(TaskStack.java:363)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.wm.TaskStack.attachDisplayContent(TaskStack.java:675)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.wm.WindowManagerService.attachStack(WindowManagerService.java:5004)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.am.ActivityStack.attachDisplay(ActivityStack.java:455)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.am.ActivityStackSupervisor$ActivityContainer.attachToDisplayLocked(ActivityStackSupervisor.java:3968)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.am.ActivityStackSupervisor.createStackOnDisplay(ActivityStackSupervisor.java:2305)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.am.ActivityStackSupervisor.getStack(ActivityStackSupervisor.java:1919)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.am.ActivityStackSupervisor.setWindowManager(ActivityStackSupervisor.java:555)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.am.ActivityManagerService.setWindowManager(ActivityManagerService.java:2477)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.SystemServer.startOtherServices(SystemServer.java:623)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.SystemServer.run(SystemServer.java:328)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.server.SystemServer.main(SystemServer.java:213)
01-01 08:00:11.665 2612 2612 V DimLayerController: at java.lang.reflect.Method.invoke(Native Method)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
01-01 08:00:11.665 2612 2612 V DimLayerController: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
看看他的透明度时怎么设置下去的。
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DimLayer.adjustAlpha(DimLayer.java:164)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DimLayer.setAlpha(DimLayer.java:160)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DimLayer.stepAnimation(DimLayer.java:350)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DimLayerController.animateDimLayers(DimLayerController.java:263)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DimLayerController.animateDimLayers(DimLayerController.java:213)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DisplayContent.animateDimLayers(DisplayContent.java:462)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.WindowAnimator.animateLocked(WindowAnimator.java:725)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.WindowAnimator.-wrap0(WindowAnimator.java)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.WindowAnimator$1.doFrame(WindowAnimator.java:140)
加到framecallback去播放动画的。
这个时hardware层

节点路径的对应


hwc_prepare
hisi_hwc_prepare
海思的hwc

合成的流程参考:
https://blog.csdn.net/kc58236582/article/details/70146317
mDisplayData这个数据时怎么来的??
https://blog.csdn.net/kc58236582/article/details/70146317
莫非时这里??

layerdim有什么特殊标志?
网友评论