典型问题分析(2) ---- MIUI开启全面屏出现闪烁

小米全面屏闪烁问题分析
问题现象

MIUI系统下,在设置中切换系统导航方式(从经典三键导航键设置为全面屏手势),在此界面上下滑动,会出现闪烁的黑块
如下图所示:
全面屏手势闪黑点

问题分析
  • 使用虚拟屏或者录屏验证,此问题不再复现;
  • 关闭HW overlay 功能,此问题不再出现;
  • 从Kernel 的log看,存在 ACE的error,但BSP team只能得出DPU 的读取的buffer 不符合 AFBC的编码这个结论,DPU读取Buffer 解码错误,产生了错误中断;
  • 单纯从kernel 的角度解读,没有结果;
    这个问题当时我没有分析出来,但是这种黑块类是典型的Fence问题,因为 fence 没有控制好导致更新了正在显示的buffer,
    仔细操作发现:右上角的全面屏手势选项是一个动画,发现动画被遮挡住的时候,特别容易复现
问题原因

hwcomposer 在layer composition type 是 client 的时候,没有给 Framebuffer Target layer 设置 release fence,注意是 layer 的 release fence, 解决办法是将drmAtomicCommit 的传出的 outretire fence 设置给layer;
关键在于上面的情形中,hw overlay 和 Framebuffer target 是在不断切换的,如果不发生频繁切换,是不会产生问题的

Framebuffer Target layer 的release fence 是一定要设置的,这个是 DPU IP 厂商提供的 DDK 问题

下面是 composition type 改变的两种情形:
情形1:

全面屏场景1:
Display 0 HWC layers:
-----------------------------------------------------------------------------------------------------------------------------------------------
 Layer name
           Z |  Window Type |  Comp Type |  Transform |   Disp Frame (LTRB) |          Source Crop (LTRB) |     Frame Rate (Explicit) [Focused]
-----------------------------------------------------------------------------------------------------------------------------------------------
 SurfaceView - com.android.settings/com.android.settings.SubSettings#0
  rel     -2 |            0 |     DEVICE |          0 |  380   62  662  626 |    0.0    0.0  440.0  880.0 |                              [*]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 com.android.settings/com.android.settings.SubSettings#1
  rel      0 |            1 |     DEVICE |          0 |    0    0  720 1650 |    0.0    0.0  720.0 1650.0 |                              [*]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 StatusBar#0
  rel      0 |         2000 |     DEVICE |          0 |    0    0  720   49 |    0.0    0.0  720.0   49.0 |                              [ ]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 NavigationBar0#0
  rel      0 |         2019 |     CLIENT |          0 |    0 1618  720 1650 |    0.0    0.0  720.0   32.0 |                              [ ]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 GestureStubHome#0
  rel      0 |         2024 |     CLIENT |          0 |    0 1600  720 1650 |    0.0    0.0  720.0   50.0 |                              [ ]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

h/w composer state:
  h/w composer enabled
[Display 0]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Index:5  Z:0  Transform:None  CompType Req:DEVICE  Res:DEVICE  isAFBC:1  BlendMode:NONE  ColorSpace:BT709
 ColorFormat:MALI_NV12AFBC  PlaneAlpha:255  W*H:440*880  Size:720896  Stride:768  Offset:0  Flags:20545
 DispFrame:(380,62,662,626)  SourceCrop:(0,0,440,880)  AFBCCrop:(0,4,72,12)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Index:1  Z:1  Transform:None  CompType Req:DEVICE  Res:DEVICE  isAFBC:1  BlendMode:PREMULT  ColorSpace:BT709
 ColorFormat:RGBA_8888  PlaneAlpha:255  W*H:720*1650  Size:5242880  Stride:3072  Offset:0  Flags:95
 DispFrame:(0,0,720,1650)  SourceCrop:(0,0,720,1650)  AFBCCrop:(0,0,48,14)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Index:2  Z:2  Transform:None  CompType Req:DEVICE  Res:DEVICE  isAFBC:1  BlendMode:PREMULT  ColorSpace:BT709
 ColorFormat:RGBA_8888  PlaneAlpha:255  W*H:720*49  Size:262144  Stride:3072  Offset:0  Flags:95
 DispFrame:(0,0,720,49)  SourceCrop:(0,0,720,49)  AFBCCrop:(0,0,48,15)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Index:0  Z:3  Transform:None  CompType Req:CLIENT  Res:CLIENT  isAFBC:1  BlendMode:PREMULT  ColorSpace:BT709
 ColorFormat:RGBA_8888  PlaneAlpha:255  W*H:720*32  Size:262144  Stride:3072  Offset:0  Flags:95
 DispFrame:(0,1618,720,1650)  SourceCrop:(0,0,720,32)  AFBCCrop:(0,0,48,32)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Index:3  Z:4  Transform:None  CompType Req:CLIENT  Res:CLIENT  isAFBC:1  BlendMode:PREMULT  ColorSpace:BT709
 ColorFormat:RGBA_8888  PlaneAlpha:255  W*H:720*50  Size:262144  Stride:3072  Offset:0  Flags:95
 DispFrame:(0,1600,720,1650)  SourceCrop:(0,0,720,50)  AFBCCrop:(0,0,48,14)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[FrameBuffer Target]
 Index:65535  Z:3  Transform:None  CompType Req:unknown  Res:unknown  isAFBC:1  BlendMode:PREMULT  ColorSpace:BT709
 ColorFormat:RGBA_8888  PlaneAlpha:255  W*H:720*1650  Size:5242880  Stride:3072  Offset:0  Flags:95
 DispFrame:(0,0,720,1650)  SourceCrop:(0,0,720,1650)  AFBCCrop:(0,0,48,14)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[Display 1]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[FrameBuffer Target]
 Index:65535  Z:4294967295  Transform:None  CompType Req:unknown  Res:unknown  isAFBC:0  BlendMode:NONE  ColorSpace:BT709
 ColorFormat:unknown  PlaneAlpha:1  W*H:0*0  Size:0  Stride:0  Offset:0  Flags:0
 DispFrame:(0,0,0,0)  SourceCrop:(0,0,0,0)  AFBCCrop:(0,0,0,0)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[Display 2]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[FrameBuffer Target]
 Index:65535  Z:4294967295  Transform:None  CompType Req:unknown  Res:unknown  isAFBC:0  BlendMode:NONE  ColorSpace:BT709
 ColorFormat:unknown  PlaneAlpha:1  W*H:0*0  Size:0  Stride:0  Offset:0  Flags:0
 DispFrame:(0,0,0,0)  SourceCrop:(0,0,0,0)  AFBCCrop:(0,0,0,0)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HWC Layer to OverlayEngine Mapping:
[display 0]
Layers Index | OverlayEngine
      5  ->  0
      1  ->  1
      2  ->  3
      ffff  ->  2
=================================================================================================================

情形2(注意 composition type 发生了切换):

Display 0 HWC layers:
-----------------------------------------------------------------------------------------------------------------------------------------------
 Layer name
           Z |  Window Type |  Comp Type |  Transform |   Disp Frame (LTRB) |          Source Crop (LTRB) |     Frame Rate (Explicit) [Focused]
-----------------------------------------------------------------------------------------------------------------------------------------------
 SurfaceView - com.android.settings/com.android.settings.SubSettings#0
  rel     -2 |            0 |     CLIENT |          0 |  380    0  662  238 |    0.0  509.0  440.0  880.0 |                              [*]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 com.android.settings/com.android.settings.SubSettings#1
  rel      0 |            1 |     CLIENT |          0 |    0    0  720 1650 |    0.0    0.0  720.0 1650.0 |                              [*]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 StatusBar#0
  rel      0 |         2000 |     DEVICE |          0 |    0    0  720   49 |    0.0    0.0  720.0   49.0 |                              [ ]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 NavigationBar0#0
  rel      0 |         2019 |     DEVICE |          0 |    0 1618  720 1650 |    0.0    0.0  720.0   32.0 |                              [ ]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 GestureStubHome#0
  rel      0 |         2024 |     DEVICE |          0 |    0 1600  720 1650 |    0.0    0.0  720.0   50.0 |                              [ ]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

h/w composer state:
  h/w composer enabled
[Display 0]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Index:5  Z:0  Transform:None  CompType Req:CLIENT  Res:CLIENT  isAFBC:1  BlendMode:NONE  ColorSpace:BT709
 ColorFormat:MALI_NV12AFBC  PlaneAlpha:255  W*H:440*880  Size:720896  Stride:768  Offset:0  Flags:20545
 DispFrame:(380,0,662,238)  SourceCrop:(0,509,440,880)  AFBCCrop:(0,4,72,12)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Index:1  Z:1  Transform:None  CompType Req:CLIENT  Res:CLIENT  isAFBC:1  BlendMode:PREMULT  ColorSpace:BT709
 ColorFormat:RGBA_8888  PlaneAlpha:255  W*H:720*1650  Size:5242880  Stride:3072  Offset:0  Flags:95
 DispFrame:(0,0,720,1650)  SourceCrop:(0,0,720,1650)  AFBCCrop:(0,0,48,14)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Index:2  Z:2  Transform:None  CompType Req:DEVICE  Res:DEVICE  isAFBC:1  BlendMode:PREMULT  ColorSpace:BT709
 ColorFormat:RGBA_8888  PlaneAlpha:255  W*H:720*49  Size:262144  Stride:3072  Offset:0  Flags:95
 DispFrame:(0,0,720,49)  SourceCrop:(0,0,720,49)  AFBCCrop:(0,0,48,15)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Index:0  Z:3  Transform:None  CompType Req:DEVICE  Res:DEVICE  isAFBC:1  BlendMode:PREMULT  ColorSpace:BT709
 ColorFormat:RGBA_8888  PlaneAlpha:255  W*H:720*32  Size:262144  Stride:3072  Offset:0  Flags:95
 DispFrame:(0,1618,720,1650)  SourceCrop:(0,0,720,32)  AFBCCrop:(0,0,48,32)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Index:3  Z:4  Transform:None  CompType Req:DEVICE  Res:DEVICE  isAFBC:1  BlendMode:PREMULT  ColorSpace:BT709
 ColorFormat:RGBA_8888  PlaneAlpha:255  W*H:720*50  Size:262144  Stride:3072  Offset:0  Flags:95
 DispFrame:(0,1600,720,1650)  SourceCrop:(0,0,720,50)  AFBCCrop:(0,0,48,14)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[FrameBuffer Target]
 Index:65535  Z:0  Transform:None  CompType Req:unknown  Res:unknown  isAFBC:1  BlendMode:PREMULT  ColorSpace:BT709
 ColorFormat:RGBA_8888  PlaneAlpha:255  W*H:720*1650  Size:5242880  Stride:3072  Offset:0  Flags:95
 DispFrame:(0,0,720,1650)  SourceCrop:(0,0,720,1650)  AFBCCrop:(0,0,48,14)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[Display 1]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[FrameBuffer Target]
 Index:65535  Z:4294967295  Transform:None  CompType Req:unknown  Res:unknown  isAFBC:0  BlendMode:NONE  ColorSpace:BT709
 ColorFormat:unknown  PlaneAlpha:1  W*H:0*0  Size:0  Stride:0  Offset:0  Flags:0
 DispFrame:(0,0,0,0)  SourceCrop:(0,0,0,0)  AFBCCrop:(0,0,0,0)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[Display 2]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[FrameBuffer Target]
 Index:65535  Z:4294967295  Transform:None  CompType Req:unknown  Res:unknown  isAFBC:0  BlendMode:NONE  ColorSpace:BT709
 ColorFormat:unknown  PlaneAlpha:1  W*H:0*0  Size:0  Stride:0  Offset:0  Flags:0
 DispFrame:(0,0,0,0)  SourceCrop:(0,0,0,0)  AFBCCrop:(0,0,0,0)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HWC Layer to OverlayEngine Mapping:
[display 0]
Layers Index | OverlayEngine
      ffff  ->  1
      2  ->  3
      0  ->  0
      3  ->  2
=================================================================================================================
存在的疑问

为什么上下滑动的时候,合成方式会发生频繁的变化?是因为 NV12格式 DPU不支持 crop?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值