Skip to content

Embedder: Refactor EmbedderTest to separate Metal, Vulkan, GL, Software backends #157942

@cbracken

Description

@cbracken

Today classes like EmbedderConfigBuilder and EmbedderTestBackingStoreProducer are full of #ifdefs for SHELL_ENABLE_METAL, SHELL_ENABLE_VULKAN, SHELL_ENABLE_GL etc.

Because this is all stock C++ code, we can't include Objective-C types in any headers transitively imported into any of them. This is problematic for Metal code since it precludes the usage of id<MTLDevice>, id<MTLCommandQueue> etc. in classes such as TestMetalContext, forcing us back to manual reference counting via __bridge_retained and __bridge_transfer.

Instead, we should break this code apart by backend, and implement the Metal code in Objective-C++.

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work lista: tests"flutter test", flutter_test, or one of our testsc: tech-debtTechnical debt, code quality, testing, etc.e: embedderUsers of the Embedder APIplatform-iosiOS applications specificallyplatform-macBuilding on or for macOS specificallyteam-iosOwned by iOS platform team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions