From d8b071b9b487cb9e680b55b9563bf7d4e2cd982e Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Mon, 9 Dec 2024 12:32:33 -0800 Subject: [PATCH 1/4] [Impeller] disable all Adrenos older than 630 (#57069) Fixes https://github.com/flutter/flutter/issues/159834 Disable all older Adreno GPUs --- .../renderer/backend/vulkan/driver_info_vk.cc | 28 ++++++++----------- .../vulkan/driver_info_vk_unittests.cc | 20 +++++++------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/impeller/renderer/backend/vulkan/driver_info_vk.cc b/impeller/renderer/backend/vulkan/driver_info_vk.cc index ca7cef979984c..583e3fbefc9d8 100644 --- a/impeller/renderer/backend/vulkan/driver_info_vk.cc +++ b/impeller/renderer/backend/vulkan/driver_info_vk.cc @@ -330,22 +330,18 @@ bool DriverInfoVK::IsEmulator() const { bool DriverInfoVK::IsKnownBadDriver() const { if (adreno_gpu_.has_value()) { - auto adreno = adreno_gpu_.value(); - switch (adreno) { - // See: - // https://github.com/flutter/flutter/issues/154103 - // - // Reports "VK_INCOMPLETE" when compiling certain entity shader with - // vkCreateGraphicsPipelines, which is not a valid return status. - // See https://github.com/flutter/flutter/issues/155185 . - case AdrenoGPU::kAdreno630: - // See: - // https://github.com/flutter/flutter/issues/155185 - // Unknown crashes but device is not easily acquirable. - case AdrenoGPU::kAdreno506: - return true; - default: - return false; + AdrenoGPU adreno = adreno_gpu_.value(); + // See: + // https://github.com/flutter/flutter/issues/154103 + // + // Reports "VK_INCOMPLETE" when compiling certain entity shader with + // vkCreateGraphicsPipelines, which is not a valid return status. + // See https://github.com/flutter/flutter/issues/155185 . + // + // https://github.com/flutter/flutter/issues/155185 + // Unknown crashes but device is not easily acquirable. + if (adreno <= AdrenoGPU::kAdreno630) { + return true; } } // Disable Maleoon series GPUs, see: diff --git a/impeller/renderer/backend/vulkan/driver_info_vk_unittests.cc b/impeller/renderer/backend/vulkan/driver_info_vk_unittests.cc index 9f9dc1d192f29..643787ec88ae9 100644 --- a/impeller/renderer/backend/vulkan/driver_info_vk_unittests.cc +++ b/impeller/renderer/backend/vulkan/driver_info_vk_unittests.cc @@ -80,6 +80,18 @@ TEST(DriverInfoVKTest, DriverParsingArm) { TEST(DriverInfoVKTest, DisabledDevices) { EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 630")); + EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 620")); + EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 610")); + EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 530")); + EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 512")); + EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 509")); + EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 508")); + EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 506")); + EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 505")); + EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 504")); + + EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 640")); + EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 650")); } TEST(DriverInfoVKTest, EnabledDevicesMali) { @@ -96,14 +108,6 @@ TEST(DriverInfoVKTest, EnabledDevicesAdreno) { EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 720")); EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 710")); EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 702")); - EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 530")); - EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 512")); - EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 509")); - EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 508")); - EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 505")); - EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 504")); - - EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 506")); } } // namespace impeller::testing From c2de0f83567719bc3aa776b0a0284f9a88772606 Mon Sep 17 00:00:00 2001 From: jonahwilliams Date: Wed, 11 Dec 2024 15:10:30 -0800 Subject: [PATCH 2/4] ++ --- .../renderer/backend/vulkan/driver_info_vk.cc | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/impeller/renderer/backend/vulkan/driver_info_vk.cc b/impeller/renderer/backend/vulkan/driver_info_vk.cc index 583e3fbefc9d8..585d0a2d00697 100644 --- a/impeller/renderer/backend/vulkan/driver_info_vk.cc +++ b/impeller/renderer/backend/vulkan/driver_info_vk.cc @@ -340,8 +340,31 @@ bool DriverInfoVK::IsKnownBadDriver() const { // // https://github.com/flutter/flutter/issues/155185 // Unknown crashes but device is not easily acquirable. - if (adreno <= AdrenoGPU::kAdreno630) { - return true; + switch (adreno) { + case AdrenoGPU::kAdreno630: + case AdrenoGPU::kAdreno620: + case AdrenoGPU::kAdreno619: + case AdrenoGPU::kAdreno619L: + case AdrenoGPU::kAdreno618: + case AdrenoGPU::kAdreno616: + case AdrenoGPU::kAdreno615: + case AdrenoGPU::kAdreno613: + case AdrenoGPU::kAdreno612: + case AdrenoGPU::kAdreno610: + case AdrenoGPU::kAdreno608: + case AdrenoGPU::kAdreno605: + case AdrenoGPU::kAdreno540: + case AdrenoGPU::kAdreno530: + case AdrenoGPU::kAdreno512: + case AdrenoGPU::kAdreno510: + case AdrenoGPU::kAdreno509: + case AdrenoGPU::kAdreno508: + case AdrenoGPU::kAdreno506: + case AdrenoGPU::kAdreno505: + case AdrenoGPU::kAdreno504: + return true; + default: + return false; } } // Disable Maleoon series GPUs, see: From cbc13d17e65beb976dde244f954561a8df29c18f Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Thu, 12 Dec 2024 15:46:28 -0800 Subject: [PATCH 3/4] Update driver_info_vk.cc --- impeller/renderer/backend/vulkan/driver_info_vk.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/impeller/renderer/backend/vulkan/driver_info_vk.cc b/impeller/renderer/backend/vulkan/driver_info_vk.cc index 585d0a2d00697..fc96c828b613b 100644 --- a/impeller/renderer/backend/vulkan/driver_info_vk.cc +++ b/impeller/renderer/backend/vulkan/driver_info_vk.cc @@ -341,6 +341,7 @@ bool DriverInfoVK::IsKnownBadDriver() const { // https://github.com/flutter/flutter/issues/155185 // Unknown crashes but device is not easily acquirable. switch (adreno) { + case AdrenoGPU::kAdreno640: case AdrenoGPU::kAdreno630: case AdrenoGPU::kAdreno620: case AdrenoGPU::kAdreno619: From f8418584e8a05c269a5352244368f1122b57473b Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Fri, 13 Dec 2024 09:12:01 -0800 Subject: [PATCH 4/4] Update driver_info_vk_unittests.cc --- impeller/renderer/backend/vulkan/driver_info_vk_unittests.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/impeller/renderer/backend/vulkan/driver_info_vk_unittests.cc b/impeller/renderer/backend/vulkan/driver_info_vk_unittests.cc index 643787ec88ae9..67f07815320af 100644 --- a/impeller/renderer/backend/vulkan/driver_info_vk_unittests.cc +++ b/impeller/renderer/backend/vulkan/driver_info_vk_unittests.cc @@ -89,8 +89,8 @@ TEST(DriverInfoVKTest, DisabledDevices) { EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 506")); EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 505")); EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 504")); + EXPECT_TRUE(IsBadVersionTest("Adreno (TM) 640")); - EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 640")); EXPECT_FALSE(IsBadVersionTest("Adreno (TM) 650")); }