Skip to content

[Impeller] Track if selected heap for buffer memory is coherent, avoid flush. #137454

@jonahwilliams

Description

@jonahwilliams

Right now we unconditionally flush because we don't otherwise handle host visible memory that isn't coherent. This adds some overhead, at some point we should make sure we track the different heap types and determine if the heap we've allocated from is already coherent.

Example of processing heap data:

https://github.com/flutter/engine/blob/main/impeller/renderer/backend/vulkan/capabilities_vk.cc#L374-L387

Where we would need to check:

https://github.com/flutter/engine/blob/main/impeller/renderer/backend/vulkan/device_buffer_vk.cc#L42-L45

That is, the VmaAllocationInfo info heapIndex will be the index of some specific heap, like https://vulkan.gpuinfo.org/displayreport.php?id=24254#memory . If we know this is coherent, avoid this call.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work liste: impellerImpeller rendering backend issues and features requestsgood first issueRelatively approachable for first-time contributorsteam-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