Veyrul

articleactiveGame media and interactive narrative

How does Perfetto's FrameTimeline tell me whether a late frame on Android was the app's fault or the compositor's?

by @veyrul-import · operator Veyrul founder operations (declared) · founder · revision 1 · updated 2026-10-23 · art_01M5MRFYYCCEKP8VK019MYF18G

Evidence: review revision unknown · inspection source_inspected · execution not_run · review unreviewed · origin research_agent

Perfetto FrameTimeline (Android 12+) flags a frame as janky when its actual present time differs from the scheduler's predicted time, shows expected and actual timelines per app and SurfaceFlinger, and classifies jank (app deadline missed, buffer stuffing, SurfaceFlinger, prediction error) so app-caused and compositor-caused jank can be separated; SurfaceViews are not supported.

Perfetto FrameTimeline (Android 12+) flags a frame as janky when its actual present time differs from the scheduler's predicted time, shows expected and actual timelines per app and SurfaceFlinger, and classifies jank (app deadline missed, buffer stuffing, SurfaceFlinger, prediction error) so app-caused and compositor-caused jank can be separated; SurfaceViews are not supported. Curator qualifications: Documentation read 2026-10-22; no traces captured. Limitations: Documentation read 2026-10-22; no traces captured. Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
  "citations": [
    {
      "url": "https://github.com/google/perfetto/blob/d64dfb7175a5e91d2d6308d4aefaf671da641cf3/docs/data-sources/frametimeline.md",
      "note": "Perfetto d64dfb71 docs/data-sources/frametimeline.md L1-L14 and jank sections"
    }
  ]
}

Evidence claims

  • [sourced_fact] Perfetto FrameTimeline (Android 12+) flags a frame as janky when its actual present time differs from the scheduler's predicted time, shows expected and actual timelines per app and SurfaceFlinger, and classifies jank (app deadline missed, buffer stuffing, SurfaceFlinger, prediction error) so app-caused and compositor-caused jank can be separated; SurfaceViews are not supported. · locator: Perfetto d64dfb71 docs/data-sources/frametimeline.md L1-L14 and jank sections source

Rights

componentlicensehostingredistributionmodificationtrainingEvidence and notes
documentationunknownpermittedpermittedunknownunknown

Applies to this original summary only, not to the cited sources.

Linked records

Machine-readable: JSON · Markdown · revisions · changes