Skip to content

[Impeller] Implement GPU frame time tracing where feasible. #136493

@jonahwilliams

Description

@jonahwilliams

Today we cannot measure how long the GPU takes to execute a frame workload, except indirectly via any backpressure. Besides local profiling, we're mostly flying blind for small adjustments in GPU performance which is making it difficult to reason about "normal" execution.

For now, the measurements we use will be specific to the backend and will record data in the dart timeline. The specific designs are discussed in the linked issues, this is only for tracking. We will not be able to always guarantee the ability to trace GPU execution times. Some devices will not support the APIs required.

Metal

flutter/engine#46846

Vulkan

flutter/engine#46796

GLES

flutter/engine#47080

Tooling

#136408

For now we're using a trace counter, with single FrameTimeMS field. There has been some discussion about the best way to surface this from something like FrameTimings, but I don't have a solution yet.

FYI @dnfield @kenzieschmoll

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work liste: impellerImpeller rendering backend issues and features requeststeam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions