From 71b4fa9bf388d996773f0bc8fd772b0e6bc367a6 Mon Sep 17 00:00:00 2001 From: Evan Walley Date: Wed, 27 May 2026 20:35:39 -0700 Subject: [PATCH 1/4] add sdf golden variants for vulkan and opengl --- .../golden_tests/golden_playground_test_mac.cc | 11 +++++++++-- engine/src/flutter/impeller/playground/playground.cc | 6 ++++++ engine/src/flutter/impeller/playground/playground.h | 2 ++ .../flutter/impeller/playground/playground_impl.cc | 12 ++++++++++++ .../flutter/impeller/playground/playground_test.cc | 2 ++ .../flutter/impeller/playground/playground_test.h | 3 ++- .../runtime_stage/runtime_stage_unittests.cc | 7 +++++-- .../impeller/toolkit/interop/playground_test.cc | 8 +++++++- 8 files changed, 45 insertions(+), 6 deletions(-) diff --git a/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc b/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc index 9e074f7261ad1..b346c9755c616 100644 --- a/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc +++ b/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc @@ -181,6 +181,9 @@ void GoldenPlaygroundTest::SetUp() { pimpl_->screenshotter = std::make_unique(switches); break; + case PlaygroundBackend::kVulkanSDF: + switches.flags.use_sdfs = true; + [[fallthrough]]; case PlaygroundBackend::kVulkan: { if (switches.enable_wide_gamut) { GTEST_SKIP() << "Vulkan doesn't support wide gamut golden tests."; @@ -195,6 +198,9 @@ void GoldenPlaygroundTest::SetUp() { std::make_unique(playground); break; } + case PlaygroundBackend::kOpenGLESSDF: + switches.flags.use_sdfs = true; + [[fallthrough]]; case PlaygroundBackend::kOpenGLES: { if (switches.enable_wide_gamut) { GTEST_SKIP() << "OpenGLES doesn't support wide gamut golden tests."; @@ -206,8 +212,9 @@ void GoldenPlaygroundTest::SetUp() { FML_CHECK(::glfwInit() == GLFW_TRUE); PlaygroundSwitches playground_switches; playground_switches.use_angle = true; - pimpl_->test_opengl_playground = PlaygroundImpl::Create( - PlaygroundBackend::kOpenGLES, playground_switches); + playground_switches.flags.use_sdfs = switches.flags.use_sdfs; + pimpl_->test_opengl_playground = + PlaygroundImpl::Create(GetParam(), playground_switches); pimpl_->screenshotter = std::make_unique( pimpl_->test_opengl_playground); break; diff --git a/engine/src/flutter/impeller/playground/playground.cc b/engine/src/flutter/impeller/playground/playground.cc index 35d19560cd8aa..f54a836e4a27b 100644 --- a/engine/src/flutter/impeller/playground/playground.cc +++ b/engine/src/flutter/impeller/playground/playground.cc @@ -52,8 +52,12 @@ std::string PlaygroundBackendToString(PlaygroundBackend backend) { return "MetalSDF"; case PlaygroundBackend::kOpenGLES: return "OpenGLES"; + case PlaygroundBackend::kOpenGLESSDF: + return "OpenGLESSDF"; case PlaygroundBackend::kVulkan: return "Vulkan"; + case PlaygroundBackend::kVulkanSDF: + return "VulkanSDF"; } FML_UNREACHABLE(); } @@ -111,12 +115,14 @@ bool Playground::SupportsBackend(PlaygroundBackend backend) { return false; #endif // IMPELLER_ENABLE_METAL case PlaygroundBackend::kOpenGLES: + case PlaygroundBackend::kOpenGLESSDF: #if IMPELLER_ENABLE_OPENGLES return true; #else // IMPELLER_ENABLE_OPENGLES return false; #endif // IMPELLER_ENABLE_OPENGLES case PlaygroundBackend::kVulkan: + case PlaygroundBackend::kVulkanSDF: #if IMPELLER_ENABLE_VULKAN return PlaygroundImplVK::IsVulkanDriverPresent(); #else // IMPELLER_ENABLE_VULKAN diff --git a/engine/src/flutter/impeller/playground/playground.h b/engine/src/flutter/impeller/playground/playground.h index 69c7c39f23b1c..9fd476af8fd0f 100644 --- a/engine/src/flutter/impeller/playground/playground.h +++ b/engine/src/flutter/impeller/playground/playground.h @@ -27,7 +27,9 @@ enum class PlaygroundBackend { kMetal, kMetalSDF, kOpenGLES, + kOpenGLESSDF, kVulkan, + kVulkanSDF, }; std::string PlaygroundBackendToString(PlaygroundBackend backend); diff --git a/engine/src/flutter/impeller/playground/playground_impl.cc b/engine/src/flutter/impeller/playground/playground_impl.cc index a112b84ce0d36..5c77769e71545 100644 --- a/engine/src/flutter/impeller/playground/playground_impl.cc +++ b/engine/src/flutter/impeller/playground/playground_impl.cc @@ -36,6 +36,9 @@ std::unique_ptr PlaygroundImpl::Create( #if IMPELLER_ENABLE_OPENGLES case PlaygroundBackend::kOpenGLES: return std::make_unique(switches); + case PlaygroundBackend::kOpenGLESSDF: + switches.flags.use_sdfs = true; + return std::make_unique(switches); #endif // IMPELLER_ENABLE_OPENGLES #if IMPELLER_ENABLE_VULKAN case PlaygroundBackend::kVulkan: @@ -46,6 +49,15 @@ std::unique_ptr PlaygroundImpl::Create( } switches.enable_vulkan_validation = true; return std::make_unique(switches); + case PlaygroundBackend::kVulkanSDF: + if (!PlaygroundImplVK::IsVulkanDriverPresent()) { + FML_CHECK(false) << "Attempted to create playground with backend that " + "isn't available or was disabled on this platform: " + << PlaygroundBackendToString(backend); + } + switches.flags.use_sdfs = true; + switches.enable_vulkan_validation = true; + return std::make_unique(switches); #endif // IMPELLER_ENABLE_VULKAN default: FML_CHECK(false) << "Attempted to create playground with backend that " diff --git a/engine/src/flutter/impeller/playground/playground_test.cc b/engine/src/flutter/impeller/playground/playground_test.cc index d35150190df36..094516986383b 100644 --- a/engine/src/flutter/impeller/playground/playground_test.cc +++ b/engine/src/flutter/impeller/playground/playground_test.cc @@ -106,11 +106,13 @@ std::string PlaygroundTest::GetWindowTitle() const { case PlaygroundBackend::kMetalSDF: break; case PlaygroundBackend::kOpenGLES: + case PlaygroundBackend::kOpenGLESSDF: if (switches_.use_angle) { stream << " (Angle) "; } break; case PlaygroundBackend::kVulkan: + case PlaygroundBackend::kVulkanSDF: if (switches_.use_swiftshader) { stream << " (SwiftShader) "; } diff --git a/engine/src/flutter/impeller/playground/playground_test.h b/engine/src/flutter/impeller/playground/playground_test.h index 36944112e3e7f..ad06bcf58fc2a 100644 --- a/engine/src/flutter/impeller/playground/playground_test.h +++ b/engine/src/flutter/impeller/playground/playground_test.h @@ -63,7 +63,8 @@ class PlaygroundTest : public Playground, Play, playground, \ ::testing::Values( \ PlaygroundBackend::kMetal, PlaygroundBackend::kMetalSDF, \ - PlaygroundBackend::kOpenGLES, PlaygroundBackend::kVulkan), \ + PlaygroundBackend::kOpenGLES, PlaygroundBackend::kOpenGLESSDF, \ + PlaygroundBackend::kVulkan, PlaygroundBackend::kVulkanSDF), \ [](const ::testing::TestParamInfo& info) { \ return PlaygroundBackendToString(info.param); \ }); diff --git a/engine/src/flutter/impeller/runtime_stage/runtime_stage_unittests.cc b/engine/src/flutter/impeller/runtime_stage/runtime_stage_unittests.cc index 90443653c3f9b..40da65650e089 100644 --- a/engine/src/flutter/impeller/runtime_stage/runtime_stage_unittests.cc +++ b/engine/src/flutter/impeller/runtime_stage/runtime_stage_unittests.cc @@ -88,7 +88,9 @@ TEST_P(RuntimeStageTest, CanReadUniforms) { [[fallthrough]]; case PlaygroundBackend::kMetalSDF: [[fallthrough]]; - case PlaygroundBackend::kOpenGLES: { + case PlaygroundBackend::kOpenGLES: + [[fallthrough]]; + case PlaygroundBackend::kOpenGLESSDF: { ASSERT_EQ(stage->GetUniforms().size(), 14u); { // uFloat @@ -238,7 +240,8 @@ TEST_P(RuntimeStageTest, CanReadUniforms) { } break; } - case PlaygroundBackend::kVulkan: { + case PlaygroundBackend::kVulkan: + case PlaygroundBackend::kVulkanSDF: { EXPECT_EQ(stage->GetUniforms().size(), 1u); const RuntimeUniformDescription* uni = stage->GetUniform(RuntimeStage::kVulkanUBOName); diff --git a/engine/src/flutter/impeller/toolkit/interop/playground_test.cc b/engine/src/flutter/impeller/toolkit/interop/playground_test.cc index 4bc9b84edfb87..f10bda01c141e 100644 --- a/engine/src/flutter/impeller/toolkit/interop/playground_test.cc +++ b/engine/src/flutter/impeller/toolkit/interop/playground_test.cc @@ -62,7 +62,8 @@ ScopedObject PlaygroundTest::CreateContext() const { case PlaygroundBackend::kMetalSDF: return Adopt( ImpellerContextCreateMetalNew(ImpellerGetVersion())); - case PlaygroundBackend::kOpenGLES: { + case PlaygroundBackend::kOpenGLES: + case PlaygroundBackend::kOpenGLESSDF: { Playground::GLProcAddressResolver playground_gl_proc_address_callback = CreateGLProcAddressResolver(); ImpellerProcAddressCallback gl_proc_address_callback = @@ -75,6 +76,7 @@ ScopedObject PlaygroundTest::CreateContext() const { &playground_gl_proc_address_callback)); } case PlaygroundBackend::kVulkan: + case PlaygroundBackend::kVulkanSDF: ImpellerContextVulkanSettings settings = {}; struct UserData { Playground::VKProcAddressResolver resolver; @@ -112,12 +114,14 @@ static ScopedObject CreateSharedSurface( #if IMPELLER_ENABLE_OPENGLES case PlaygroundBackend::kOpenGLES: + case PlaygroundBackend::kOpenGLESSDF: return Adopt( new SurfaceGLES(context, std::move(shared_surface))); #endif #if IMPELLER_ENABLE_VULKAN case PlaygroundBackend::kVulkan: + case PlaygroundBackend::kVulkanSDF: return Adopt(new SurfaceVK(context, std::move(shared_surface))); #endif default: @@ -156,10 +160,12 @@ static ScopedObject CreateSharedContext( #endif #if IMPELLER_ENABLE_OPENGLES case PlaygroundBackend::kOpenGLES: + case PlaygroundBackend::kOpenGLESSDF: return ContextGLES::Create(std::move(shared_context)); #endif #if IMPELLER_ENABLE_VULKAN case PlaygroundBackend::kVulkan: + case PlaygroundBackend::kVulkanSDF: return ContextVK::Create(std::move(shared_context)); #endif default: From 7383be8e865f75943609e21206e3f070291f09c0 Mon Sep 17 00:00:00 2001 From: Evan Walley Date: Thu, 28 May 2026 12:52:57 -0700 Subject: [PATCH 2/4] remove vulkan --- .../impeller/golden_tests/golden_playground_test_mac.cc | 3 --- engine/src/flutter/impeller/playground/playground.cc | 3 --- engine/src/flutter/impeller/playground/playground.h | 1 - .../src/flutter/impeller/playground/playground_impl.cc | 9 --------- .../src/flutter/impeller/playground/playground_test.cc | 1 - engine/src/flutter/impeller/playground/playground_test.h | 2 +- .../impeller/runtime_stage/runtime_stage_unittests.cc | 3 +-- .../flutter/impeller/toolkit/interop/playground_test.cc | 3 --- 8 files changed, 2 insertions(+), 23 deletions(-) diff --git a/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc b/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc index b346c9755c616..aa758adabad79 100644 --- a/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc +++ b/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc @@ -181,9 +181,6 @@ void GoldenPlaygroundTest::SetUp() { pimpl_->screenshotter = std::make_unique(switches); break; - case PlaygroundBackend::kVulkanSDF: - switches.flags.use_sdfs = true; - [[fallthrough]]; case PlaygroundBackend::kVulkan: { if (switches.enable_wide_gamut) { GTEST_SKIP() << "Vulkan doesn't support wide gamut golden tests."; diff --git a/engine/src/flutter/impeller/playground/playground.cc b/engine/src/flutter/impeller/playground/playground.cc index f54a836e4a27b..87e898fa2c97a 100644 --- a/engine/src/flutter/impeller/playground/playground.cc +++ b/engine/src/flutter/impeller/playground/playground.cc @@ -56,8 +56,6 @@ std::string PlaygroundBackendToString(PlaygroundBackend backend) { return "OpenGLESSDF"; case PlaygroundBackend::kVulkan: return "Vulkan"; - case PlaygroundBackend::kVulkanSDF: - return "VulkanSDF"; } FML_UNREACHABLE(); } @@ -122,7 +120,6 @@ bool Playground::SupportsBackend(PlaygroundBackend backend) { return false; #endif // IMPELLER_ENABLE_OPENGLES case PlaygroundBackend::kVulkan: - case PlaygroundBackend::kVulkanSDF: #if IMPELLER_ENABLE_VULKAN return PlaygroundImplVK::IsVulkanDriverPresent(); #else // IMPELLER_ENABLE_VULKAN diff --git a/engine/src/flutter/impeller/playground/playground.h b/engine/src/flutter/impeller/playground/playground.h index 9fd476af8fd0f..3c8b251bf8018 100644 --- a/engine/src/flutter/impeller/playground/playground.h +++ b/engine/src/flutter/impeller/playground/playground.h @@ -29,7 +29,6 @@ enum class PlaygroundBackend { kOpenGLES, kOpenGLESSDF, kVulkan, - kVulkanSDF, }; std::string PlaygroundBackendToString(PlaygroundBackend backend); diff --git a/engine/src/flutter/impeller/playground/playground_impl.cc b/engine/src/flutter/impeller/playground/playground_impl.cc index 5c77769e71545..22a9909e3c4d0 100644 --- a/engine/src/flutter/impeller/playground/playground_impl.cc +++ b/engine/src/flutter/impeller/playground/playground_impl.cc @@ -49,15 +49,6 @@ std::unique_ptr PlaygroundImpl::Create( } switches.enable_vulkan_validation = true; return std::make_unique(switches); - case PlaygroundBackend::kVulkanSDF: - if (!PlaygroundImplVK::IsVulkanDriverPresent()) { - FML_CHECK(false) << "Attempted to create playground with backend that " - "isn't available or was disabled on this platform: " - << PlaygroundBackendToString(backend); - } - switches.flags.use_sdfs = true; - switches.enable_vulkan_validation = true; - return std::make_unique(switches); #endif // IMPELLER_ENABLE_VULKAN default: FML_CHECK(false) << "Attempted to create playground with backend that " diff --git a/engine/src/flutter/impeller/playground/playground_test.cc b/engine/src/flutter/impeller/playground/playground_test.cc index 094516986383b..935c46949bb1b 100644 --- a/engine/src/flutter/impeller/playground/playground_test.cc +++ b/engine/src/flutter/impeller/playground/playground_test.cc @@ -112,7 +112,6 @@ std::string PlaygroundTest::GetWindowTitle() const { } break; case PlaygroundBackend::kVulkan: - case PlaygroundBackend::kVulkanSDF: if (switches_.use_swiftshader) { stream << " (SwiftShader) "; } diff --git a/engine/src/flutter/impeller/playground/playground_test.h b/engine/src/flutter/impeller/playground/playground_test.h index ad06bcf58fc2a..309c8e787d169 100644 --- a/engine/src/flutter/impeller/playground/playground_test.h +++ b/engine/src/flutter/impeller/playground/playground_test.h @@ -64,7 +64,7 @@ class PlaygroundTest : public Playground, ::testing::Values( \ PlaygroundBackend::kMetal, PlaygroundBackend::kMetalSDF, \ PlaygroundBackend::kOpenGLES, PlaygroundBackend::kOpenGLESSDF, \ - PlaygroundBackend::kVulkan, PlaygroundBackend::kVulkanSDF), \ + PlaygroundBackend::kVulkan), \ [](const ::testing::TestParamInfo& info) { \ return PlaygroundBackendToString(info.param); \ }); diff --git a/engine/src/flutter/impeller/runtime_stage/runtime_stage_unittests.cc b/engine/src/flutter/impeller/runtime_stage/runtime_stage_unittests.cc index 40da65650e089..00e2ecdd4e107 100644 --- a/engine/src/flutter/impeller/runtime_stage/runtime_stage_unittests.cc +++ b/engine/src/flutter/impeller/runtime_stage/runtime_stage_unittests.cc @@ -240,8 +240,7 @@ TEST_P(RuntimeStageTest, CanReadUniforms) { } break; } - case PlaygroundBackend::kVulkan: - case PlaygroundBackend::kVulkanSDF: { + case PlaygroundBackend::kVulkan: { EXPECT_EQ(stage->GetUniforms().size(), 1u); const RuntimeUniformDescription* uni = stage->GetUniform(RuntimeStage::kVulkanUBOName); diff --git a/engine/src/flutter/impeller/toolkit/interop/playground_test.cc b/engine/src/flutter/impeller/toolkit/interop/playground_test.cc index f10bda01c141e..268dbeef5e958 100644 --- a/engine/src/flutter/impeller/toolkit/interop/playground_test.cc +++ b/engine/src/flutter/impeller/toolkit/interop/playground_test.cc @@ -76,7 +76,6 @@ ScopedObject PlaygroundTest::CreateContext() const { &playground_gl_proc_address_callback)); } case PlaygroundBackend::kVulkan: - case PlaygroundBackend::kVulkanSDF: ImpellerContextVulkanSettings settings = {}; struct UserData { Playground::VKProcAddressResolver resolver; @@ -121,7 +120,6 @@ static ScopedObject CreateSharedSurface( #if IMPELLER_ENABLE_VULKAN case PlaygroundBackend::kVulkan: - case PlaygroundBackend::kVulkanSDF: return Adopt(new SurfaceVK(context, std::move(shared_surface))); #endif default: @@ -165,7 +163,6 @@ static ScopedObject CreateSharedContext( #endif #if IMPELLER_ENABLE_VULKAN case PlaygroundBackend::kVulkan: - case PlaygroundBackend::kVulkanSDF: return ContextVK::Create(std::move(shared_context)); #endif default: From 1a3928e5fdb145086a33ed51d20a92f095005fbb Mon Sep 17 00:00:00 2001 From: Evan Walley Date: Fri, 29 May 2026 14:57:26 -0700 Subject: [PATCH 3/4] format --- .../golden_tests/golden_playground_test_mac.cc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc b/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc index ce4bbc83c70f6..a1d5380b46e1e 100644 --- a/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc +++ b/engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc @@ -66,22 +66,24 @@ std::unique_ptr MakeOpenGLESPlayground(bool use_sdfs = false) { PlaygroundSwitches playground_switches; playground_switches.use_angle = true; playground_switches.flags.use_sdfs = use_sdfs; - return PlaygroundImpl::Create(use_sdfs ? PlaygroundBackend::kOpenGLESSDF : PlaygroundBackend::kOpenGLES, - playground_switches); + return PlaygroundImpl::Create( + use_sdfs ? PlaygroundBackend::kOpenGLESSDF : PlaygroundBackend::kOpenGLES, + playground_switches); } // Returns a static instance to an OpenGL ES playground that can be used across // tests. -const std::unique_ptr& GetSharedOpenGLESPlayground(bool use_sdfs) { +const std::unique_ptr& GetSharedOpenGLESPlayground( + bool use_sdfs) { if (use_sdfs) { - static absl::NoDestructor> opengl_playground( - MakeOpenGLESPlayground(/*use_sdfs=*/true)); + static absl::NoDestructor> + opengl_playground(MakeOpenGLESPlayground(/*use_sdfs=*/true)); static fml::ScopedCleanupClosure context_cleanup( [&] { (*opengl_playground)->GetContext()->Shutdown(); }); return *opengl_playground; } else { - static absl::NoDestructor> opengl_playground( - MakeOpenGLESPlayground(/*use_sdfs=*/false)); + static absl::NoDestructor> + opengl_playground(MakeOpenGLESPlayground(/*use_sdfs=*/false)); // TODO(142237): This can be removed when the thread local storage is // removed. static fml::ScopedCleanupClosure context_cleanup( From 25e43b2e5b89d8c59e0f296d289a3dbf2807fefa Mon Sep 17 00:00:00 2001 From: Evan Walley Date: Fri, 29 May 2026 16:59:13 -0700 Subject: [PATCH 4/4] Add skips for glesSDF variants sigh --- .../contents/tiled_texture_contents_unittests.cc | 3 ++- .../src/flutter/impeller/entity/entity_unittests.cc | 3 ++- .../flutter/impeller/renderer/renderer_unittests.cc | 12 ++++++++---- .../impeller/toolkit/interop/impeller_unittests.cc | 3 ++- .../impeller/typographer/typographer_unittests.cc | 3 ++- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/engine/src/flutter/impeller/entity/contents/tiled_texture_contents_unittests.cc b/engine/src/flutter/impeller/entity/contents/tiled_texture_contents_unittests.cc index 0aa4a41cd9d95..f0af27b66fafa 100644 --- a/engine/src/flutter/impeller/entity/contents/tiled_texture_contents_unittests.cc +++ b/engine/src/flutter/impeller/entity/contents/tiled_texture_contents_unittests.cc @@ -62,7 +62,8 @@ TEST_P(EntityTest, TiledTextureContentsRendersWithCorrectPipeline) { // GL_OES_EGL_image_external isn't supported on MacOS hosts. #if !defined(FML_OS_MACOSX) TEST_P(EntityTest, TiledTextureContentsRendersWithCorrectPipelineExternalOES) { - if (GetParam() != PlaygroundBackend::kOpenGLES) { + if (GetParam() != PlaygroundBackend::kOpenGLES && + GetParam() != PlaygroundBackend::kOpenGLESSDF) { GTEST_SKIP() << "External OES textures are only valid for the OpenGLES backend."; } diff --git a/engine/src/flutter/impeller/entity/entity_unittests.cc b/engine/src/flutter/impeller/entity/entity_unittests.cc index 414e2d2290506..61e988fe53108 100644 --- a/engine/src/flutter/impeller/entity/entity_unittests.cc +++ b/engine/src/flutter/impeller/entity/entity_unittests.cc @@ -1750,7 +1750,8 @@ static std::vector> CreateTestYUVTextures( } TEST_P(EntityTest, YUVToRGBFilter) { - if (GetParam() == PlaygroundBackend::kOpenGLES) { + if (GetParam() == PlaygroundBackend::kOpenGLES || + GetParam() == PlaygroundBackend::kOpenGLESSDF) { // TODO(114588) : Support YUV to RGB filter on OpenGLES backend. GTEST_SKIP() << "YUV to RGB filter is not supported on OpenGLES backend yet."; diff --git a/engine/src/flutter/impeller/renderer/renderer_unittests.cc b/engine/src/flutter/impeller/renderer/renderer_unittests.cc index 9b9526cc3f1e9..5386f6e3508ea 100644 --- a/engine/src/flutter/impeller/renderer/renderer_unittests.cc +++ b/engine/src/flutter/impeller/renderer/renderer_unittests.cc @@ -419,7 +419,8 @@ TEST_P(RendererTest, CanRenderToTexture) { } TEST_P(RendererTest, CanRenderInstanced) { - if (GetParam() == PlaygroundBackend::kOpenGLES) { + if (GetParam() == PlaygroundBackend::kOpenGLES || + GetParam() == PlaygroundBackend::kOpenGLESSDF) { // This test drives instancing through gl_InstanceIndex and a storage // buffer, both of which require OpenGL ES 3.1. The portable instance-rate // vertex attribute path, which works down to OpenGL ES 2.0, is covered by @@ -485,7 +486,8 @@ TEST_P(RendererTest, CanRenderInstanced) { } TEST_P(RendererTest, CanBlitTextureToTexture) { - if (GetBackend() == PlaygroundBackend::kOpenGLES) { + if (GetBackend() == PlaygroundBackend::kOpenGLES || + GetBackend() == PlaygroundBackend::kOpenGLESSDF) { GTEST_SKIP() << "Mipmap test shader not supported on GLES."; } auto context = GetContext(); @@ -595,7 +597,8 @@ TEST_P(RendererTest, CanBlitTextureToTexture) { } TEST_P(RendererTest, CanBlitTextureToBuffer) { - if (GetBackend() == PlaygroundBackend::kOpenGLES) { + if (GetBackend() == PlaygroundBackend::kOpenGLES || + GetBackend() == PlaygroundBackend::kOpenGLESSDF) { GTEST_SKIP() << "Mipmap test shader not supported on GLES."; } auto context = GetContext(); @@ -724,7 +727,8 @@ TEST_P(RendererTest, CanBlitTextureToBuffer) { } TEST_P(RendererTest, CanGenerateMipmaps) { - if (GetBackend() == PlaygroundBackend::kOpenGLES) { + if (GetBackend() == PlaygroundBackend::kOpenGLES || + GetBackend() == PlaygroundBackend::kOpenGLESSDF) { GTEST_SKIP() << "Mipmap test shader not supported on GLES."; } auto context = GetContext(); diff --git a/engine/src/flutter/impeller/toolkit/interop/impeller_unittests.cc b/engine/src/flutter/impeller/toolkit/interop/impeller_unittests.cc index 9c460b4fdf67a..8c82c20881401 100644 --- a/engine/src/flutter/impeller/toolkit/interop/impeller_unittests.cc +++ b/engine/src/flutter/impeller/toolkit/interop/impeller_unittests.cc @@ -47,7 +47,8 @@ TEST_P(InteropPlaygroundTest, CanCreateDisplayListBuilder) { } TEST_P(InteropPlaygroundTest, CanCreateSurface) { - if (GetBackend() != PlaygroundBackend::kOpenGLES) { + if (GetBackend() != PlaygroundBackend::kOpenGLES && + GetBackend() != PlaygroundBackend::kOpenGLESSDF) { GTEST_SKIP() << "This test checks wrapping FBOs which is an OpenGL ES only call."; return; diff --git a/engine/src/flutter/impeller/typographer/typographer_unittests.cc b/engine/src/flutter/impeller/typographer/typographer_unittests.cc index 3a1a586e85656..c0579bb82b947 100644 --- a/engine/src/flutter/impeller/typographer/typographer_unittests.cc +++ b/engine/src/flutter/impeller/typographer/typographer_unittests.cc @@ -475,7 +475,8 @@ TEST(TypographerTest, RectanglePackerFillsRows) { } TEST_P(TypographerTest, GlyphAtlasTextureWillGrowTilMaxTextureSize) { - if (GetBackend() == PlaygroundBackend::kOpenGLES) { + if (GetBackend() == PlaygroundBackend::kOpenGLES || + GetBackend() == PlaygroundBackend::kOpenGLESSDF) { GTEST_SKIP() << "Atlas growth isn't supported for OpenGLES currently."; }