高通qualcomm Display 子系统研究-Debug

时间:2021-03-31 00:10:24
  1. MDP的debug 方法如下:

root@msm8916_64_a538:/sys/kernel/debug/mdp # ls
ls
dsi0_ctrl_off
dsi0_ctrl_reg
dsi0_phy_off
dsi0_phy_reg
dump
off
panel_off
panel_reg
perf
reg
stat
vbif_off
vbif_reg
xlog

2.dumpsys SurfaceFlinger

root@msm8916_64_a538:/sys/class/graphics/fb0 # dumpsys SurfaceFlinger
dumpsys SurfaceFlinger
Build configuration: [sf] [libui] [libgui]
Sync configuration: [using: EGL_ANDROID_native_fence_sync EGL_KHR_wait_sync]
DispSync configuration: app phase 0 ns, sf phase 0 ns, present offset 0 ns (refresh 16666667 ns)
Visible layers (count = 12)
+ Layer 0x55a810e360 (FocusedStackFrame)
  Region transparentRegion (this=0x55a810e550, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a810e370, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=        0, pos=(0,0), size=(   1,   1), crop=(   0,   0,  -1,  -1), isOpaque=0, invalidate=1, alpha=0x4d, blur=0xff, flags=0x00000001, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a8062ff0
      format= 1, activeBuffer=[   0x   0:   0,  0], queued-frames=0, mRefreshPending=0
            mTexName=2 mCurrentTexture=-1
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[1x1], default-format=1, transform-hint=00, FIFO(0)={}
+ LayerDim 0x55a8103930 (DimLayer)
  Region transparentRegion (this=0x55a8103b20, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a8103940, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=        0, pos=(0,0), size=(  16,  16), crop=(   0,   0,  -1,  -1), isOpaque=0, invalidate=0, alpha=0xff, blur=0xff, flags=0x00000001, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a8062ff0
      format= 0, activeBuffer=[   0x   0:   0,  0], queued-frames=0, mRefreshPending=0
            mTexName=3 mCurrentTexture=-1
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[1x1], default-format=1, transform-hint=00, FIFO(0)={}
+ LayerDim 0x55a80a1490 (DimLayer)
  Region transparentRegion (this=0x55a80a1680, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a80a14a0, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=        0, pos=(0,0), size=(  16,  16), crop=(   0,   0,  -1,  -1), isOpaque=0, invalidate=0, alpha=0xff, blur=0xff, flags=0x00000001, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a8062ff0
      format= 0, activeBuffer=[   0x   0:   0,  0], queued-frames=0, mRefreshPending=0
            mTexName=4 mCurrentTexture=-1
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[1x1], default-format=1, transform-hint=00, FIFO(0)={}
+ LayerBlur 0x55a80a4740 (BlurLayer)
  Region transparentRegion (this=0x55a80a4930, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a80a4750, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=        0, pos=(0,0), size=(  16,  16), crop=(   0,   0,  -1,  -1), isOpaque=0, invalidate=0, alpha=0xff, blur=0xff, flags=0x00000001, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a8062ff0
      format= 0, activeBuffer=[   0x   0:   0,  0], queued-frames=0, mRefreshPending=0
            mTexName=5 mCurrentTexture=-1
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[1x1], default-format=1, transform-hint=00, FIFO(0)={}
+ LayerDim 0x55a806b4b0 (DimLayer)
  Region transparentRegion (this=0x55a806b6a0, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a806b4c0, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=        0, pos=(0,0), size=(  16,  16), crop=(   0,   0,  -1,  -1), isOpaque=0, invalidate=0, alpha=0xff, blur=0xff, flags=0x00000001, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a8062ff0
      format= 0, activeBuffer=[   0x   0:   0,  0], queued-frames=0, mRefreshPending=0
            mTexName=10 mCurrentTexture=-1
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[1x1], default-format=1, transform-hint=00, FIFO(0)={}
+ LayerBlur 0x55a80720d0 (BlurLayer)
  Region transparentRegion (this=0x55a80722c0, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a80720e0, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=        0, pos=(0,0), size=(  16,  16), crop=(   0,   0,  -1,  -1), isOpaque=0, invalidate=0, alpha=0xff, blur=0xff, flags=0x00000001, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a8062ff0
      format= 0, activeBuffer=[   0x   0:   0,  0], queued-frames=0, mRefreshPending=0
            mTexName=12 mCurrentTexture=-1
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[1x1], default-format=1, transform-hint=00, FIFO(0)={}
+ LayerDim 0x55a806e760 (DimLayer)
  Region transparentRegion (this=0x55a806e950, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a806e770, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=    20998, pos=(-180,-320), size=(1080,1920), crop=(   0,   0,  -1,  -1), isOpaque=0, invalidate=0, alpha=0x00, blur=0xff, flags=0x00000001, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a8062ff0
      format= 0, activeBuffer=[   0x   0:   0,  0], queued-frames=0, mRefreshPending=0
            mTexName=11 mCurrentTexture=-1
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[1080x1920], default-format=1, transform-hint=00, FIFO(0)={}
+ Layer 0x55a816b250 (com.android.settings/com.android.settings.UsbSettings)
  Region transparentRegion (this=0x55a816b440, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a816b260, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=    21005, pos=(0,0), size=( 720,1280), crop=(   0,   0, 720,1280), isOpaque=1, invalidate=1, alpha=0xff, blur=0xff, flags=0x00000003, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a81521f0
      format= 1, activeBuffer=[ 720x1280: 736,  1], queued-frames=0, mRefreshPending=0
            mTexName=25 mCurrentTexture=2
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[720x1280], default-format=1, transform-hint=00, FIFO(0)={}
             [00:0x55a8139f00] state=FREE    , 0x55a814ff90 [ 720x1280: 736,  1]
             [01:0x55a8139ff0] state=FREE    , 0x55a8048790 [ 720x1280: 736,  1]
            >[02:0x55a815f550] state=ACQUIRED, 0x55a81505d0 [ 720x1280: 736,  1]
+ Layer 0x55a8159980 (com.android.systemui.ImageWallpaper)
  Region transparentRegion (this=0x55a8159b70, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a8159990, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=    21010, pos=(0,0), size=( 720,1280), crop=(   0,   0, 720,1280), isOpaque=1, invalidate=1, alpha=0xff, blur=0xff, flags=0x00000002, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a8151c30
      format= 2, activeBuffer=[ 720x1280: 768,  3], queued-frames=0, mRefreshPending=0
            mTexName=23 mCurrentTexture=-1
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[720x1280], default-format=2, transform-hint=00, FIFO(0)={}
+ LayerBlur 0x55a8152d30 (BlurLayer_KeyGuard)
  Region transparentRegion (this=0x55a8152f20, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a8152d40, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=   150998, pos=(0,0), size=( 720,1280), crop=(   0,   0,  -1,  -1), isOpaque=0, invalidate=0, alpha=0xff, blur=0xff, flags=0x00000001, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a8152390
      format= 0, activeBuffer=[   0x   0:   0,  0], queued-frames=0, mRefreshPending=0
            mTexName=18 mCurrentTexture=-1
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[720x1280], default-format=1, transform-hint=00, FIFO(0)={}
+ Layer 0x55a8156140 (StatusBar)
  Region transparentRegion (this=0x55a8156330, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a8156150, count=1)
    [  0,   0,   0,   0]
      layerStack=   0, z=   151000, pos=(0,0), size=( 720,1280), crop=(   0,   0, 720,1280), isOpaque=0, invalidate=1, alpha=0xff, blur=0xff, flags=0x00000000, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a8151c30
      format= 1, activeBuffer=[ 720x1280: 736,  1], queued-frames=0, mRefreshPending=0
            mTexName=22 mCurrentTexture=0
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[720x1280], default-format=1, transform-hint=00, FIFO(0)={}
            >[00:0x55a813ade0] state=ACQUIRED, 0x55a8072050 [ 720x1280: 736,  1]
+ Layer 0x55a8171640 (ColorFade)
  Region transparentRegion (this=0x55a8171830, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0x55a8171650, count=1)
    [  0,   0, 720, 1280]
      layerStack=   0, z=1073741825, pos=(0,0), size=( 720,1280), crop=(   0,   0,  -1,  -1), isOpaque=1, invalidate=1, alpha=0xff, blur=0xff, flags=0x00000002, tr=[1.00, 0.00][0.00, 1.00]
      client=0x55a81671c0
      format= 2, activeBuffer=[ 720x1280: 736,  1], queued-frames=0, mRefreshPending=0
            mTexName=26 mCurrentTexture=2
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mDequeueBufferCannotBlock=0, default-size=[720x1280], default-format=2, transform-hint=00, FIFO(0)={}
             [00:0x55a8164490] state=FREE    , 0x55a80dadd0 [ 720x1280: 736,  1]
             [01:0x55a8182da0] state=FREE    , 0x55a813b3a0 [ 720x1280: 736,  1]
            >[02:0x55a8164330] state=ACQUIRED, 0x55a813a2c0 [ 720x1280: 736,  1]
Displays (1 entries)
+ DisplayDevice: Built-in Screen
   type=0, hwcId=0, layerStack=4294967295, ( 720x1280), ANativeWindow=0x55a8042890, orient= 0 (type=00000000), flips=1202, isSecure=1, secureVis=0, powerMode=0, activeConfig=0, numLayers=0
   v:[0,0,720,1280], f:[0,0,720,1280], s:[0,0,720,1280],transform:[[1.000,0.000,-0.000][0.000,1.000,-0.000][0.000,0.000,1.000]]
mAbandoned=0
-BufferQueue mMaxAcquiredBufferCount=2, mDequeueBufferCannotBlock=0, default-size=[720x1280], default-format=1, transform-hint=00, FIFO(0)={}
 [00:0x55a8116a60] state=FREE    , 0x55a8048550 [ 720x1280: 736,  1]
>[01:0x55a8107950] state=ACQUIRED, 0x55a803e3a0 [ 720x1280: 736,  1]
 [02:0x55a813a990] state=FREE    , 0x55a813a340 [ 720x1280: 736,  1]
SurfaceFlinger global state:
EGL implementation : 1.4
EGL_QUALCOMM_shared_image EGL_KHR_image EGL_KHR_image_base EGL_QCOM_create_image EGL_KHR_lock_surface EGL_KHR_lock_surface2 EGL_KHR_lock_surface3 EGL_KHR_fence_sync EGL_KHR_cl_eventEGL_KHR_cl_event2EGL_IMG_context_priority EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_renderbuffer_image EGL_EXT_create_context_robustness EGL_ANDROID_blob_cache EGL_ANDROID_framebuffer_target EGL_KHR_create_context EGL_KHR_wait_sync EGL_KHR_gl_colorspace EGL_ANDROID_image_crop EGL_ANDROID_recordable EGL_ANDROID_native_fence_sync EGL_ANDROID_image_native_buffer EGL_KHR_gl_colorspace EGL_IMG_image_plane_attribs
GLES: Qualcomm, Adreno (TM) 306, OpenGL ES 3.0 V@100.0 AU@ (GIT@I32dcf20b99)
GL_AMD_compressed_ATC_texture GL_AMD_performance_monitor GL_AMD_program_binary_Z400 GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_robustness GL_EXT_texture_format_BGRA8888 GL_EXT_texture_type_2_10_10_10_REV GL_NV_fence GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth_texture GL_OES_depth24 GL_OES_EGL_image GL_OES_EGL_sync GL_OES_EGL_image_external GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_fragment_precision_high GL_OES_get_program_binary GL_OES_packed_depth_stencil GL_OES_depth_texture_cube_map GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_vertex_type_10_10_10_2 GL_OES_vertex_array_object GL_QCOM_alpha_test GL_QCOM_binning_control GL_QCOM_driver_control GL_QCOM_perfmon_global_mode GL_QCOM_extended_get GL_QCOM_extended_get2 GL_QCOM_tiled_rendering GL_QCOM_writeonly_rendering GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_EXT_texture_filter_anisotropic GL_EXT_multisampled_render_to_texture GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_disjoint_timer_query
  Region undefinedRegion (this=0x55a803e198, count=1)
    [  0,   0, 720, 1280]
  orientation=0, isDisplayOn=0
  last eglSwapBuffers() time: 56.927000 us
  last transaction time     : 44.011000 us
  transaction-flags         : 00000000
  refresh-rate              : 59.999999 fps
  x-dpi                     : 160.421005
  y-dpi                     : 160.156998
  gpu_to_cpu_unsupported    : 0
  eglSwapBuffers time: 0.000000 us
  transaction time: 0.000000 us
VSYNC state: enabled
  soft-vsync: enabled
  numListeners=10,
  events-delivered: 2388
    0x55a803e300: count=-1
    0x55a8106ee0: count=-1
    0x55a813b520: count=-1
    0x55a813fea0: count=-1
    0x55a8141eb0: count=-1
    0x55a8147a90: count=-1
    0x55a814f320: count=-1
    0x55a81518f0: count=-1
    0x55a8152140: count=-1
    0x55a8173ad0: count=-1
h/w composer state:
  h/w composer present and enabled
Hardware Composer state (version 01040000):
  mDebugForceFakeVSync=0
  Display[0] configurations (* current):
    * 0: 720x1280, xdpi=160.421005, ydpi=160.156998, refresh=16666667
  numHwLayers=1, flags=00000000
    type   |  handle  | hint | flag | tr | blnd |  format     |     source crop(l,t,r,b)       |           frame        |      dirtyRect         |  name
------------+----------+----------+----------+----+-------+----------+-----------------------------------+---------------------------+-------------------
 FB TARGET | 55a803e3a0 | 0000 | 0000 | 00 | 0105 | RGBA_8888   |    0.0,    0.0,  720.0, 1280.0 |    0,    0,  720, 1280 | [    0,    0,    0,    0] | HWC_FRAMEBUFFER_TARGET
Qualcomm HWC state:
  MDPVersion=500
  DisplayPanel=8
  DynRefreshRate=60
HWC Map for Dpy: "PRIMARY"
CURR_FRAME: layerCount: 1 mdpCount: 1 fbCount: 0
needsFBRedraw: NO  pipesUsed: 1  MaxPipesPerMixer: 4
Programmed ROI: [0, 0, 720, 1280]
 ---------------------------------------------
 listIdx | cached? | mdpIndex | comptype  |  Z
 ---------------------------------------------
       0 |      NO |        0 |       MDP |  0


Overlay State

Pipes=0


Copybit::isAbcInUse=0

Allocated buffers:
0x55a803e3a0: 3680.00 KiB |  720 ( 736) x 1280 |        1 | 0x00001a00
0x55a8048550: 3680.00 KiB |  720 ( 736) x 1280 |        1 | 0x00001a00
0x55a8048790: 3680.00 KiB |  720 ( 736) x 1280 |        1 | 0x00000900
0x55a8072050: 3680.00 KiB |  720 ( 736) x 1280 |        1 | 0x00000900
0x55a80dadd0: 3680.00 KiB |  720 ( 736) x 1280 |        1 | 0x00000900
0x55a813a2c0: 3680.00 KiB |  720 ( 736) x 1280 |        1 | 0x00000900
0x55a813a340: 3680.00 KiB |  720 ( 736) x 1280 |        1 | 0x00001a00
0x55a813b3a0: 3680.00 KiB |  720 ( 736) x 1280 |        1 | 0x00000900
0x55a814ff90: 3680.00 KiB |  720 ( 736) x 1280 |        1 | 0x00000900
0x55a8150170:  143.75 KiB |  720 ( 736) x   50 |        1 | 0x00000900
0x55a81505d0: 3680.00 KiB |  720 ( 736) x 1280 |        1 | 0x00000900
0x55a8161730: 2880.00 KiB |  720 ( 768) x 1280 |        3 | 0x00000900
Total allocated (estimate): 39823.75 KB
  1. HWC 的调试开关
    #define VSYNC_DEBUG 1
    define POWER_MODE_DEBUG 1
    4