Skip to content

[Impeller] Optimize DrawAtlas with blending. #119958

@jonahwilliams

Description

@jonahwilliams

Currently drawAtlas with a blend mode will create a subpass that is as large as the final area needed. For example, if two sprites 50x50 drawn one at 0,0 and one at 1000,1000, then we end up with a 1050x1050 roughly subpass texture.

This is much less efficient than it could be. Since the subpass is only used to create blended texture, we could instead collapse this to a 50x100 texture and then position the sprites when compositing back onto the parent pass. We could even collapse cases where the per sprite color blend and sample is identical.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Issues that are less important to the Flutter projectc: performanceRelates to speed or footprint issues (see "perf:" labels)e: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.team-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