From 9bcb2319b5fb1d081a0648d5891469b75e31deff Mon Sep 17 00:00:00 2001 From: jonahwilliams Date: Fri, 10 May 2024 10:45:56 -0700 Subject: [PATCH 1/2] [Impeller] Disable AHB swapchain. --- .../backend/vulkan/swapchain/swapchain_vk.cc | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/impeller/renderer/backend/vulkan/swapchain/swapchain_vk.cc b/impeller/renderer/backend/vulkan/swapchain/swapchain_vk.cc index a777e66a943f5..5b2ae088f8204 100644 --- a/impeller/renderer/backend/vulkan/swapchain/swapchain_vk.cc +++ b/impeller/renderer/backend/vulkan/swapchain/swapchain_vk.cc @@ -9,10 +9,6 @@ #include "impeller/renderer/backend/vulkan/swapchain/khr/khr_swapchain_vk.h" #include "impeller/renderer/backend/vulkan/vk.h" -#if FML_OS_ANDROID -#include "impeller/renderer/backend/vulkan/swapchain/ahb/ahb_swapchain_vk.h" -#endif // FML_OS_ANDROID - namespace impeller { std::shared_ptr SwapchainVK::Create( @@ -55,27 +51,6 @@ std::shared_ptr SwapchainVK::Create( return nullptr; } - // TODO(147533): AHB swapchains on emulators are not functional. - const auto emulator = ContextVK::Cast(*context).GetDriverInfo()->IsEmulator(); - - // Try AHB swapchains first. - if (!emulator && AHBSwapchainVK::IsAvailableOnPlatform()) { - auto ahb_swapchain = std::shared_ptr(new AHBSwapchainVK( - context, // - window.GetHandle(), // - std::move(surface), // - window.GetSize(), // - enable_msaa // - )); - - if (ahb_swapchain->IsValid()) { - return ahb_swapchain; - } else { - VALIDATION_LOG - << "Could not create AHB swapchain. Falling back to KHR variant."; - } - } - // Fallback to KHR swapchains if AHB swapchains aren't available. return Create(context, std::move(surface), window.GetSize(), enable_msaa); } From 5f20ee7badf74aed58d65d74ebd0b5cd4439c2a0 Mon Sep 17 00:00:00 2001 From: jonahwilliams Date: Fri, 10 May 2024 10:57:22 -0700 Subject: [PATCH 2/2] constexpr false --- .../backend/vulkan/swapchain/swapchain_vk.cc | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/impeller/renderer/backend/vulkan/swapchain/swapchain_vk.cc b/impeller/renderer/backend/vulkan/swapchain/swapchain_vk.cc index 5b2ae088f8204..a2cb44509bb61 100644 --- a/impeller/renderer/backend/vulkan/swapchain/swapchain_vk.cc +++ b/impeller/renderer/backend/vulkan/swapchain/swapchain_vk.cc @@ -9,6 +9,10 @@ #include "impeller/renderer/backend/vulkan/swapchain/khr/khr_swapchain_vk.h" #include "impeller/renderer/backend/vulkan/vk.h" +#if FML_OS_ANDROID +#include "impeller/renderer/backend/vulkan/swapchain/ahb/ahb_swapchain_vk.h" +#endif // FML_OS_ANDROID + namespace impeller { std::shared_ptr SwapchainVK::Create( @@ -51,6 +55,32 @@ std::shared_ptr SwapchainVK::Create( return nullptr; } + // TODO(148139): https://github.com/flutter/flutter/issues/148139 sync issues + // on present. + if constexpr (false) { + // TODO(147533): AHB swapchains on emulators are not functional. + const auto emulator = + ContextVK::Cast(*context).GetDriverInfo()->IsEmulator(); + + // Try AHB swapchains first. + if (!emulator && AHBSwapchainVK::IsAvailableOnPlatform()) { + auto ahb_swapchain = std::shared_ptr(new AHBSwapchainVK( + context, // + window.GetHandle(), // + std::move(surface), // + window.GetSize(), // + enable_msaa // + )); + + if (ahb_swapchain->IsValid()) { + return ahb_swapchain; + } else { + VALIDATION_LOG + << "Could not create AHB swapchain. Falling back to KHR variant."; + } + } + } + // Fallback to KHR swapchains if AHB swapchains aren't available. return Create(context, std::move(surface), window.GetSize(), enable_msaa); }