-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Closed
Closed
Copy link
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: tests"flutter test", flutter_test, or one of our tests"flutter test", flutter_test, or one of our testsc: tech-debtTechnical debt, code quality, testing, etc.Technical debt, code quality, testing, etc.e: embedderUsers of the Embedder APIUsers of the Embedder APIplatform-iosiOS applications specificallyiOS applications specificallyplatform-macBuilding on or for macOS specificallyBuilding on or for macOS specificallyteam-iosOwned by iOS platform teamOwned by iOS platform team
Description
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 listImportant issues not at the top of the work lista: tests"flutter test", flutter_test, or one of our tests"flutter test", flutter_test, or one of our testsc: tech-debtTechnical debt, code quality, testing, etc.Technical debt, code quality, testing, etc.e: embedderUsers of the Embedder APIUsers of the Embedder APIplatform-iosiOS applications specificallyiOS applications specificallyplatform-macBuilding on or for macOS specificallyBuilding on or for macOS specificallyteam-iosOwned by iOS platform teamOwned by iOS platform team