丢帧全链路分析报告 (v-drop Pipeline)

测试场景信息

项目
Excel Row312
Module锁屏解锁
Title数字密码解锁进桌面流畅度验证
Loop2
Index4
ResultFAILED
Monitor WindowNotificationShade
Frames391
Dropped Frames17

根因总览

已知模式命中: DOZE_REFRESH_RATE_RACE (匹配分数 0.5)

根因: Power 子系统的 DOZE 服务在屏幕亮起后触发刷新率 policy 切换到最低值,导致 SF VSYNC 被关闭,App 产出的 buffer 在队列等待 SF 重新激活

建议: 在 SCREEN_TURNING_ON 后,延迟 DOZE 的刷新率策略生效;或在 NotificationShade 动画期间锁定高刷新率

置信度: HIGH

刷新率问题

  • 刷新率从 120Hz 下降到 60Hz (ts=16853767.9ms)
  • 刷新率从 120Hz 下降到 60Hz (ts=16858240.2ms)
  • 刷新率切换到 120.0Hz 时,Layer 帧率投票为 NoVote — 无 App 帧率诉求,RefreshRateSelector 回退到 policy 最低值
  • 刷新率切换到 120.0Hz 时,Layer 帧率投票为 NoVote — 无 App 帧率诉求,RefreshRateSelector 回退到 policy 最低值
  • 刷新率切换到 120.0Hz 时,Layer 帧率投票为 NoVote — 无 App 帧率诉求,RefreshRateSelector 回退到 policy 最低值

详细 AI 根因分析 → ai_root_cause_report.md | Buffer Stall 详情 → buffer_stall_deep_report.md | 刷新率详情 → refresh_rate_report.md

全局汇总

指标
分析窗口数1
总丢帧数 (v-drop > 0)9
v-drop 分布1 + 1 + 2 + 1 + 2 + 2 + 1 + 2 + 5
已分析帧数9
主要瓶颈UNKNOWN

瓶颈分布 (全局)

瓶颈类型丢帧数说明
App 未产出帧8App 在区间内未产出新帧
UI_BUILD_SLOW:animation5UI doFrame 超时 (animation)
UNKNOWN4所有已知条件均不满足
App 未产出帧                       [  8] ███████████████████████ 47.1%
UI_BUILD_SLOW:animation        [  5] ██████████████ 29.4%
UNKNOWN                        [  4] ███████████ 23.5%

窗口: NotificationShade

指标
总丢帧数9
已分析帧数9
覆盖率100.0%

瓶颈分布

瓶颈类型丢帧数说明
App 未产出帧8App 在区间内未产出新帧
UI_BUILD_SLOW:animation5UI doFrame 超时 (animation)
UNKNOWN4所有已知条件均不满足
App 未产出帧                       [  8] ███████████████████████ 47.1%
UI_BUILD_SLOW:animation        [  5] ██████████████ 29.4%
UNKNOWN                        [  4] ███████████ 23.5%

丢帧详情

#match_tagv-drop瓶颈总耗时RT 渲染耗时① App Render② Buffer Wait③ SF Composite根因
1DrawFrames-5666230#NotificationShade1未知27.07ms2.34ms2.21ms19.28ms5.58ms-
2DrawFrames-5666395#NotificationShade1未知33.74ms2.73ms2.84ms29.42ms1.49ms-
3DrawFrames-5667200#NotificationShade2App 未产出帧 + SF 调度问题38.04ms4.71ms4.59ms27.56ms5.89msApp 未产出帧
4DrawFrames-5667376#NotificationShade1未知30.35ms4.59ms4.38ms16.54ms9.43ms-
5DrawFrames-5667598#NotificationShade2App 未产出帧 + SF 调度问题38.29ms4.18ms4.06ms28.87ms5.36msApp 未产出帧
6DrawFrames-5667971#NotificationShade2App 未产出帧25.18ms6.13ms9.38ms11.98ms3.82msApp 未产出帧
7DrawFrames-5668008#NotificationShade1未知35.71ms2.55ms3.13ms29.17ms3.40ms-
8DrawFrames-5668399#NotificationShade2App 未产出帧 + SF 调度问题36.67ms2.64ms2.71ms29.31ms4.65msApp 未产出帧
9DrawFrames-5668472#NotificationShade5UI 慢(animation)51.43ms4.32ms39.74ms8.86ms2.83msApp 未产出帧; UI: R16%/S84%→调度饥饿

加粗 = 超阈值 (RT 渲染/① App/② Buffer > 16.67ms, ③ SF > 5ms)。根因来自 Tier 3.5 CPU 状态 + Tier 4 深度分析。

超时 Slice 深层根因分析

DrawFrames-5668472#NotificationShade (v-drop=5):

深层根因分析:

  • UI 线程 Choreographer#doFrame 36.4ms 超时,其中 animation 占 33.8ms
    • CPU 状态: Running 16% (5.9ms) / Sleeping 84% (31.4ms)
    • 根因: 线程池调度饥饿(线程就绪但无 CPU 可用)
      • 瓶颈线程: SystemUIBg-3 (Runnable 33.6ms)
    • 唤醒链 (ndroid.systemui Sleep 31.0ms):
      SystemUIBg-3 **[R 33.6ms]** → SystemUIBg-7 [S 35.1ms] → SystemUIBg-1 [S 35.1ms] → SystemUIBg-4 [S 34.2ms] → SystemUIBg-2 [S 34.1ms] → ndroid.systemui
      

v-drop > 1 区间分析

match_tag: DrawFrames-5667200#NotificationShade

  • v-drop: 2

  • 区间: 22.46ms

  • 期望帧数: 3

  • prev SF: 5667213

  • curr SF: 5667221

    • App 产出帧数: 1
    • App 未产出周期: 1
    • SF 跳过帧数: 0
    • 主因: App 部分未出帧 + SF 调度延迟

    帧流程时序图 (Perfetto UI 风格)

    ┌─ Curr SF: 5667221 ────────────────────────────────────────────┐
    │ Total: 38.0ms
    │ 
    │ ①   4.6ms ██████
    │ ②  27.6ms ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ⚠️ STALL
    │ ③   5.9ms ▒▒▒▒▒▒▒ ⚠️
    │   UI(1.5ms): trav=1.0ms
    │   RT(4.7ms): swap=1.7ms
    └────────────────────────────────────────────────────────────┘
    

    图例: ⓪ 帧间间隙 | ① App渲染(UI+RT) | ② Buffer等待 | ③ SF合成 | ⚠️ 超时

    帧流程详细分析 (VSYNC Pipeline)

    [VSYNC-app]      |__| (Signal)
                      |
                      v
    [App Main]        [ Choreographer#doFrame: 1.5ms ]
                                                          |
                                                          v
    [App Render]                                          [ DrawFrames: 4.7ms ]
                                                                               |
                                                                               v
    [BufferQueue]                                                              [ Buffer Wait: 27.6ms ⚠️ ]
                                                                                                        |
    [VSYNC-sf]                                                                                    |__|  |
                                                                                                   |    |
                                                                                                   v    v
    [SurfaceFlinger]                                                                               [ Composite: 5.9ms ⚠️ ]
    

    瓶颈说明:

    • ⚠️ Buffer Wait 超时 (27.6ms),SF 调度间隙导致 buffer 等待
    • ⚠️ SF Composite 超时 (5.9ms)
    match_tag来源状态SF latched
    …7216#NotificationShadeapp_produced_but_sf_delayedSF_SCHEDULING_ISSUEFalse

match_tag: DrawFrames-5667598#NotificationShade

  • v-drop: 2

  • 区间: 22.68ms

  • 期望帧数: 3

  • prev SF: 5667611

  • curr SF: 5667619

    • App 产出帧数: 1
    • App 未产出周期: 1
    • SF 跳过帧数: 0
    • 主因: App 部分未出帧 + SF 调度延迟

    帧流程时序图 (Perfetto UI 风格)

    ┌─ Curr SF: 5667619 ────────────────────────────────────────────┐
    │ Total: 38.3ms
    │ 
    │ ①   4.1ms █████
    │ ②  28.9ms ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ⚠️ STALL
    │ ③   5.4ms ▒▒▒▒▒▒▒ ⚠️
    │   UI(1.7ms): trav=1.1ms
    │   RT(4.2ms): swap=1.6ms
    └────────────────────────────────────────────────────────────┘
    

    图例: ⓪ 帧间间隙 | ① App渲染(UI+RT) | ② Buffer等待 | ③ SF合成 | ⚠️ 超时

    帧流程详细分析 (VSYNC Pipeline)

    [VSYNC-app]      |__| (Signal)
                      |
                      v
    [App Main]        [ Choreographer#doFrame: 1.7ms ]
                                                          |
                                                          v
    [App Render]                                          [ DrawFrames: 4.2ms ]
                                                                               |
                                                                               v
    [BufferQueue]                                                              [ Buffer Wait: 28.9ms ⚠️ ]
                                                                                                        |
    [VSYNC-sf]                                                                                    |__|  |
                                                                                                   |    |
                                                                                                   v    v
    [SurfaceFlinger]                                                                               [ Composite: 5.4ms ⚠️ ]
    

    瓶颈说明:

    • ⚠️ Buffer Wait 超时 (28.9ms),SF 调度间隙导致 buffer 等待
    • ⚠️ SF Composite 超时 (5.4ms)
    match_tag来源状态SF latched
    …7614#NotificationShadeapp_produced_but_sf_delayedSF_SCHEDULING_ISSUEFalse

match_tag: DrawFrames-5667971#NotificationShade

  • v-drop: 2

  • 区间: 26.86ms

  • 期望帧数: 3

  • prev SF: 5667976

  • curr SF: 5667985

    • App 产出帧数: 0
    • App 未产出周期: 2
    • SF 跳过帧数: 0
    • 主因: App 在此区间未产出帧

    帧流程时序图 (Perfetto UI 风格)

    ┌─ Curr SF: 5667985 ────────────────────────────────────────────┐
    │ Total: 25.2ms
    │ 
    │ ①   9.4ms ██████████████████
    │ ②  12.0ms ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ⚠️ STALL
    │ ③   3.8ms ▒▒▒▒▒▒▒
    │   UI(5.8ms): trav=5.7ms
    │   RT(6.1ms): swap=2.8ms
    └────────────────────────────────────────────────────────────┘
    

    图例: ⓪ 帧间间隙 | ① App渲染(UI+RT) | ② Buffer等待 | ③ SF合成 | ⚠️ 超时

    帧流程详细分析 (VSYNC Pipeline)

    [VSYNC-app]      |__| (Signal)
                      |
                      v
    [App Main]        [ Choreographer#doFrame: 5.8ms ]
                      [ └─ traversal: 5.7ms ]
                                                          |
                                                          v
    [App Render]                                          [ DrawFrames: 6.1ms ]
                                                                               |
                                                                               v
    [BufferQueue]                                                              [ Buffer Wait: 12.0ms ⚠️ ]
                                                                                                        |
    [VSYNC-sf]                                                                                    |__|  |
                                                                                                   |    |
                                                                                                   v    v
    [SurfaceFlinger]                                                                               [ Composite: 3.8ms ]
    

    瓶颈说明:

    • ⚠️ Buffer Wait 超时 (12.0ms),SF 调度间隙导致 buffer 等待

match_tag: DrawFrames-5668399#NotificationShade

  • v-drop: 2

  • 区间: 23.70ms

  • 期望帧数: 3

  • prev SF: 5668412

  • curr SF: 5668420

    • App 产出帧数: 1
    • App 未产出周期: 1
    • SF 跳过帧数: 0
    • 主因: App 部分未出帧 + SF 调度延迟

    帧流程时序图 (Perfetto UI 风格)

    ┌─ Curr SF: 5668420 ────────────────────────────────────────────┐
    │ Total: 36.7ms
    │ 
    │ ①   2.7ms ███
    │ ②  29.3ms ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ⚠️ STALL
    │ ③   4.7ms ▒▒▒▒▒▒
    │   UI(1.1ms): trav=0.7ms
    │   RT(2.6ms): swap=1.0ms
    └────────────────────────────────────────────────────────────┘
    

    图例: ⓪ 帧间间隙 | ① App渲染(UI+RT) | ② Buffer等待 | ③ SF合成 | ⚠️ 超时

    帧流程详细分析 (VSYNC Pipeline)

    [VSYNC-app]      |__| (Signal)
                      |
                      v
    [App Main]        [ Choreographer#doFrame: 1.1ms ]
                                                          |
                                                          v
    [App Render]                                          [ DrawFrames: 2.6ms ]
                                                                               |
                                                                               v
    [BufferQueue]                                                              [ Buffer Wait: 29.3ms ⚠️ ]
                                                                                                        |
    [VSYNC-sf]                                                                                    |__|  |
                                                                                                   |    |
                                                                                                   v    v
    [SurfaceFlinger]                                                                               [ Composite: 4.7ms ]
    

    瓶颈说明:

    • ⚠️ Buffer Wait 超时 (29.3ms),SF 调度间隙导致 buffer 等待
    match_tag来源状态SF latched
    …8415#NotificationShadeapp_produced_but_sf_delayedSF_SCHEDULING_ISSUEFalse

match_tag: DrawFrames-5668472#NotificationShade

  • v-drop: 5

  • 区间: 51.52ms

  • 期望帧数: 6

  • prev SF: 5668484

  • curr SF: 5668537

    • App 产出帧数: 2
    • App 未产出周期: 3
    • SF 跳过帧数: 0
    • 主因: App 部分未出帧 + SF 调度延迟

    深层根因分析:

    • UI 线程 Choreographer#doFrame 36.4ms 超时,其中 animation 占 33.8ms
      • CPU 状态: Running 16% (5.9ms) / Sleeping 84% (31.4ms)
      • 根因: 线程池调度饥饿(线程就绪但无 CPU 可用)
        • 瓶颈线程: SystemUIBg-3 (Runnable 33.6ms)
      • 唤醒链 (ndroid.systemui Sleep 31.0ms):
        SystemUIBg-3 **[R 33.6ms]** → SystemUIBg-7 [S 35.1ms] → SystemUIBg-1 [S 35.1ms] → SystemUIBg-4 [S 34.2ms] → SystemUIBg-2 [S 34.1ms] → ndroid.systemui
        

    帧流程时序图 (Perfetto UI 风格)

    ┌─ Curr SF: 5668537 ────────────────────────────────────────────┐
    │ Total: 51.4ms
    │ 
    │ ①  39.7ms ██████████████████████████████████████ ⚠️
    │ ②   8.9ms ▓▓▓▓▓▓▓▓ ⚠️ STALL
    │ ③   2.8ms ▒▒
    │   UI(36.4ms): anim=33.8ms
    │   RT(4.3ms): swap=0.8ms
    └────────────────────────────────────────────────────────────┘
    

    图例: ⓪ 帧间间隙 | ① App渲染(UI+RT) | ② Buffer等待 | ③ SF合成 | ⚠️ 超时

    帧流程详细分析 (VSYNC Pipeline)

    [VSYNC-app]      |__| (Signal)
                      |
                      v
    [App Main]        [ Choreographer#doFrame: 36.4ms ⚠️ ]
                      [ └─ animation: 33.8ms ]
                                                          |
                                                          v
    [App Render]                                          [ DrawFrames: 4.3ms ]
                                                                               |
                                                                               v
    [BufferQueue]                                                              [ Buffer Wait: 8.9ms ⚠️ ]
                                                                                                        |
    [VSYNC-sf]                                                                                    |__|  |
                                                                                                   |    |
                                                                                                   v    v
    [SurfaceFlinger]                                                                               [ Composite: 2.8ms ]
    

    瓶颈说明:

    • ⚠️ Choreographer#doFrame 超时严重 (36.4ms >> 16.67ms),其中 animation 占 33.8ms
    • ⚠️ Buffer Wait 超时 (8.9ms),SF 调度间隙导致 buffer 等待

    超时 Slice CPU 状态分布:

    线程Slice耗时RunningS(睡眠)R(就绪)D(IO)根因判断
    UI ThreadChoreographer#doFrame36.4ms16% (5.9ms)84% (31.4ms)0% (0.1ms)0% (0.0ms)RUNNABLE_STARVATION
    match_tag来源状态SF latched
    …8487#NotificationShadeapp_produced_but_sf_delayedSF_SCHEDULING_ISSUEFalse
    …8532#NotificationShadeapp_produced_but_sf_delayedSF_SCHEDULING_ISSUEFalse

详细分析报告

报告文件状态
Buffer Stall 深度分析buffer_stall_deep_report.md-
刷新率变化分析refresh_rate_report.mdavailable
AI 根因分析ai_root_cause_report.mdavailable
AI Prompt (可手动验证)ai_root_cause_prompt.mdavailable

报告由 vdrop-pipeline-orchestrator V1.1 增强版自动生成 (Tier 3 + Tier 4 深度分析 + Tier 5 AI 根因)