Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit cb4b5ff

Browse files
author
Jonah Williams
authored
[CP][Impeller] disable all Adrenos older than 630 (#57069) (#57100)
Cherry pick for flutter/flutter#160041
1 parent 57618fa commit cb4b5ff

File tree

2 files changed

+42
-18
lines changed

2 files changed

+42
-18
lines changed

impeller/renderer/backend/vulkan/driver_info_vk.cc

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -330,19 +330,39 @@ bool DriverInfoVK::IsEmulator() const {
330330

331331
bool DriverInfoVK::IsKnownBadDriver() const {
332332
if (adreno_gpu_.has_value()) {
333-
auto adreno = adreno_gpu_.value();
333+
AdrenoGPU adreno = adreno_gpu_.value();
334+
// See:
335+
// https://github.com/flutter/flutter/issues/154103
336+
//
337+
// Reports "VK_INCOMPLETE" when compiling certain entity shader with
338+
// vkCreateGraphicsPipelines, which is not a valid return status.
339+
// See https://github.com/flutter/flutter/issues/155185 .
340+
//
341+
// https://github.com/flutter/flutter/issues/155185
342+
// Unknown crashes but device is not easily acquirable.
334343
switch (adreno) {
335-
// See:
336-
// https://github.com/flutter/flutter/issues/154103
337-
//
338-
// Reports "VK_INCOMPLETE" when compiling certain entity shader with
339-
// vkCreateGraphicsPipelines, which is not a valid return status.
340-
// See https://github.com/flutter/flutter/issues/155185 .
344+
case AdrenoGPU::kAdreno640:
341345
case AdrenoGPU::kAdreno630:
342-
// See:
343-
// https://github.com/flutter/flutter/issues/155185
344-
// Unknown crashes but device is not easily acquirable.
346+
case AdrenoGPU::kAdreno620:
347+
case AdrenoGPU::kAdreno619:
348+
case AdrenoGPU::kAdreno619L:
349+
case AdrenoGPU::kAdreno618:
350+
case AdrenoGPU::kAdreno616:
351+
case AdrenoGPU::kAdreno615:
352+
case AdrenoGPU::kAdreno613:
353+
case AdrenoGPU::kAdreno612:
354+
case AdrenoGPU::kAdreno610:
355+
case AdrenoGPU::kAdreno608:
356+
case AdrenoGPU::kAdreno605:
357+
case AdrenoGPU::kAdreno540:
358+
case AdrenoGPU::kAdreno530:
359+
case AdrenoGPU::kAdreno512:
360+
case AdrenoGPU::kAdreno510:
361+
case AdrenoGPU::kAdreno509:
362+
case AdrenoGPU::kAdreno508:
345363
case AdrenoGPU::kAdreno506:
364+
case AdrenoGPU::kAdreno505:
365+
case AdrenoGPU::kAdreno504:
346366
return true;
347367
default:
348368
return false;

impeller/renderer/backend/vulkan/driver_info_vk_unittests.cc

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,18 @@ TEST(DriverInfoVKTest, DriverParsingArm) {
8080

8181
TEST(DriverInfoVKTest, DisabledDevices) {
8282
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 630"));
83+
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 620"));
84+
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 610"));
85+
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 530"));
86+
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 512"));
87+
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 509"));
88+
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 508"));
89+
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 506"));
90+
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 505"));
91+
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 504"));
92+
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 640"));
93+
94+
EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 650"));
8395
}
8496

8597
TEST(DriverInfoVKTest, EnabledDevicesMali) {
@@ -96,14 +108,6 @@ TEST(DriverInfoVKTest, EnabledDevicesAdreno) {
96108
EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 720"));
97109
EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 710"));
98110
EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 702"));
99-
EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 530"));
100-
EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 512"));
101-
EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 509"));
102-
EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 508"));
103-
EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 505"));
104-
EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 504"));
105-
106-
EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 506"));
107111
}
108112

109113
} // namespace impeller::testing

0 commit comments

Comments
 (0)