Use Metal on iOS by default. (#17431)
Fixes https://github.com/flutter/flutter/issues/18208. All Metal for iOS related work items described in https://github.com/orgs/flutter/projects/5 have been completed.
diff --git a/shell/platform/darwin/ios/rendering_api_selection.mm b/shell/platform/darwin/ios/rendering_api_selection.mm
index 91b483f..fd3ef0c 100644
--- a/shell/platform/darwin/ios/rendering_api_selection.mm
+++ b/shell/platform/darwin/ios/rendering_api_selection.mm
@@ -15,27 +15,9 @@
namespace flutter {
-bool ShouldUseSoftwareRenderer() {
- return [[[NSProcessInfo processInfo] arguments] containsObject:@"--force-software"];
-}
-
#if FLUTTER_SHELL_ENABLE_METAL
bool ShouldUseMetalRenderer() {
- // If there is a command line argument that says Metal should not be used, that takes precedence
- // over everything else. This allows disabling Metal on a per run basis to check for regressions
- // on an application that has otherwise opted into Metal on an iOS version that supports it.
- if ([[[NSProcessInfo processInfo] arguments] containsObject:@"--disable-metal"]) {
- return false;
- }
-
- // If the application wants to use metal on a per run basis with disregard for version checks or
- // plist based opt ins, respect that opinion. This allows selectively testing features on older
- // version of iOS than those explicitly stated as being supported.
- if ([[[NSProcessInfo processInfo] arguments] containsObject:@"--force-metal"]) {
- return true;
- }
-
- // Flutter supports Metal on all devices with Apple A7 SoC or above that have been update to or
+ // Flutter supports Metal on all devices with Apple A7 SoC or above that have been updated to or
// past iOS 10.0. The processor was selected as it is the first version at which Metal was
// supported. The iOS version floor was selected due to the availability of features used by Skia.
bool ios_version_supports_metal = false;
@@ -43,12 +25,7 @@
auto device = MTLCreateSystemDefaultDevice();
ios_version_supports_metal = [device supportsFeatureSet:MTLFeatureSet_iOS_GPUFamily1_v3];
}
-
- // The application must opt-in by default to use Metal without command line flags.
- bool application_opts_into_metal =
- [[[NSBundle mainBundle] objectForInfoDictionaryKey:@"io.flutter.metal_preview"] boolValue];
-
- return ios_version_supports_metal && application_opts_into_metal;
+ return ios_version_supports_metal;
}
#endif // FLUTTER_SHELL_ENABLE_METAL
@@ -58,10 +35,6 @@
#endif // TARGET_IPHONE_SIMULATOR
#if FLUTTER_SHELL_ENABLE_METAL
- static bool should_use_software = ShouldUseSoftwareRenderer();
- if (should_use_software) {
- return IOSRenderingAPI::kSoftware;
- }
static bool should_use_metal = ShouldUseMetalRenderer();
if (should_use_metal) {
return IOSRenderingAPI::kMetal;