Skip to content

[Impeller] backdrop blurs have bad performance compared to Skia when only covering a small region of the screen. #149368

@jonahwilliams

Description

@jonahwilliams

Consider the example app in #148742 . This uses a backdrop blur to achieve an iOS like overlay effect. Despite covering only a small region of the screen, for Impeller we will process and restore the entire screen to implement the backdrop.

There are other bdf filter approaches that are more optimial if only a small region of the screen is covered (or if there are multiple non-overlapping bdfs). One would be to replay the onscreen commands into an offscreen buffer with tighter bounds.

For a CI test case, the existing backdrop filter benchmark (which regressed with Impeller) is a reasonable test case for this and other optimizations.

https://flutter-flutter-perf.skia.org/e/?queries=device_type%3DPixel_7_Pro%26sub_result%3D90th_percentile_frame_rasterizer_time_millis%26sub_result%3D99th_percentile_frame_rasterizer_time_millis%26sub_result%3Daverage_frame_rasterizer_time_millis%26sub_result%3Dworst_frame_rasterizer_time_millis%26test%3Dbackdrop_filter_perf__timeline_summary

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not 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

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions