From 65f3a2348bc88bf33a48e93ace446eb1496ef571 Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Wed, 28 Feb 2024 17:47:19 -0800 Subject: [PATCH] [Impeller] switch fallback default from ImpellerVulkan to SkiaOpenGLES (flutter/engine#51071) Unblocks shipping Impeller on Android before GLES is ready. --- engine/src/flutter/shell/platform/android/flutter_main.cc | 7 +++++-- .../platform/android/platform_view_android_unittests.cc | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/engine/src/flutter/shell/platform/android/flutter_main.cc b/engine/src/flutter/shell/platform/android/flutter_main.cc index d3ad35ee6b2..298fd3aff87 100644 --- a/engine/src/flutter/shell/platform/android/flutter_main.cc +++ b/engine/src/flutter/shell/platform/android/flutter_main.cc @@ -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; } diff --git a/engine/src/flutter/shell/platform/android/platform_view_android_unittests.cc b/engine/src/flutter/shell/platform/android/platform_view_android_unittests.cc index fc1c2d9d1b1..3d7ed4f4923 100644 --- a/engine/src/flutter/shell/platform/android/platform_view_android_unittests.cc +++ b/engine/src/flutter/shell/platform/android/platform_view_android_unittests.cc @@ -22,7 +22,7 @@ TEST(AndroidPlatformView, SelectsVulkanBasedOnApiLevel) { AndroidRenderingAPI::kImpellerVulkan); } else { EXPECT_EQ(FlutterMain::SelectedRenderingAPI(settings), - AndroidRenderingAPI::kImpellerOpenGLES); + AndroidRenderingAPI::kSkiaOpenGLES); } }