Skip to content

[Impeller] Vulkan Memory Allocator conflicts #114030

@iskakaushik

Description

@iskakaushik

Currently Vulkan + Impeller is build under a flag --enable-impeller-vulkan. One of the reasons it's not trivial to make it a default build is because VMA expects only one implementation for VMA_IMPLEMENTATION to be declared. There are 2 implementations of this:

  1. When skia_use_vulkan is enabled it results in skia_use_vma which results symbols be re-declared.
  2. If we were to set skia_use_vma to false explicitly, it results in the vulkan backend in embedder.cc to be defunct.

One way to resolve this would be to wire in VulkanMemoryAllocator as a pointer to fMemoryAllocator in https://github.com/flutter/engine/blob/main/shell/platform/embedder/embedder_surface_vulkan.cc#L144 and set skia_use_vma to false. This would result in a unified Vulkan memory allocator across all of the Flutter engine, but I am not sure if the memory allocator api (fMemoryAllocator) is considered stable and to be wired in by the consumers.

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work liste: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions