diff --git a/engine/src/flutter/shell/platform/android/android_context_dynamic_impeller.cc b/engine/src/flutter/shell/platform/android/android_context_dynamic_impeller.cc index 6af29933862..8dcba69df49 100644 --- a/engine/src/flutter/shell/platform/android/android_context_dynamic_impeller.cc +++ b/engine/src/flutter/shell/platform/android/android_context_dynamic_impeller.cc @@ -17,21 +17,25 @@ namespace { static const constexpr char* kAndroidHuawei = "android-huawei"; -/// These are SoCs that crash when using AHB imports. -static constexpr const char* kBLC[] = { - // Most Exynos Series SoC +static constexpr const char* kBadSocs[] = { + // Most Exynos Series SoC. These are SoCs that crash when using AHB imports. "exynos7870", // "exynos7880", // "exynos7872", // "exynos7884", // "exynos7885", // + "exynos7904", // + // Mongoose line. "exynos8890", // "exynos8895", // - "exynos7904", // "exynos9609", // "exynos9610", // "exynos9611", // - "exynos9810" // + "exynos9810", // + // `exynos9820` and `exynos9825` have graphical errors: + // https://github.com/flutter/flutter/issues/171992. + "exynos9820", // + "exynos9825" // }; static bool IsDeviceEmulator(std::string_view product_model) { @@ -41,7 +45,7 @@ static bool IsDeviceEmulator(std::string_view product_model) { static bool IsKnownBadSOC(std::string_view hardware) { // TODO(jonahwilliams): if the list gets too long (> 16), convert // to a hash map first. - for (const auto& board : kBLC) { + for (const auto& board : kBadSocs) { if (strcmp(board, hardware.data()) == 0) { return true; } @@ -83,7 +87,8 @@ GetActualRenderingAPIForImpeller( __system_property_get("ro.product.board", product_model); if (IsKnownBadSOC(product_model)) { - // Avoid using Vulkan on known bad SoCs. + FML_LOG(INFO) + << "Known bad Vulkan driver encountered, falling back to OpenGLES."; return nullptr; }