diff options
author | Alexey Knyazev <lexa.knyazev@gmail.com> | 2023-12-07 00:00:00 +0000 |
---|---|---|
committer | Angle LUCI CQ <angle-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-12-09 04:02:38 +0000 |
commit | ede15b8533cf84a7ebef5380ad726d7abdd4cfca (patch) | |
tree | b6d3873807fa98ca1ef217ac2cb428ea6f3c266e | |
parent | d0eb968d1fe415c20304748b913fa188ba95b97f (diff) | |
download | angle-ede15b8533cf84a7ebef5380ad726d7abdd4cfca.tar.gz |
Metal: Run multi draw tests
Added ANGLE_INSTANTIATE_TEST_COMBINE_3.
Used the new macro for multi draw and BVBI tests.
Bug: angleproject:6963
Change-Id: If05800f92f670bf21b7ff889a2fb8bb30f62a488
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5106508
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
-rw-r--r-- | src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp | 35 | ||||
-rw-r--r-- | src/tests/gl_tests/MultiDrawTest.cpp | 71 | ||||
-rw-r--r-- | src/tests/test_utils/angle_test_instantiate.h | 8 |
3 files changed, 49 insertions, 65 deletions
diff --git a/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp b/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp index 63a9bddcf8..ea26fcc09a 100644 --- a/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp +++ b/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp @@ -1181,29 +1181,22 @@ TEST_P(DrawBaseInstanceTest, DrawElementsInstancedBaseVertexBaseInstance) checkDrawResult(true, true); } -const angle::PlatformParameters platforms[] = { - ES3_D3D11(), ES3_METAL(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN(), -}; - GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(DrawBaseVertexBaseInstanceTest); -INSTANTIATE_TEST_SUITE_P( - , + +ANGLE_INSTANTIATE_TEST_COMBINE_3( DrawBaseVertexBaseInstanceTest, - testing::Combine( - testing::ValuesIn(::angle::FilterTestParams(platforms, ArraySize(platforms))), - testing::Values(BaseVertexOption::NoBaseVertex, BaseVertexOption::UseBaseVertex), - testing::Values(BaseInstanceOption::NoBaseInstance, BaseInstanceOption::UseBaseInstance), - testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw)), - PrintToStringParamName()); - -INSTANTIATE_TEST_SUITE_P( - , + PrintToStringParamName(), + testing::Values(BaseVertexOption::NoBaseVertex, BaseVertexOption::UseBaseVertex), + testing::Values(BaseInstanceOption::NoBaseInstance, BaseInstanceOption::UseBaseInstance), + testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw), + ANGLE_ALL_TEST_PLATFORMS_ES3); + +ANGLE_INSTANTIATE_TEST_COMBINE_3( DrawBaseInstanceTest, - testing::Combine( - testing::ValuesIn(::angle::FilterTestParams(platforms, ArraySize(platforms))), - testing::Values(BaseVertexOption::NoBaseVertex, BaseVertexOption::UseBaseVertex), - testing::Values(BaseInstanceOption::NoBaseInstance, BaseInstanceOption::UseBaseInstance), - testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw)), - PrintToStringParamName()); + PrintToStringParamName(), + testing::Values(BaseVertexOption::NoBaseVertex, BaseVertexOption::UseBaseVertex), + testing::Values(BaseInstanceOption::NoBaseInstance, BaseInstanceOption::UseBaseInstance), + testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw), + ANGLE_ALL_TEST_PLATFORMS_ES3); } // namespace diff --git a/src/tests/gl_tests/MultiDrawTest.cpp b/src/tests/gl_tests/MultiDrawTest.cpp index b827b9f539..b11d3e5357 100644 --- a/src/tests/gl_tests/MultiDrawTest.cpp +++ b/src/tests/gl_tests/MultiDrawTest.cpp @@ -178,8 +178,7 @@ varying vec4 color; void main() { int id = )" << (IsDrawIDTest() ? "gl_DrawID" : "0") - << ";" - << R"( + << ";" << R"( float quad_id = float(id / 2); float color_id = quad_id - (3.0 * floor(quad_id / 3.0)); if (color_id == 0.0) { @@ -1247,48 +1246,32 @@ TEST_P(MultiDrawNoInstancingSupportTest, InvalidOperation) EXPECT_GL_ERROR(GL_INVALID_OPERATION); } -const angle::PlatformParameters platforms[] = { - ES2_D3D9(), ES2_OPENGL(), ES2_OPENGLES(), ES2_VULKAN(), ES3_D3D11(), ES3_OPENGL(), - ES3_OPENGLES(), ES3_VULKAN(), ES3_VULKAN_SWIFTSHADER(), -}; - -const angle::PlatformParameters es2_platforms[] = { - ES2_D3D9(), ES2_OPENGL(), ES2_OPENGLES(), ES2_VULKAN(), ES2_VULKAN_SWIFTSHADER(), -}; - -const angle::PlatformParameters es3_platforms[] = { - ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN(), ES3_VULKAN_SWIFTSHADER(), -}; - -INSTANTIATE_TEST_SUITE_P( - , - MultiDrawTest, - testing::Combine( - testing::ValuesIn(::angle::FilterTestParams(platforms, ArraySize(platforms))), - testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), - testing::Values(InstancingOption::NoInstancing, InstancingOption::UseInstancing), - testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw)), - PrintToStringParamName()); - -INSTANTIATE_TEST_SUITE_P( - , - MultiDrawNoInstancingSupportTest, - testing::Combine( - testing::ValuesIn(::angle::FilterTestParams(es2_platforms, ArraySize(es2_platforms))), - testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), - testing::Values(InstancingOption::UseInstancing), - testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw)), - PrintToStringParamName()); - -INSTANTIATE_TEST_SUITE_P( - , - MultiDrawTestES3, - testing::Combine( - testing::ValuesIn(::angle::FilterTestParams(es3_platforms, ArraySize(es3_platforms))), - testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), - testing::Values(InstancingOption::NoInstancing, InstancingOption::UseInstancing), - testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw)), - PrintToStringParamName()); +ANGLE_INSTANTIATE_TEST_COMBINE_3(MultiDrawTest, + PrintToStringParamName(), + testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), + testing::Values(InstancingOption::NoInstancing, + InstancingOption::UseInstancing), + testing::Values(BufferDataUsageOption::StaticDraw, + BufferDataUsageOption::DynamicDraw), + ANGLE_ALL_TEST_PLATFORMS_ES2, + ANGLE_ALL_TEST_PLATFORMS_ES3); + +ANGLE_INSTANTIATE_TEST_COMBINE_3(MultiDrawNoInstancingSupportTest, + PrintToStringParamName(), + testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), + testing::Values(InstancingOption::UseInstancing), + testing::Values(BufferDataUsageOption::StaticDraw, + BufferDataUsageOption::DynamicDraw), + ANGLE_ALL_TEST_PLATFORMS_ES2); + +ANGLE_INSTANTIATE_TEST_COMBINE_3(MultiDrawTestES3, + PrintToStringParamName(), + testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), + testing::Values(InstancingOption::NoInstancing, + InstancingOption::UseInstancing), + testing::Values(BufferDataUsageOption::StaticDraw, + BufferDataUsageOption::DynamicDraw), + ANGLE_ALL_TEST_PLATFORMS_ES3); GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(MultiDrawIndirectTest); ANGLE_INSTANTIATE_TEST_ES31_AND(MultiDrawIndirectTest, diff --git a/src/tests/test_utils/angle_test_instantiate.h b/src/tests/test_utils/angle_test_instantiate.h index 684bc4640b..7e2a0fd27f 100644 --- a/src/tests/test_utils/angle_test_instantiate.h +++ b/src/tests/test_utils/angle_test_instantiate.h @@ -296,6 +296,14 @@ struct CombinedPrintToStringParamName ##__VA_ARGS__}; \ INSTANTIATE_TEST_SUITE_P( \ , testName, testing::Combine(ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), combine1), print) +#define ANGLE_INSTANTIATE_TEST_COMBINE_3(testName, print, combine1, combine2, combine3, first, \ + ...) \ + const std::remove_reference<decltype(first)>::type testName##params[] = {first, \ + ##__VA_ARGS__}; \ + INSTANTIATE_TEST_SUITE_P(, testName, \ + testing::Combine(ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), \ + combine1, combine2, combine3), \ + print) #define ANGLE_INSTANTIATE_TEST_COMBINE_4(testName, print, combine1, combine2, combine3, combine4, \ first, ...) \ const std::remove_reference<decltype(first)>::type testName##params[] = {first, \ |