Skip to content

[Impeller] Inline binding maps in command object (cmd.h) #133199

@jonahwilliams

Description

@jonahwilliams

Originally the bindings object in command.h created 5 std::unordered_map for the vertex and 5 for the fragment stage. The deallocation of these maps adds measurable overhead to render pass encoding. In flutter/engine#44990 and flutter/engine#45021 I reduced the number of maps from 5 to 2. But since most cmds will 0-1 bound items, we can be more efficient if we slightly inline the map: that is have a slot on the binding object for id 0, and the a ptr to a map that we lazily create if we need more

Metadata

Metadata

Assignees

No one assigned

    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