Skip to content

[Impeller] Consider caching or at least trying to reuse VkFramebuffer and RenderPass objects #141750

@dnfield

Description

@dnfield

Per https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-compatibility, we can reuse the framebuffer as long as the render passes are compatible (and the width/height haven't changed presumably).

I suspect for many frames, the previous frame's framebuffer is reusable.

We could also try to come up with a caching mechanism if this isn't sufficient.

Motivation is an internal trace of an app on a Pixel 5 device, which shows significant time spent in vkCreateFramebuffer:

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work liste: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.r: fixedIssue is closed as already fixed in a newer versionteam-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