[Impeller] switch fallback default from ImpellerVulkan to SkiaOpenGLES (flutter/engine#51071)

Unblocks shipping Impeller on Android before GLES is ready.
This commit is contained in:
Jonah Williams 2024-02-28 17:47:19 -08:00 committed by GitHub
parent f026d97f42
commit 65f3a2348b
2 changed files with 6 additions and 3 deletions

View File

@ -236,6 +236,9 @@ AndroidRenderingAPI FlutterMain::SelectedRenderingAPI(
"software rendering or disable impeller.";
return AndroidRenderingAPI::kSoftware;
}
constexpr AndroidRenderingAPI kVulkanUnsupportedFallback =
AndroidRenderingAPI::kSkiaOpenGLES;
// Debug/Profile only functionality for testing a specific
// backend configuration.
#ifndef FLUTTER_RELEASE
@ -258,7 +261,7 @@ AndroidRenderingAPI FlutterMain::SelectedRenderingAPI(
// feature.
int api_level = android_get_device_api_level();
if (api_level < kMinimumAndroidApiLevelForVulkan) {
return AndroidRenderingAPI::kImpellerOpenGLES;
return kVulkanUnsupportedFallback;
}
// Determine if Vulkan is supported by creating a Vulkan context and
// checking if it is valid.
@ -268,7 +271,7 @@ AndroidRenderingAPI FlutterMain::SelectedRenderingAPI(
/*enable_vulkan_gpu_tracing=*/false,
/*quiet=*/true);
if (!vulkan_backend->IsValid()) {
return AndroidRenderingAPI::kImpellerOpenGLES;
return kVulkanUnsupportedFallback;
}
return AndroidRenderingAPI::kImpellerVulkan;
}

View File

@ -22,7 +22,7 @@ TEST(AndroidPlatformView, SelectsVulkanBasedOnApiLevel) {
AndroidRenderingAPI::kImpellerVulkan);
} else {
EXPECT_EQ(FlutterMain::SelectedRenderingAPI(settings),
AndroidRenderingAPI::kImpellerOpenGLES);
AndroidRenderingAPI::kSkiaOpenGLES);
}
}