@@ -17,21 +17,25 @@ namespace {
17
17
18
18
static const constexpr char * kAndroidHuawei = " android-huawei" ;
19
19
20
- // / These are SoCs that crash when using AHB imports.
21
- static constexpr const char * kBLC [] = {
22
- // Most Exynos Series SoC
20
+ static constexpr const char * kBadSocs [] = {
21
+ // Most Exynos Series SoC. These are SoCs that crash when using AHB imports.
23
22
" exynos7870" , //
24
23
" exynos7880" , //
25
24
" exynos7872" , //
26
25
" exynos7884" , //
27
26
" exynos7885" , //
27
+ " exynos7904" , //
28
+ // Mongoose line.
28
29
" exynos8890" , //
29
30
" exynos8895" , //
30
- " exynos7904" , //
31
31
" exynos9609" , //
32
32
" exynos9610" , //
33
33
" exynos9611" , //
34
- " exynos9810" //
34
+ " exynos9810" , //
35
+ // `exynos9820` and `exynos9825` have graphical errors:
36
+ // https://github.com/flutter/flutter/issues/171992.
37
+ " exynos9820" , //
38
+ " exynos9825" //
35
39
};
36
40
37
41
static bool IsDeviceEmulator (std::string_view product_model) {
@@ -41,7 +45,7 @@ static bool IsDeviceEmulator(std::string_view product_model) {
41
45
static bool IsKnownBadSOC (std::string_view hardware) {
42
46
// TODO(jonahwilliams): if the list gets too long (> 16), convert
43
47
// to a hash map first.
44
- for (const auto & board : kBLC ) {
48
+ for (const auto & board : kBadSocs ) {
45
49
if (strcmp (board, hardware.data ()) == 0 ) {
46
50
return true ;
47
51
}
@@ -83,7 +87,8 @@ GetActualRenderingAPIForImpeller(
83
87
84
88
__system_property_get (" ro.product.board" , product_model);
85
89
if (IsKnownBadSOC (product_model)) {
86
- // Avoid using Vulkan on known bad SoCs.
90
+ FML_LOG (INFO)
91
+ << " Known bad Vulkan driver encountered, falling back to OpenGLES." ;
87
92
return nullptr ;
88
93
}
89
94
0 commit comments