| Flutter Impeller |

capabilities_unittests.cc
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "flutter/testing/testing.h"
6 #include "impeller/renderer/capabilities.h"
7
8 #include "gtest/gtest.h"
9
10 namespace impeller {
11 namespace testing {
12
13 #define CAPABILITY_TEST(name, default_value) \
14 TEST(CapabilitiesTest, name) { \
15 auto defaults = CapabilitiesBuilder().Build(); \
16 ASSERT_EQ(defaults->name(), default_value); \
17 auto opposite = CapabilitiesBuilder().Set##name(!default_value).Build(); \
18 ASSERT_EQ(opposite->name(), !default_value); \
19 }
20
21 CAPABILITY_TEST(SupportsOffscreenMSAA, false);
22 CAPABILITY_TEST(SupportsSSBO, false);
23 CAPABILITY_TEST(SupportsTextureToTextureBlits, false);
24 CAPABILITY_TEST(SupportsFramebufferFetch, false);
25 CAPABILITY_TEST(SupportsCompute, false);
26 CAPABILITY_TEST(SupportsComputeSubgroups, false);
27 CAPABILITY_TEST(SupportsReadFromResolve, false);
28 CAPABILITY_TEST(SupportsDecalSamplerAddressMode, false);
29 CAPABILITY_TEST(SupportsDeviceTransientTextures, false);
30 CAPABILITY_TEST(SupportsTriangleFan, false);
31 CAPABILITY_TEST(SupportsExtendedRangeFormats, false);
32
33 TEST(CapabilitiesTest, DefaultColorFormat) {
34 auto defaults = CapabilitiesBuilder().Build();
35 EXPECT_EQ(defaults->GetDefaultColorFormat(), PixelFormat::kUnknown);
36 auto mutated = CapabilitiesBuilder()
37 .SetDefaultColorFormat(PixelFormat::kB10G10R10A10XR)
38 .Build();
39 EXPECT_EQ(mutated->GetDefaultColorFormat(), PixelFormat::kB10G10R10A10XR);
40 }
41
42 TEST(CapabilitiesTest, DefaultStencilFormat) {
43 auto defaults = CapabilitiesBuilder().Build();
44 EXPECT_EQ(defaults->GetDefaultStencilFormat(), PixelFormat::kUnknown);
45 auto mutated = CapabilitiesBuilder()
46 .SetDefaultStencilFormat(PixelFormat::kS8UInt)
47 .Build();
48 EXPECT_EQ(mutated->GetDefaultStencilFormat(), PixelFormat::kS8UInt);
49 }
50
51 TEST(CapabilitiesTest, DefaultDepthStencilFormat) {
52 auto defaults = CapabilitiesBuilder().Build();
53 EXPECT_EQ(defaults->GetDefaultDepthStencilFormat(), PixelFormat::kUnknown);
54 auto mutated = CapabilitiesBuilder()
55 .SetDefaultDepthStencilFormat(PixelFormat::kD32FloatS8UInt)
56 .Build();
57 EXPECT_EQ(mutated->GetDefaultDepthStencilFormat(),
58 PixelFormat::kD32FloatS8UInt);
59 }
60
61 TEST(CapabilitiesTest, DefaultGlyphAtlasFormat) {
62 auto defaults = CapabilitiesBuilder().Build();
63 EXPECT_EQ(defaults->GetDefaultGlyphAtlasFormat(), PixelFormat::kUnknown);
64 auto mutated = CapabilitiesBuilder()
65 .SetDefaultGlyphAtlasFormat(PixelFormat::kA8UNormInt)
66 .Build();
67 EXPECT_EQ(mutated->GetDefaultGlyphAtlasFormat(), PixelFormat::kA8UNormInt);
68 }
69
70 TEST(CapabilitiesTest, MaxRenderPassAttachmentSize) {
71 auto defaults = CapabilitiesBuilder().Build();
72 EXPECT_EQ(defaults->GetMaximumRenderPassAttachmentSize(), ISize(1, 1));
73 auto mutated = CapabilitiesBuilder()
74 .SetMaximumRenderPassAttachmentSize({100, 100})
75 .Build();
76 EXPECT_EQ(mutated->GetMaximumRenderPassAttachmentSize(), ISize(100, 100));
77 }
78
79 TEST(CapabilitiesTest, MinUniformAlignment) {
80 auto defaults = CapabilitiesBuilder().Build();
81 EXPECT_EQ(defaults->GetMinimumUniformAlignment(), 256u);
82 auto mutated = CapabilitiesBuilder().SetMinimumUniformAlignment(16).Build();
83 EXPECT_EQ(mutated->GetMinimumUniformAlignment(), 16u);
84 }
85
86 } // namespace testing
87 } // namespace impeller
capabilities.h
impeller::CapabilitiesBuilder
Definition: capabilities.h:137
impeller::CapabilitiesBuilder::SetDefaultColorFormat
CapabilitiesBuilder & SetDefaultColorFormat(PixelFormat value)
Definition: capabilities.cc:204
impeller::CapabilitiesBuilder::SetMinimumUniformAlignment
CapabilitiesBuilder & SetMinimumUniformAlignment(size_t value)
Definition: capabilities.cc:263
impeller::CapabilitiesBuilder::SetDefaultStencilFormat
CapabilitiesBuilder & SetDefaultStencilFormat(PixelFormat value)
Definition: capabilities.cc:210
impeller::CapabilitiesBuilder::SetMaximumRenderPassAttachmentSize
CapabilitiesBuilder & SetMaximumRenderPassAttachmentSize(ISize size)
Definition: capabilities.cc:251
impeller::CapabilitiesBuilder::SetDefaultGlyphAtlasFormat
CapabilitiesBuilder & SetDefaultGlyphAtlasFormat(PixelFormat value)
Definition: capabilities.cc:240
impeller::CapabilitiesBuilder::Build
std::unique_ptr< Capabilities > Build()
Definition: capabilities.cc:269
impeller::CapabilitiesBuilder::SetDefaultDepthStencilFormat
CapabilitiesBuilder & SetDefaultDepthStencilFormat(PixelFormat value)
Definition: capabilities.cc:216
impeller::testing::CAPABILITY_TEST
CAPABILITY_TEST(SupportsOffscreenMSAA, false)
impeller::testing::TEST
TEST(AllocationSizeTest, CanCreateTypedAllocations)
Definition: allocation_size_unittests.cc:10
impeller
Definition: allocation.cc:12
impeller::PixelFormat::kUnknown
@ kUnknown
impeller::PixelFormat::kA8UNormInt
@ kA8UNormInt
impeller::PixelFormat::kB10G10R10A10XR
@ kB10G10R10A10XR
impeller::PixelFormat::kS8UInt
@ kS8UInt
impeller::PixelFormat::kD32FloatS8UInt
@ kD32FloatS8UInt
impeller::TSize
Definition: size.h:25