- 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
- HWC 的调试开关
#define VSYNC_DEBUG 1
define POWER_MODE_DEBUG 1
4