diff --git a/ci/licenses_golden/excluded_files b/ci/licenses_golden/excluded_files index 2a16480cd1d6f..1cf139cf375e2 100644 --- a/ci/licenses_golden/excluded_files +++ b/ci/licenses_golden/excluded_files @@ -144,6 +144,7 @@ ../../../flutter/impeller/golden_tests_harvester/test ../../../flutter/impeller/image/README.md ../../../flutter/impeller/playground +../../../flutter/impeller/renderer/capabilities_unittests.cc ../../../flutter/impeller/renderer/compute_subgroup_unittests.cc ../../../flutter/impeller/renderer/compute_unittests.cc ../../../flutter/impeller/renderer/device_buffer_unittests.cc diff --git a/impeller/renderer/BUILD.gn b/impeller/renderer/BUILD.gn index 678a38fef984b..7175e8d60b05a 100644 --- a/impeller/renderer/BUILD.gn +++ b/impeller/renderer/BUILD.gn @@ -119,6 +119,7 @@ impeller_component("renderer_unittests") { testonly = true sources = [ + "capabilities_unittests.cc", "device_buffer_unittests.cc", "host_buffer_unittests.cc", "pipeline_descriptor_unittests.cc", diff --git a/impeller/renderer/backend/gles/context_gles.cc b/impeller/renderer/backend/gles/context_gles.cc index d64d607d47e8f..8da1154a4c765 100644 --- a/impeller/renderer/backend/gles/context_gles.cc +++ b/impeller/renderer/backend/gles/context_gles.cc @@ -71,7 +71,8 @@ ContextGLES::ContextGLES(std::unique_ptr gl, .SetSupportsFramebufferFetch(false) .SetDefaultColorFormat(PixelFormat::kR8G8B8A8UNormInt) .SetDefaultStencilFormat(PixelFormat::kS8UInt) - .SetSupportsCompute(false, false) + .SetSupportsCompute(false) + .SetSupportsComputeSubgroups(false) .SetSupportsReadFromResolve(false) .SetSupportsReadFromOnscreenTexture(false) .Build(); diff --git a/impeller/renderer/backend/metal/context_mtl.mm b/impeller/renderer/backend/metal/context_mtl.mm index 2bca0a145dbdd..38c09ff64e459 100644 --- a/impeller/renderer/backend/metal/context_mtl.mm +++ b/impeller/renderer/backend/metal/context_mtl.mm @@ -58,7 +58,8 @@ static bool DeviceSupportsComputeSubgroups(id device) { .SetSupportsFramebufferFetch(DeviceSupportsFramebufferFetch(device)) .SetDefaultColorFormat(color_format) .SetDefaultStencilFormat(PixelFormat::kS8UInt) - .SetSupportsCompute(true, DeviceSupportsComputeSubgroups(device)) + .SetSupportsCompute(true) + .SetSupportsComputeSubgroups(DeviceSupportsComputeSubgroups(device)) .SetSupportsReadFromResolve(true) .SetSupportsReadFromOnscreenTexture(true) .Build(); diff --git a/impeller/renderer/capabilities.cc b/impeller/renderer/capabilities.cc index 5b23d4ca1d7a8..d0531f5f265b2 100644 --- a/impeller/renderer/capabilities.cc +++ b/impeller/renderer/capabilities.cc @@ -162,16 +162,20 @@ CapabilitiesBuilder& CapabilitiesBuilder::SetSupportsFramebufferFetch( return *this; } -CapabilitiesBuilder& CapabilitiesBuilder::SetSupportsCompute(bool compute, - bool subgroups) { - supports_compute_ = compute; - supports_compute_subgroups_ = subgroups; +CapabilitiesBuilder& CapabilitiesBuilder::SetSupportsCompute(bool value) { + supports_compute_ = value; + return *this; +} + +CapabilitiesBuilder& CapabilitiesBuilder::SetSupportsComputeSubgroups( + bool value) { + supports_compute_subgroups_ = value; return *this; } CapabilitiesBuilder& CapabilitiesBuilder::SetSupportsReadFromOnscreenTexture( bool read_from_onscreen_texture) { - supports_read_from_resolve_ = read_from_onscreen_texture; + supports_read_from_onscreen_texture_ = read_from_onscreen_texture; return *this; } diff --git a/impeller/renderer/capabilities.h b/impeller/renderer/capabilities.h index 78c0c209a7895..6fb1118dd7c95 100644 --- a/impeller/renderer/capabilities.h +++ b/impeller/renderer/capabilities.h @@ -65,12 +65,13 @@ class CapabilitiesBuilder { CapabilitiesBuilder& SetSupportsFramebufferFetch(bool value); - CapabilitiesBuilder& SetSupportsCompute(bool compute, bool subgroups); + CapabilitiesBuilder& SetSupportsCompute(bool value); - CapabilitiesBuilder& SetSupportsReadFromOnscreenTexture( - bool read_from_onscreen_texture); + CapabilitiesBuilder& SetSupportsComputeSubgroups(bool value); - CapabilitiesBuilder& SetSupportsReadFromResolve(bool read_from_resolve); + CapabilitiesBuilder& SetSupportsReadFromOnscreenTexture(bool value); + + CapabilitiesBuilder& SetSupportsReadFromResolve(bool value); CapabilitiesBuilder& SetDefaultColorFormat(PixelFormat value); diff --git a/impeller/renderer/capabilities_unittests.cc b/impeller/renderer/capabilities_unittests.cc new file mode 100644 index 0000000000000..1dc9d17e3c678 --- /dev/null +++ b/impeller/renderer/capabilities_unittests.cc @@ -0,0 +1,34 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/testing/testing.h" +#include "impeller/renderer/capabilities.h" + +#include "gtest/gtest.h" + +namespace impeller { +namespace testing { + +#define CAPABILITY_TEST(name, default_value) \ + TEST(CapabilitiesTest, name) { \ + auto defaults = CapabilitiesBuilder().Build(); \ + ASSERT_EQ(defaults->name(), default_value); \ + auto opposite = CapabilitiesBuilder().Set##name(!default_value).Build(); \ + ASSERT_EQ(opposite->name(), !default_value); \ + } + +CAPABILITY_TEST(HasThreadingRestrictions, false); +CAPABILITY_TEST(SupportsOffscreenMSAA, false); +CAPABILITY_TEST(SupportsSSBO, false); +CAPABILITY_TEST(SupportsBufferToTextureBlits, false); +CAPABILITY_TEST(SupportsTextureToTextureBlits, false); +CAPABILITY_TEST(SupportsFramebufferFetch, false); +CAPABILITY_TEST(SupportsCompute, false); +CAPABILITY_TEST(SupportsComputeSubgroups, false); +CAPABILITY_TEST(SupportsReadFromOnscreenTexture, false); +CAPABILITY_TEST(SupportsReadFromResolve, false); +CAPABILITY_TEST(SupportsDecalTileMode, false); + +} // namespace testing +} // namespace impeller