Skip to content

Automatically capture long-duration raster frames as SKPs #92764

@dnfield

Description

@dnfield

It would be great to have a mode of running the engine where it would automatically spit out SKPs frames that take longer than budget (or some multiple of over budget) as SKPs.

This would be helpful when a developer has an application or benchmark with a particularly bad frame that they want to better understand and optimize, particularly when that frame is in the middle of an animation/transition.

It would also be helpful to emit metadata about the SKP, for example what frame number it was and how long it took to rasterize.

I think ideally this would either be a shell argument or a service protocol request to turn on/off, and that it could call ScreenshotLastLayerTree right after https://github.com/flutter/engine/blob/47446ca043c27d3406d859b56e980dd81e93a00b/shell/common/rasterizer.cc#L553 based on what the frame timings recorder said about how long it's been since the AcquireFrame call.

/cc @jason-simmons @goderbauer

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Issues that are less important to the Flutter projectc: new featureNothing broken; request for a new capabilityc: performanceRelates to speed or footprint issues (see "perf:" labels)engineflutter/engine related. See also e: labels.perf: speedPerformance issues related to (mostly rendering) speedtoolAffects the "flutter" command-line tool. See also t: labels.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions